2012-01-08 8 views
7

Я использую кватернионы в своей игре, и мне интересно, как, когда у меня есть два кватерниона ориентации, я могу получить кватернион вращения, необходимый для перехода от первого, q1, ко второму, q2. Я сам преподаю, поэтому в моем словаре могут быть очевидные решения.Когда у меня есть два кватерниона ориентации, как мне найти вращательный кватернион, необходимый для перехода от одного к другому?

В уравнениях, что я делаю, когда я поворачиваю от первого к другому выглядит следующим образом: q2 = г * q1

Однако теперь г неизвестность. Нужны ли здесь правила алгебры? Если это так, я бы разделил кватернион на другой, я не могу найти хорошее объяснение в Интернете.

Я использую программу под названием Game Maker

+1

На StackOverflow вежливость, чтобы выбрать ответ, он задает вопрос как ответ и вознаграждает человека, который дал лучший ответ. –

ответ

10

Для того, чтобы «делить» с кватернион, вы меняете его так, что это противоположное вращение. Для того, чтобы инвертировать кватернион, вы отрицать либо мас компонента или (х, Y, г) компоненту, но не оба, так что бы оставить вас с тем же кватернионом вы начали (полностью отрицательный кватернион представляет собой тот же поворот).

Затем помните, что кватернионы не являются коммутативными. Итак:

q2 = r*q1 
q2*q1' = r 

Где q1' является перевернутыми кватернионами, и она должна быть умножен на правой стороне q2, чтобы получить правильный результат.

+0

О, хорошо, спасибо за ваши ответы! Я не знал, что инвертирование и сопряжение с кватернионом - одно и то же. Это все решает! – Sindre

+3

Примечание. Конъюгат является таким же, как инверсный для единиц кватернионов (т. Е. Кватернионов длины 1). Это прекрасно, потому что кватернионы вращения являются единичными кватернионами, но я думаю, что важно отметить, что это особый случай. – Medo42

5

Вы должны взглянуть на это page (euclideanspace), это действительно интересно для самостоятельного обучения и понимания кватернионов.

Здесь у вас есть арифметик для кватернионов, а также калькулятор, который делает операции для вас:

http://www.euclideanspace.com/maths/algebra/realNormedAlgebra/quaternions/arithmetic/index.htm

Надеется, что это помогает.

+0

Это похоже на действительно полезную страницу, спасибо за ссылку! – Sindre