Какая ротация кватернионов?

Является ли кватернионным вращением только вектор с 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 градусов, поэтому он будет вращаться, пока он не повернется вниз).