Какая ротация кватернионов?
Является ли кватернионным вращением только вектор с X, Y, Z, к которому объект будет вращаться, и рулон, который поворачивает объект на его ось?
Это просто?
Значение, если у вас есть X = 0, Z = 0 и Y = 1, объект будет направлен вверх?
И если у вас есть Y = 0, Z = 0 и X = 1, объект будет обращен вправо?
(предполагая, что X справа, Y вверх и глубина Z)
Ответы
Ответ 1
Кватернион имеет 4 компонента, которые могут быть связаны с углом & theta; и вектор оси n. Вращение заставит объект вращаться вокруг оси n на угол & thet;,
Например, если у нас есть куб вроде
______
|\ 6 \
| \_____\ z
|5 | | : y ^
\ | 4 | \|
\|____| +--> x
Тогда поворот 90 °; вокруг оси (x = 0, y = 0, z = 1) будет вращать грань "5" слева направо.
______
|\ 6 \
| \_____\ z
|3 | | : x ^
\ | 5 | \|
\|____| y<--+
(Примечание: это описание вращения по оси/углу, что и смущает ОП. Как применяется кватернион к вращению, см. http://en.wikipedia.org/wiki/Quaternions_and_spatial_rotation)
Ответ 2
A quaternion в общем случае является расширением комплексного числа в 4 измерения. Нет, они не просто x, y, и z, а угол, но они близки. Еще ниже...
Кватернионы могут использоваться для представляют поворот, поэтому они полезны для графики:
Единичные кватернионы обеспечивают удобный математическое обозначение для представления ориентации и вращения объектов в трех измерениях. По сравнению с Эйлером углы их проще компоновать и избегайте проблемы с кардановым замком. По сравнению с матрицами вращения они более численно устойчивы и могут быть более эффективным.
Итак, каковы 4 компонента и как они относятся к вращению?
Точка [unit quaternion] (w, x, y, z) представляет собой вращение вокруг оси, направленное вектор (x, y, z) под углом α = 2 cos -1 w = 2 sin -1 sqrt (x 2 + y 2 + z 2).
Итак, вернемся к вашему вопросу,
Значение, если у вас X = 0, Z = 0 и Y = 1 объект будет обращен вверх?
Нет... объект будет вращаться вокруг этого вектора <0,1,0>
, то есть он будет вращаться вокруг оси y, поворачиваясь против часовой стрелки, как видно из выше, если ваша графическая система использует правое вращение. (И если мы подключаем w = sqrt (1 - (0 + 1 + 0)), ваш кватернион устройства (0,0,1,0), и он будет вращаться на угол 2 cos -1 0, = 2 * 90 градусов = 180 градусов или pi радиан.)
И если у вас Y = 0, Z = 0 и X = 1, объект будет обращен вправо?
Это будет вращаться вокруг вектора <1,0,0>
, оси x, поэтому он будет вращаться против часовой стрелки, как видно из положительного направления x (например, справа). Таким образом, верх будет поворачиваться вперед (на 180 градусов, поэтому он будет вращаться, пока он не повернется вниз).