Three.js - 围绕轴旋转Object3D

时间:2015-04-09 15:22:46

标签: javascript rotation three.js

我尝试使用Object3D旋转加载到OBJMTLLoader的网格。

var obj = new THREE.Object3D();
// loading and stuff

obj.rotation.y += 0.1; //inside the update function

这样可以正常工作,但仅适用于y轴和z轴。使用相同的代码,但对于x轴产生与围绕z轴旋转相同的结果,但顺时针而不是逆时针旋转。

不幸的是,我需要围绕x轴旋转它。

var xAxis = new THREE.Vector3(1,0,0);
obj.rotateOnAxis( xAxis, 0.1 );

这会绕x轴旋转对象。

但是,我想补间对象的旋转,所以我需要一种方法来显式改变对象旋转的角度,而不是将其旋转特定量。

obj.rotation.yobj.rotation.z正常工作的所有想法,但obj.rotation.x没有?

1 个答案:

答案 0 :(得分:2)

加载网格后(在尝试围绕x轴旋转之前),我绕y轴旋转了90度。由于默认的欧拉顺序(XYZ),局部轴不再对应于世界轴。

obj.eulerOrder = 'YXZ';

在围绕y轴旋转网格之前使用上面的代码行解决了这个问题。

可以找到对欧拉顺序的一个很好的解释here