нотация
Кватернионы определены в четырехпространстве с основаниями {1, i, j, k}. Гамильтон, как известно, вырезал фундаментальные отношения в камне моста Брогама в Дублине:
i 2 = j 2 = k 2 = i j k = -1.
Существует много эквивалентных кватернионных параметризаций, но здесь я буду использовать форму {скаляр, вектор }.
1.) A = {a0, a } и B = {b0, b }, где A и B - кватернионы, a0 и b0 - скаляры, а a и b - три вектора.
2.) X = {0, x } - векторный кватернион .
3.) (Некоммутативное) кватернионное произведение напрямую вытекает из свойств i, j и k, приведенных выше, A 'B = {a0 b0 - a . b , a0 b + b0 a + a x b }
4.) Кватернионный конъюгат представляет собой A * = {a0, - a }
5.) конъюгат кватернионного произведения является произведением конъюгатов в обратном порядке.
(A & otimes; B) * = B * & times; A *
6.) сопряжение векторного кватерниона является его отрицательным. X * = {0, - x } = -X
7.) Кватернионная норма - это | A | = & radic; (A & o; A *) = & radic; (a0 & sup2; + a . a )
8.) единица кватерниона - это та, которая имеет норму 1.
9.) Единица трехвекторная x = {x 1 , x 2 , x 3 } с х . x = 1 выражается как единичный векторный кватернион X = {0, x }, | X | = 1.
10.) Сферическое вращение вектора кватернионов X на угол & theta; о единичной векторной оси n составляет Q & times; X & times; Q *,
где Q - кватернион {cos (& theta; / 2), sin (& theta; / 2) n }. Обратите внимание, что | Q | = 1.
Обратите внимание на форму векторного продукта кватерниона. Заданные векторные кватернионы X 1 = {0, x 1 ) и X 2 = {0, x 2 }, кватернионное произведение X 2 * X 1 * = { x 1 . x 2 , x 1 & times; x 2 }. Кватернион воссоединяет точечное произведение как скалярную часть и перекрестное произведение как векторную часть, разведенную более ста лет назад. Ни один из этих продуктов не является обратимым, но кватернион описан ниже.
Инверсия
Найдите кватернион сферического преобразования Q 12 , чтобы повернуть вектор X 1 для выравнивания с вектором X 2 .
Сверху
X 2 = Q 12 - * X 1 - Q 12 *
Умножение обеих сторон на X 1 *,
X 2 & x;; X 1 * = Q 12 & x; X 1 & times; ( Q 12 * +1201 ** +1202 ** & otimes; Х 1 *)
Помните, что ось вращения n является производной от перекрестного произведения x 1 & times; x 2 так что n . x 1 = 0 и Q * * X * = (X Q) * = X * Q, оставляя
X 2 & otimes; X 1 * = Q 12 & otimes; X 1 & otimes; X 1 * - Q 12 = Q 12 - Q 12
Таким образом, кватернионное преобразование может быть решено непосредственно как
Q 12 = & radic; (X 2 & times; X 1 *)
Вы один на квадратный корень кватерниона.Есть много способов сделать это, и лучший будет зависеть от вашего приложения, учитывая скорость и стабильность.
- hth,
Fred Klingener