Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vector 在Three.JS中沿2轴旋转车轮_Vector_Three.js_Rotation - Fatal编程技术网

Vector 在Three.JS中沿2轴旋转车轮

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

我试着在y轴和x轴上旋转物体。 但它不能正常工作。 下面是一个例子

局部轴(无旋转)

我在旋转运动后得到了什么

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'