假设我有一个自定义立方体网格,其原点位于其中一个角。 我想指定立方体的原点位于它的中心。 我知道我可以进行翻译,而且它似乎有效(我可以通过旋转立方体来证明它有效,立方体绕中点旋转)。
但是,我一直认为平移只是简单地移动到 3D 空间中的另一个点(而不是设置原点)。
我是否遗漏了一些东西,或者我只是混淆了实际上是同一件事的两件事?
* 总结 *
请注意,如果我想移动一个对象,我只需更新位置向量即可。 并应用翻译似乎是在更新原点。 我的困惑来自于我的理解,即“平移”只是在 3D 空间中“移动”对象的一个奇特术语。 因此,到底什么是平移(在 3d 空间中移动,或更新原点,或两者兼而有之)?
最佳答案
几何上的平移会移动原点:
var geometry = new THREE.CubeGeometry( 1, 1, 1 );
geometry.applyMatrix( new THREE.Matrix4().makeTranslation( 0, 0.5, 0 ) );
Object3D 上的平移会移动位置:
var obj = new THREE.Mesh(geometry, material);
obj.position.set(0.5, 0.5, 0.5);
关于3d - Three.js - 翻译与移动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25821385/