2010-10-26 53 views
14

La rotation du quaternion est-elle simplement un vecteur avec X, Y, Z vers lequel l'objet va tourner et un rouleau qui fait tourner l'objet sur son axe?Qu'est-ce qu'une rotation de quaternion?

Est-ce si simple?

Signification si vous avez X = 0, Z = 0 et Y = 1 l'objet fera face vers le haut?
Et si vous avez Y = 0, Z = 0 et X = 1 l'objet sera tourné vers la droite?

(en supposant droit de X, Y et Z de profondeur)

Répondre

35

Un quaternion a 4 composants, qui peuvent être liés à un angle θ et un vecteur d'axe n. La rotation fera tourner l'objet autour de l'axe n d'un angle θ.

Par exemple, si nous avons un cube comme

______ 
|\ 6 \ 
| \_____\  z 
|5 | | : y^
\ | 4 | \| 
    \|____|  +--> x 

Ensuite, une rotation de 90 ° autour de l'axe (x = 0, y = 0, z = 1) va tourner la face "5" de la gauche vers l'avant.

______ 
|\ 6 \ 
| \_____\  z 
|3 | | : x^
\ | 5 |  \| 
    \|____| y<--+ 

(Note:. Ceci est l'axe/Description de l'angle de rotation, ce qui est OP brouille Pour savoir comment quaternion est appliqué à la rotation, voir http://en.wikipedia.org/wiki/Quaternions_and_spatial_rotation)

+0

de gauche ou de droite? – clamp

+0

@clamp: Cela dépend si le système est gaucher ou droitier. – kennytm

+0

l'OP a dit "Y up et profondeur Z". – LarsH

15

Un quaternion en général est une extension d'un nombre complexe en 4 dimensions. Donc non, ils ne sont pas seulement x, y et z, et un angle, mais ils sont proches. Plus bas ...

Quaternions peuvent être utilisés pour represent rotation, ils sont donc utiles pour les graphiques:

quaternions unitaires fournissent une notation mathématique pratique pour représenter orientations et les rotations d'objets en trois dimensions . Par rapport à Euler angles, ils sont plus simples à composer et éviter le problème de verrouillage de cardan. Par rapport aux matrices de rotation, elles sont plus stables numériquement et peuvent être plus efficaces.

Alors, quelles sont les 4 composants et how do they relate to the rotation?

Le point (w, x, y, z) [quaternion unitaire] représente une rotation autour de l'axe dirigé par le vecteur (x, y, z) d'un angle alpha = 2 cos -1 w = 2 sin -1 sqrt (x 2 + y2 + z 2 ).

Pour en revenir à votre question,

Signification si vous avez X = 0, Z = 0 et Y = 1 l'objet sera orienté vers le haut?

Non ... l'objet tourne autour de ce vecteur <0,1,0>, à savoir qu'il tourne autour de l'axe y, tournant vers la gauche en vue de dessus, si votre système graphique utilise la rotation à droite. (Et si nous branchons w = sqrt (1 - (0 + 1 + 0)), votre quaternion unitaire est (0,0,1,0), et il tournera d'angle 2 cos -1 0, = 2 * 90 degrés = 180 degrés ou pi radians.)

Et si vous avez Y = 0, Z = 0 et X = 1, l'objet sera dirigé vers la droite?

Cela va tourner autour du vecteur <1,0,0>, l'axe x, de sorte qu'il tourne dans le sens antihoraire comme vu dans le sens x positif (par exemple à droite). Ainsi, le haut se tournerait vers l'avant (180 degrés, donc il tournerait jusqu'à ce qu'il soit orienté vers le bas).