Vector 在Three.JS中沿2轴旋转车轮
我试着在y轴和x轴上旋转物体。 但它不能正常工作。 下面是一个例子 局部轴(无旋转) 我在旋转运动后得到了什么Vector 在Three.JS中沿2轴旋转车轮,vector,three.js,rotation,Vector,Three.js,Rotation,我试着在y轴和x轴上旋转物体。 但它不能正常工作。 下面是一个例子 局部轴(无旋转) 我在旋转运动后得到了什么 wheel1.rotation.x += movement; wheel1.rotation.y = angle; PS它在移动==0或角度==0时工作,但在两者均不为0时失败 我尝试过使用四元数和乘以旋转向量,但没有任何帮助。提前谢谢 解决方案: 我已经找到了关于我的问题的答案,关于y轴的矢量旋转 angleX += movement; [wheel1, wheel2
wheel1.rotation.x += movement;
wheel1.rotation.y = angle;
PS它在移动==0
或角度==0
时工作,但在两者均不为0时失败
我尝试过使用四元数和乘以旋转向量,但没有任何帮助。提前谢谢
解决方案:
我已经找到了关于我的问题的答案,关于y轴的矢量旋转
angleX += movement;
[wheel1, wheel2].forEach(function (wheel) {
let vector = new THREE.Vector3(1, 0, 0);
vector.applyAxisAngle(new THREE.Vector3(0, 1, 0), angleY);
wheel.rotation.y = angleY;
wheel.rotation.x = 0;
wheel.rotation.z = 0;
wheel.rotateOnWorldAxis(vector, angleX);
});
注释中给出的另一个解决方案是将车轮旋转
更改为'YXZ'
看看这个@prisoner849我知道这个方法,但那真是个骗局physics@OlegPatron请参阅并设置
rotation.order='YXZ'
。