2014-09-13 39 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