У меня есть Эйлер, рассчитанный по кватерниону вращения. Я хочу сохранить Эйлер, а затем загрузить его в другое место, чтобы вычислить исходный кватернион. Как мне этого добиться?
const rot = new THREE.Quaternion(-0.00122, 0.98602, -0.15773, -0.05371);
const {x, y, z} = new THREE.Euler().setFromQuaternion(
rot,
'YXZ',
);
// How to make rot1 euqal to rot (as close as possible)?
const rot1 = new THREE.Quaternion().setFromEuler(new THREE.Euler(x, y, z));
console.log(rot); // Quaternion {_x: -0.00122, _y: 0.98602, _z: -0.15773, _w: -0.05371}
console.log(rot1); // Quaternion {_x: 0.0012199961779640698, _y: -0.9860197701687391, _z: -0.15688998318156033, _w: 0.056116464812051764}
console.log(rot1.inverse()); // Quaternion {_x: -0.0012199961779640698, _y: 0.9860197701687391, _z: 0.15688998318156033, _w: 0.056116464812051764}
Направления неверны, и ошибка w кажется немного большой. Вот скрипка js