Javascript-форум (https://javascript.ru/forum/)
-   Библиотеки/Тулкиты/Фреймворки (https://javascript.ru/forum/library-toolkit-framework/)
-   -   THREE вращение объекта в локальных координатах (https://javascript.ru/forum/library-toolkit-framework/80081-three-vrashhenie-obekta-v-lokalnykh-koordinatakh.html)

zavx0z 24.04.2020 18:34

THREE вращение объекта в локальных координатах
 


Почему вращение происходит по мировым осям, а не по локальным?

if (rotX) {
    let mX = new THREE.Quaternion()
    mX.setFromAxisAngle(new THREE.Vector3(1, 0, 0), rotY)
    const result = mX.multiplyQuaternions(mX, object.quaternion)
    object.rotation.setFromQuaternion(result)
}
if (rotY) {
    let mY = new THREE.Quaternion()
    mY.setFromAxisAngle(new THREE.Vector3(0, 1, 0), rotX)
    const result = mY.multiplyQuaternions(mY, object.quaternion)
    object.rotation.setFromQuaternion(result)
}

zavx0z 24.04.2020 21:57

кватерионы не работают в локальной системе
 

Перебрал все методы в течении двух дней. Ни один не дал результата.
Подобрал методом тыка c GIMBAL на Euler

let euler = new THREE.Euler(0, 0, 0, 'ZYX');
euler.set(rotY, rotX, 0);


Часовой пояс GMT +3, время: 09:44.