我正在尝试使用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
属性不会更改,并且仍然包含旋转之前的值。
实际上,其所有与变换有关的属性(例如matrix
,matrixWorld
,position
,quaternion
)都保持不变,而渲染的网格确实在视觉上旋转。
应用rotateOnWorldAxis
之后,如何触发网格对象更新其所有变换数据?