Начинающий кватернионный уточнение - PullRequest
0 голосов
/ 15 декабря 2018

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

Если вектор p = i = [1,0,0] повернуть на 90 градусов вокруг оси x, то кватернион q равен:q = cos(45) + [1,0,0]*sin(45) = 0.707 + 0.707*i.

pn = qpq-1;

Теперь вычислите pn: (0.707+0.707*i)(i)(0.707-0.707*i) = i.

Итак, повернутый вектор pn = [1,0,0].Что является p=pn.

Является ли p=pn правильным?Если это может кто-нибудь объяснить это?или это особенное свойство кватернионов?

1 Ответ

0 голосов
/ 15 января 2019

В приведенном вами примере вы в основном вращаете вектор вокруг себя (т.е. ось вращения равна повернутому вектору, в данном случае [1,0,0]).Как сказано в комментариях, вращение вектора вокруг себя оставляет его без изменений, независимо от угла поворота.

Попробуйте ваш пример, где повернутый вектор расположен вдоль оси y [0,1,0], а ось вращения равна [1,0,0].Возможно, это поможет вам визуализировать некоторые основные повороты.

Кроме того, помните, что вращение вектора v с использованием единичного кватерниона q задается как:

Imaginary{q * [0, v_x, v_y, v_z] * conjugate(q)}

...