Как отрегулировать угол Эйлера кватернионом

Я ищу способ вернуть угол Эйлера, который был повернут кватернионом.

Я понимаю, что извлечение высоты тона и рыскания из кватерниона в лучшем случае проблематично, но если бы я мог, то просто добавил бы его значения к своим, чтобы получить результирующий угол Эйлера.

Я мог бы также преобразовать мой угол Эйлера в кватернион и затем объединить их, но тогда у меня остался бы кватернион, который я не могу преобразовать в эйлер.

Я признаю, что я борюсь с кватернионами в лучшие времена, поэтому любая помощь будет хорошо принята.

Для ясности мне нужно только вернуть угол Эйлера, все остальные вычисления могут быть выполнены с кватернионами, если требуется.

Я использую Bullet Physics, Direct X, C++

Благодарю.

2 ответа

Решение
  1. Вы не можете комбинировать углы Эйлера с углами Эйлера или углы Эйлера с кватернионом напрямую.

  2. Вы должны преобразовать вращение в представление, позволяющее преобразовать композицию. Это матрица вращения или кватернион.

  3. После объединения вращений конвертируем обратно в углы Эйлера.

PS Эйлеровы углы вообще не полезны для представления вращения. Он может использоваться только для ручного ввода оборотов.

Можно конвертировать туда и обратно, но вы должны соблюдать порядок, в котором вы применяете другой угол Эйлера, иначе вы получите неприятный результат.

Я сам этого не делал, и, как я сказал, minorlogic лучше придерживаться матрицы вращения / кватернионов.

вот хорошая ссылка

https://en.wikipedia.org/wiki/Conversion_between_quaternions_and_Euler_angles

где q0,q1,q2,q3 обозначает w,x,y,z. На этом сайте они предполагают, что

где самолет вначале поворачивает на разворот во время руления на взлетно-посадочную полосу, затем наклоняется во время взлета и, наконец, разворачивается в воздухе.

Другие вопросы по тегам