2014-09-13 73 views
1

比方说,我有一个自定义立方体网格,其中原点位于其中一个角落。 我想指定立方体的原点在它的中心。 据我所知,我可以做一个翻译,它似乎工作(我可以证明它通过旋转绕中心点旋转的立方体起作用)。Three.js - 翻译与移动?

但是,我一直认为翻译只是移动到3D空间中的另一个点(而不是设置原点)。

我错过了什么,或者我只是混淆了2件事实际上是相同的东西?

*总结*

需要注意的是,如果我想移动的对象,我只是简单地更新位置矢量。 并应用翻译SEEMS来更新原点。 我的理解是,“翻译”只是在3D空间中“移动”物体的一个奇特术语。 因此,什么是翻译(在三维空间移动,或更新原点或两者)?

回答

3

几何平移可将产地:

var geometry = new THREE.CubeGeometry(1, 1, 1); 
geometry.applyMatrix(new THREE.Matrix4().makeTranslation(0, 0.5, 0)); 

上Object3D平移可将位置:Geometry类的

var obj = new THREE.Mesh(geometry, material); 
obj.position.set(0.5, 0.5, 0.5); 
+0

是否translate()方法更改原点呢? – taseenb 2017-09-29 00:28:13

+1

是的,该方法的实现与上面的代码相同:https://github.com/mrdoob/three.js/blob/8622b1938a627aa72d2c9c55858c1fda3632c9ec/src/core/Geometry.js#L162-L178 – IceCreamYou 2017-09-30 00:57:59