假设我有一个自定义立方体网格,其中原点位于其中一个角落。 我想指定立方体的原点位于它的中心。 我知道我可以进行翻译,它似乎有效(我可以通过旋转立方体来证明它的工作原理,它围绕中心点旋转)。
但是,我一直认为翻译只是移动到3D空间中的另一个点(而不是设置原点)。
我是否遗漏了某些东西,或者我只是混淆了两件实际上相同的东西?
*总结*
请注意,如果我想移动一个对象,我只需更新位置向量。 并应用翻译SEEMS来更新原点。 我的困惑来自于我的理解,即“翻译”只是在3D空间中“移动”物体的一个奇特术语。 因此,究竟什么是平移(在3d空间中移动,或更新原点,或两者都有)?
答案 0 :(得分:5)
几何体上的平移移动原点:
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);