Я пытаюсь повернуть объект по двум осям y и x.Но это не работает должным образом.Вот пример
https://imge.to/i/vqyt20 локальная ось (без поворотов)
https://imge.to/i/vqypnA что у меня после перемещения с вращениями
wheel1.rotation.x += movement;
wheel1.rotation.y = angle;
PSон работает, когда movement == 0
или angle == 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);
});
ЕЩЕ ОДИН РЕШЕНИЕ в комментариях приведено изменение wheel.rotation
на 'YXZ'
Как повернуть объект и сбросить его вращение в ноль?