THREE.js在rotateOnWorldAxis之后更新对象的旋转属性

时间:2018-10-28 03:07:40

标签: three.js

我正在尝试使用rotateOnWorldAxis旋转我的网格物体。在应用旋转之前,网格物体的旋转数据为Euler对象,具有每个轴的旋转值。

mesh.rotation中:

// Euler (_x: 1.5707963267948961 _y: 1.3439035240356314 _z: 3.141592653589793)

我希望我的网格在每个轴上旋转一些角度,所以我要执行以下操作:

// define axis vectors and angles
const xAngle = some angle in Radians
const xAxis = new THREE.Vector3(1, 0, 0);
...same for Y and Z axis

// apply rotateOnWorldAxis
mesh.rotateOnWorldAxis(xAxis, xAngle);
...same for Y and Z axis

在网格物体上使用rotateOnWorldAxis方法之后,我可以直观地看到网格已正确旋转。但是,当我在应用旋转之后检查对象时,mesh.rotation属性不会更改,并且仍然包含旋转之前的值。

实际上,其所有与变换有关的属性(例如matrixmatrixWorldpositionquaternion)都保持不变,而渲染的网格确实在视觉上旋转。

应用rotateOnWorldAxis之后,如何触发网格对象更新其所有变换数据?

0 个答案:

没有答案