Quaternions et rotation dans l'espace
Les quaternions unitaires fournissent une notation mathématique commode pour représenter l'orientation et la rotation d'objets en trois dimensions. Comparés aux angles d'Euler, ils sont plus simples à composer et évitent le problÚme du blocage de cardan. Comparés aux matrices de rotations, ils sont plus stables numériquement et peuvent se révéler plus efficaces. Les quaternions ont été adoptés dans des applications en infographie, robotique, navigation, dynamique moléculaire et en mécanique spatiale des satellites[1].
Opérations de rotation à l'aide des quaternions
Une justification rigoureuse des propriétés utilisées dans cette section est donnée par Altmann[2].
Se faire une idée de l'espace des rotations
Les quaternions unitaires reprĂ©sentent l'espace mathĂ©matique des rotations en trois dimensions (autour dâun axe passant par lâorigine) de façon relativement simple. On peut comprendre la correspondance entre les rotations et les quaternions en commençant par se faire une idĂ©e intuitive de l'espace des rotations lui-mĂȘme (une prĂ©sentation plus rigoureuse interprĂ©terait lâensemble des rotations comme un groupe de Lie, et lâespace associĂ© comme une 3-variĂ©tĂ©, mais ce niveau dâabstraction est inutile pour les applications pratiques discutĂ©es dans cet article).
Chaque rotation en trois dimensions consiste Ă tourner d'un certain angle autour d'un certain axe. Quand l'angle est nul, l'axe n'a pas d'importance, de telle façon qu'une rotation de zĂ©ro degrĂ© est un simple point dans l'espace des rotations (c'est la rotation identitĂ©). Pour un angle petit mais non nul, l'ensemble des rotations possibles est une petite sphĂšre entourant la rotation identitĂ©, oĂč chaque point de la sphĂšre reprĂ©sente un axe pointant dans une direction particuliĂšre (comparez avec la sphĂšre cĂ©leste). Des rotations d'angles de plus en plus grands s'Ă©loignent progressivement de la rotation identitĂ©, et nous pouvons nous les reprĂ©senter comme des sphĂšres concentriques de rayons croissants. En consĂ©quence, au voisinage de la rotation identitĂ©, l'espace abstrait des rotations ressemble Ă l'espace ordinaire en trois dimensions (qui peut Ă©galement ĂȘtre vu comme un point central entourĂ© de sphĂšres de diffĂ©rents rayons). La ressemblance s'arrĂȘte lĂ : lorsque l'angle de rotation dĂ©passe 180°, les rotations suivant les diffĂ©rents axes cessent de diverger et commencent Ă nouveau Ă se ressembler, pour finir par devenir identiques (et Ă©gales Ă la rotation identitĂ©) lorsque l'angle atteint 360°.
On constate un phĂ©nomĂšne analogue Ă la surface d'une sphĂšre. Si nous nous plaçons au pĂŽle Nord et traçons Ă partir de lĂ des lignes droites (en fait, des mĂ©ridiens) dans plusieurs directions, elles divergeront puis convergeront Ă nouveau au pĂŽle Sud. Des cercles concentriques de rayon croissant dessinĂ©s autour du pĂŽle Nord (des parallĂšles) finiront par s'effondrer en un point au pĂŽle Sud une fois que l'on a parcouru la distance entre les pĂŽles. On peut assimiler les diffĂ©rentes directions Ă partir du pĂŽle (c'est-Ă -dire les diffĂ©rents mĂ©ridiens) aux diffĂ©rents axes de rotations et les diffĂ©rentes distances au pĂŽle Nord aux diffĂ©rents angles : on a ainsi une analogie de l'espace des rotations. Mais la surface de la sphĂšre est en deux dimensions alors que les axes de rotation utilisent dĂ©jĂ trois dimensions. L'espace des rotations est donc modĂ©lisĂ© par une sphĂšre de dimension 3 dans un espace Ă 4 dimensions (une hypersphĂšre). Nous pouvons penser Ă la sphĂšre ordinaire comme Ă une section de l'hypersphĂšre, de la mĂȘme façon qu'un cercle est une section de sphĂšre. On peut prendre la section pour reprĂ©senter, par exemple, uniquement les rotations d'axes dans le plan xy (voir illustration ci-contre). On remarque que l'angle de la rotation est deux fois la diffĂ©rence de latitude avec le pĂŽle Nord : en effet, les points de l'Ă©quateur reprĂ©sentent des rotations de 180°, pas de 90°, et le pĂŽle Sud reprĂ©sente la rotation identitĂ© de 360°, et pas le demi-tour de 180°.
Le pĂŽle Nord et le pĂŽle Sud reprĂ©sentent la mĂȘme rotation, et en fait cela s'applique Ă n'importe quelle paire de points aux antipodes l'un de l'autre : si un point correspond Ă une rotation d'angle autour de l'axe dirigĂ© par le vecteur , l'autre point correspond Ă une rotation d'angle autour de l'axe dirigĂ© par le vecteur . En fait, l'espace des rotations n'est pas l'hypersphĂšre elle-mĂȘme, mais l'hypersphĂšre oĂč l'on identifie les points aux antipodes l'un de l'autre. Mais dans un but de simplification, nous pouvons penser aux rotations comme Ă des points de la sphĂšre en dimension 4, mĂȘme si la moitiĂ© de ces points est redondante (revĂȘtement double).
Paramétrer l'espace des rotations
Nous pouvons paramétrer la surface d'une sphÚre à l'aide de deux coordonnées, comme la latitude et la longitude. Mais la latitude et la longitude se comportent mal (sont dégénérés) aux pÎles Nord et Sud, alors que les pÎles ne sont pas différents par nature des autres points de la sphÚre. Aux pÎles Nord et Sud (de latitudes +90° et -90°), la longitude perd son sens.
On peut montrer qu'aucun systĂšme de coordonnĂ©es Ă deux paramĂštres ne peut Ă©viter cette dĂ©gĂ©nĂ©rescence (c'est le thĂ©orĂšme de la boule chevelue). Nous pouvons Ă©viter de tels problĂšmes en plongeant la sphĂšre dans l'espace Ă trois dimensions et en la paramĂ©trant au moyen de trois coordonnĂ©es cartĂ©siennes (ici w, x et y), en plaçant le pĂŽle Nord Ă (w, x, y) = (1, 0, 0), le pĂŽle Sud Ă (w, x, y) = (â1, 0, 0) et l'Ă©quateur sera le cercle d'Ă©quations w = 0 et x2 + y2 = 1. Les points de la sphĂšre satisfont la contrainte w2 + x2 + y2 = 1, donc nous avons toujours deux degrĂ©s de libertĂ©, bien que l'on ait trois coordonnĂ©es. Un point (w, x, y) de la sphĂšre reprĂ©sente une rotation de l'espace ordinaire autour de l'axe horizontal dirigĂ© par le vecteur et d'angle .
De la mĂȘme façon, l'hypersphĂšre dĂ©crivant l'espace des rotations dans l'espace en trois dimensions peut ĂȘtre paramĂ©trĂ©e au moyen de trois angles (angles d'Euler), mais tout paramĂ©trage de ce type dĂ©gĂ©nĂšre en certains points de l'hypersphĂšre, ce qui conduit au problĂšme du blocage de cardan. Nous pouvons Ă©viter cela en utilisant quatre coordonnĂ©es euclidennes w, x, y et z, avec w2 + x2 + y2 + z2 = 1. Le point de coordonnĂ©es (w, x, y, z) reprĂ©sente une rotation autour de l'axe dirigĂ© par le vecteur et d'angle
Les quaternions en bref
On peut dĂ©finir les nombres complexes en introduisant un symbole abstrait i qui se conforme aux rĂšgles usuelles de l'algĂšbre et qui en plus obĂ©it Ă la rĂšgle i2 = â1. Cela suffit Ă reproduire toutes les rĂšgles de calcul des nombres complexes, par exemple .
De la mĂȘme façon, les quaternions peuvent ĂȘtre dĂ©finis en introduisant des symboles abstraits i, j et k qui satisfont aux rĂšgles i2 = j2 = k2 = ijk = â1 et les rĂšgles algĂ©briques usuelles sauf la commutativitĂ© de la multiplication (un exemple familier de multiplication non commutative est la multiplication des matrices). L'ensemble des rĂšgles de calcul dĂ©coule de ces dĂ©finitions ; par exemple, on peut montrer que .
La partie imaginaire d'un quaternion se comporte comme un vecteur d'un espace vectoriel à trois dimensions et la partie réelle a comme un scalaire de . Quand les quaternions sont utilisés en géométrie, il est pratique de les définir comme un scalaire plus un vecteur: .
Ceux qui ont étudié les vecteurs à un niveau élémentaire pourraient trouver étrange d'additionner un nombre à un vecteur, car ce sont des objets de natures trÚs différentes, ou de multiplier deux vecteurs entre eux, car cette opération n'est d'habitude pas définie. Néanmoins, si l'on se souvient qu'il ne s'agit là que d'une notation pour les parties réelles et imaginaires d'un quaternion, cela devient plus légitime.
Nous pouvons exprimer la multiplication de quaternions (produit de Hamilton) dans le langage moderne du produit vectoriel et du produit scalaire de vecteurs (qui ont en fait Ă©tĂ© inspirĂ©s au dĂ©but par les quaternions). Ă la place des rĂšgles i2 = j2 = k2 = ijk = â1, nous avons la rĂšgle de multiplication de deux vecteurs , oĂč :
- est le quaternion résultant,
- est le produit vectoriel (un vecteur),
- est le produit scalaire (un nombre).
La multiplication de vecteurs n'est pas commutative (à cause du produit vectoriel), alors que la multiplication entre scalaires et celle entre un scalaire et un vecteur sont commutatives. Il découle de maniÚre immédiate de ces rÚgles que .
L'inverse (Ă gauche et Ă droite) d'un quaternion non nul est , comme cela peut ĂȘtre vĂ©rifiĂ© par calcul direct.
Relation entre les rotations et les quaternions unitaires
Soient (w, x, y, z) les coordonnĂ©es d'une rotation, comme dĂ©crit prĂ©cĂ©demment. DĂ©finissons le quaternion : oĂč est un vecteur unitaire. Soit Ă©galement un vecteur ordinaire de l'espace en 3 dimensions, considĂ©rĂ© comme un quaternion avec une coordonnĂ©e rĂ©elle nulle. On peut alors montrer (voir section suivante) que le produit de quaternions
renvoie le vecteur tournĂ© d'un angle autour de l'axe dirigĂ© par . La rotation se fait dans le sens des aiguilles d'une montre si notre ligne de vue pointe dans la mĂȘme direction que . Cette opĂ©ration est connue comme la conjugaison par q.
Il s'ensuit que la multiplication de quaternions correspond à la composition de rotations, car si p et q sont des quaternions représentant des rotations, alors la rotation (conjugaison) par pq est
- ,
ce qui revient Ă tourner (conjuguer) par q, puis par p.
Le quaternion inverse d'une rotation correspond Ă la rotation inverse, car . Le carrĂ© d'un quaternion correspond Ă la rotation de deux fois le mĂȘme angle autour du mĂȘme axe. Plus gĂ©nĂ©ralement, qn correspond Ă une rotation de n fois l'angle autour du mĂȘme axe que q. Cela peut ĂȘtre Ă©tendu Ă un rĂ©el arbitraire n, ce qui permet de calculer des rotations intermĂ©diaires de façon fluide entre des rotations de l'espace, c'est l'interpolation linĂ©aire sphĂ©rique (en).
DĂ©monstration de l'Ă©quivalence entre conjugaison de quaternions et rotation de l'espace
Soit un vecteur unitaire (l'axe de rotation) et soit .
Notre but est de montrer que :
renvoie le vecteur tourné d'un angle autour de l'axe dirigé par .
En développant, on obtient en effet :
oĂč et sont les composantes de respectivement orthogonale et colinĂ©aire Ă . C'est lĂ la formule d'Olinde Rodrigues qui donne la rotation d'angle autour de l'axe dirigĂ© par .
Exemple
ConsidĂ©rons la rotation f autour de l'axe dirigĂ© par et d'angle 120°, c'est-Ă -dire 2Ï/3 radians.
- .
La norme de est â3, le demi-angle est Ï/3 (60°), le cosinus de ce demi-angle est 1/2, (cos 60° = 0,5) et son sinus est â3/2, (sin 60° â 0,866). Nous devons donc conjuguer avec le quaternion unitaire :
Si f est la fonction de rotation,
On peut prouver que l'on obtient l'inverse d'un quaternion unitaire simplement en changeant le signe de ses coordonnées imaginaires. En conséquence,
et
En appliquant les rĂšgles ordinaires de calcul avec les quaternions, on obtient
- .
Comme on s'y attendait, la rotation revient à tenir un cube par un de ses sommets, puis à le faire tourner de 120° selon la diagonale la plus longue qui passe par ce point. On observe comment les trois axes subissent une permutation circulaire.
Prouvons le résultat précédent : En développant l'expression de f (en deux étapes) et en appliquant les rÚgles :
on obtient :
ce qui est bien le résultat annoncé. On voit que de tels calculs sont relativement fastidieux à faire à la main, mais dans un programme d'ordinateur, cela se résume à appeler deux fois la routine de multiplication de quaternions.
Expliquer les propriétés des quaternions à l'aide des rotations
Non-commutativité
La multiplication des quaternions est non commutative. Comme multiplier des quaternions unitaires revient à composer les rotations dans l'espace à trois dimensions, on peut rendre cette propriété intuitive grùce au fait que les rotations en trois dimensions ne commutent pas en général.
Un simple exercice consistant à appliquer deux rotations successives à un objet asymétrique (par exemple un livre) peut l'expliquer. D'abord, tournez un livre de 90 degrés dans le sens des aiguilles d'une montre autour de l'axe des Z. Ensuite, basculez-le de 180 degrés autour de l'axe des X et mémorisez le résultat. Revenez à la position de départ, de maniÚre à pouvoir lire à nouveau le titre du livre, et appliquez les rotations en ordre inverse. Comparez le résultat au résultat précédent. Cela montre que, en général, la composition de deux rotations différentes autour de deux axes distincts de l'espace ne commute pas.
Les quaternions sont-ils orientés ?
Il convient de remarquer que les quaternions, comme n'importe quelle rotation ou application linĂ©aire, ne sont pas "orientĂ©s" (il n'y a pas de sens direct ou indirect). L'orientation d'un systĂšme de coordonnĂ©es provient de l'interprĂ©tation des nombres dans l'espace physique. Quelle que soit la convention d'orientation que l'on choisisse, faire tourner le vecteur X de 90 degrĂ©s autour du vecteur Z renverra le vecteur Y â la thĂ©orie et les calculs donnent le mĂȘme rĂ©sultat.
Les quaternions et les autres représentations des rotations
Description qualitative des avantages des quaternions
La représentation d'une rotation sous la forme d'un quaternion (4 nombres) est plus compacte que la représentation en tant que matrice orthogonale (9 nombres). De plus, pour un axe et un angle donné, on peut facilement construire le quaternion correspondant, et réciproquement, pour un quaternion donné, on peut facilement extraire l'axe et l'angle. Toutes ces opérations sont beaucoup plus difficiles avec des matrices ou des angles d'Euler.
Dans les jeux vidéo et dans d'autres applications, on a souvent besoin de « rotations fluides », c'est-à -dire que la scÚne représentée doit tourner harmonieusement et pas d'un seul coup. On peut obtenir ce résultat en choisissant une courbe comme celle de l'interpolation linéaire sphérique dans l'espace des quaternions, avec une extrémité qui est la transformation identique 1 (ou correspondant à une autre rotation initiale) et l'autre extrémité correspondant à la rotation finale désirée. C'est plus difficile à faire avec d'autres représentations des rotations.
Quand on compose plusieurs rotations sur un ordinateur, les erreurs d'arrondi s'accumulent forcément. Un quaternion qui est légÚrement erroné représente toujours une rotation aprÚs avoir été renormalisé ; une matrice qui est légÚrement erronée ne sera plus orthogonale et sera difficile à convertir à nouveau en une matrice orthogonale qui convienne.
Les quaternions Ă©vitent Ă©galement un phĂ©nomĂšne appelĂ© le blocage de cardan qui peut apparaĂźtre lorsque, par exemple dans des systĂšmes de rotations dĂ©crivant le roulis, le tangage et le lacet, le tangage est de 90° vers le haut ou le bas, de telle façon que le roulis et le lacet correspondent au mĂȘme mouvement, et qu'un degrĂ© de libertĂ© ait Ă©tĂ© perdu. Dans un systĂšme de navigation inertielle Ă base de cardans, par exemple, cela peut avoir des consĂ©quences dĂ©sastreuses si l'avion monte en flĂšche ou descend Ă pic.
D'un quaternion en matrice orthogonale
La matrice orthogonale correspondant à une rotation au moyen du quaternion unitaire (avec ) est donnée par
D'une matrice orthogonale en quaternion
Chercher le quaternion correspondant Ă la matrice de rotation peut ĂȘtre instable numĂ©riquement si la trace (la somme des Ă©lĂ©ments de la diagonale de la matrice) de la matrice de rotation est nulle ou trĂšs petite. Une mĂ©thode robuste consiste Ă choisir l'Ă©lĂ©ment de la diagonale ayant la valeur la plus grande en valeur absolue. ConsidĂ©rons
Cette Ă©criture est lĂ©gitime car l'expression sous la racine est positive. Si r est nul, cela Ă©quivaut Ă une trace Ă©gale Ă -1 (soit un angle de rotation de Ï). La rotation est une symĂ©trie axiale et donc le quaternion a la forme suivante (0 , .x , .y , .z) avec vecteur unitaire dirigeant l'axe de rotation. Sinon le quaternion peut alors ĂȘtre Ă©crit sous la forme[3] :
Attention, il y a deux conventions pour les vecteurs : l'une suppose que les matrices de rotation sont multipliĂ©es par des vecteurs-ligne Ă gauche, l'autre par des vecteurs-colonne Ă droite ; les deux conventions conduisent Ă des matrices qui sont transposĂ©es l'une de l'autre. La matrice ci-dessus suppose que l'on utilise des vecteurs colonne Ă droite. Historiquement, la convention vecteur-colonne-Ă -droite provient des mathĂ©matiques et de la mĂ©canique classique, alors que la convention vecteur-ligne-Ă -gauche provient de l'infographie, oĂč il Ă©tait plus facile de saisir des vecteurs-lignes aux dĂ©buts de la discipline.
Quaternions optimaux
La section ci-dessus a décrit comment récupérer un quaternion q à partir d'une matrice de rotation 3 à 3 Q. Supposons, néanmoins, que nous avons une matrice Q qui n'est pas celle d'une rotation pure, à cause d'erreurs d'arrondi, par exemple, et que nous souhaitions trouver le quaternion q qui représente Q le plus précisément possible. Dans ce cas, nous construisons une matrice 4 à 4 symétrique
et nous cherchons le vecteur propre de coordonnées (x, y, z, w) correspondant à la plus grande valeur propre (cette valeur vaut 1 si et seulement si Q est une rotation pure). Le quaternion ainsi obtenu correspondra à la rotation la plus proche de la matrice Q de départ[4].
Comparaisons de performances avec d'autres méthodes de rotation
Cette section traite des implications en matiÚre de performances de l'utilisation de quaternions par rapport à d'autres méthodes (axe et angle ou matrices de rotation) pour effectuer des rotations en 3D.
RĂ©sultats
MĂ©thode | MĂ©moire |
---|---|
Matrice de rotation | 9 |
Quaternion | 4 |
Axe et angle | 4* |
* Note : la reprĂ©sentation sous forme d'angle et d'axe peut ĂȘtre stockĂ©e dans 3 emplacements seulement en multipliant l'axe de rotation par l'angle de rotation ; nĂ©anmoins, avant de l'utiliser, il faut rĂ©cupĂ©rer le vecteur unitaire et l'angle en renormalisant, ce qui coĂ»te des opĂ©rations mathĂ©matiques supplĂ©mentaires.
Méthode | Multiplications | Additions et soustractions | Nombre total d'opérations |
---|---|---|---|
Matrices de rotation | 27 | 18 | 45 |
Quaternions | 16 | 12 | 28 |
Méthode | Multiplications | Additions et soustractions | sin et cos | Nombre total d'opérations | |
---|---|---|---|---|---|
Matrice de rotation | 9 | 6 | 0 | 15 | |
Quaternions | Sans matrice intermédiaire | 15 | 15 | 0 | 30 |
Quaternions | Avec matrice intermédiaire | 21 | 18 | 0 | 39 |
Axe et angle | Sans matrice intermédiaire | 18 | 13 | 2 | 30 + 3 |
Axe et angle | Avec matrice intermédiaire | 21 | 16 | 2 | 37 + 2 |
Méthodes utilisées
Il y a trois techniques de base pour faire tourner un vecteur :
- Calculer le produit matriciel de la matrice de rotation 3 à 3 représentant la rotation R par la matrice colonne 3 à 1 représentant le vecteur . Cela nécessite 3 x (3 multiplications + 2 additions) = 9 multiplications et 6 additions, c'est la méthode la plus efficace pour faire tourner un vecteur.
- Utiliser la formule de rotation avec des quaternions dite action par conjugaison . Calculer ce résultat revient à transformer le quaternion en une matrice de rotation R en utilisant la formule de conversion d'un quaternion en matrice orthogonale, puis à multiplier le résultat par la matrice-colonne représentant le vecteur. En procédant à une recherche de sous-expressions communes, l'algorithme se ramÚne à 21 multiplications et 18 additions. Une autre approche peut consister à convertir d'abord le quaternion dans la représentation sous forme d'axe et d'angle équivalente, puis à s'en servir pour faire tourner le vecteur. Néanmoins, c'est à la fois moins efficace et moins stable numériquement lorsque le quaternion est voisin de la rotation identité.
- Convertir la représentation sous forme d'axe et d'angle en matrice de rotation R, puis multiplier par la matrice-colonne représentant le vecteur. La conversion coûte 14 multiplications, 2 appels de fonction (sin et cos) et 10 additions ou soustractions aprÚs recherche de sous-expressions communes, puis la rotation ajoute 9 multiplications et 6 additions pour un total de 21 multiplications, 16 additions ou soustractions et deux appels de fonctions trigonométriques.
Méthode | Multiplications | Additions et soustractions | sin et cos | Nombre total d'opérations | |
---|---|---|---|---|---|
Matrice de rotation | 9n | 6n | 0 | 15n | |
Quaternions | Sans matrice intermédiaire | 15n | 15n | 0 | 30n |
Quaternions | Avec matrice intermédiaire | 9n + 12 | 6n + 12 | 0 | 15n + 24 |
Axe et angle | Sans matrice intermédiaire | 18n | 12n + 1 | 2 | 30n + 3 |
Axe et angle | Avec matrice intermédiaire | 9n + 12 | 6n + 10 | 2 | 15n + 24 |
Pseudo-code pour la rotation Ă l'aide de quaternions
Ătant donnĂ© un quaternion z = a + bi + cj + dk (avec |z| = 1) et un vecteur de coordonnĂ©es v1, v2 et v3, le code qui suit effectue une rotation. Notez l'utilisation de variables temporaires txx. Notez aussi l'optimisation des Ă©lĂ©ments de la diagonale de la matrice R : comme , on rĂ©Ă©crit l'Ă©lĂ©ment en haut Ă gauche sous la forme ; les deux autres Ă©lĂ©ments de la diagonale peuvent ĂȘtre rĂ©Ă©crits de mĂȘme.
t2 = a*b t3 = a*c t4 = a*d t5 = -b*b t6 = b*c t7 = b*d t8 = -c*c t9 = c*d t10 = -d*d v1new = 2*( (t8 + t10)*v1 + (t6 - t4)*v2 + (t3 + t7)*v3 ) + v1 v2new = 2*( (t4 + t6)*v1 + (t5 + t10)*v2 + (t9 - t2)*v3 ) + v2 v3new = 2*( (t7 - t3)*v1 + (t2 + t9)*v2 + (t5 + t8)*v3 ) + v3
Pseudo-code pour créer une matrice angle et axe
Ătant donnĂ© un vecteur unitaire de coordonnĂ©es (v1, v2, v3) et un angle Ξ, la matrice de rotation peut ĂȘtre calculĂ©e avec :
t1 = cos(theta) t2 = 1 - t1 t3 = v1*v1 t6 = t2*v1 t7 = t6*v2 t8 = sin(theta) t9 = t8*v3 t11 = t6*v3 t12 = t8*v2 t15 = v2*v2 t19 = t2*v2*v3 t20 = t8*v1 t24 = v3*v3 R[1, 1] = t1 + t2*t3 R[1, 2] = t7 - t9 R[1, 3] = t11 + t12 R[2, 1] = t7 + t9 R[2, 2] = t1 + t2*t15 R[2, 3] = t19 - t20 R[3, 1] = t11 - t12 R[3, 2] = t19 + t20 R[3, 3] = t1 + t2*t24
Les paires de quaternions unitaires comme rotations dans l'espace Ă 4 dimensions
Une paire de quaternions unitaires zl et zr peut reprĂ©senter n'importe quelle rotation de l'espace en quatre dimensions. Ătant donnĂ© un vecteur en quatre dimensions, considĂ©rĂ© comme un quaternion, nous pouvons faire tourner ainsi :
Les deux matrices vérifient : chacune de ces deux matrices (et donc également la combinaison des deux) représente une rotation. On remarquera que comme , les deux matrices doivent commuter. Par conséquent, il y a deux sous-groupes commutant de l'ensemble des rotations de l'espace en quatre dimensions. Il y a six degrés de liberté pour une rotation quelconque de l'espace à 4 dimensions, chacune de ces deux matrices représente 3 de ces 6 degrés de liberté.
De la mĂȘme façon qu'une rotation en quatre dimensions infinitĂ©simale peut ĂȘtre reprĂ©sentĂ©e comme suit, par une paire de quaternions, on peut reprĂ©senter toutes les rotations de l'espace en 4 dimensions.
Notes et références
- (en) Kuipers, Jack B., Quaternions and rotation Sequences: a Primer with Applications to Orbits, Aerospace, and Virtual Reality, Princeton University Press, 1999.
- (en) Altmann, Simon L., Rotations, Quaternions, and Double Groups, Dover Publications, 1986 (voir en particulier le ch. 12).
- (en) John A. Vince, Quaternions for Computer Graphics, (lire en ligne), p. ?.
- (en) Itzhack Y. Bar-Itzhack, New method for extracting the quaternion from a rotation matrix, vol. 23, , 3 p. (ISSN 0731-5090), chap. 6
Voir aussi
Articles connexes
Liens externes et ressources
- (en) Shoemake, Ken. Quaternion tutorial
- (en) Hart, Francis, Kauffman. Quaternion demo
- (en) Dam, Koch, Lillholm. Quaternions, Interpolation and Animation
- (en) Byung-Uk Lee, Unit Quaternion Representation of Rotation
- (en) Ibanez, Luis, Quaternion Tutorial I
- (en) Ibanez, Luis, Quaternion Tutorial II
- (en) Leandra Vicci, Quaternions and Rotations in 3-Space: The Algebra and its Geometric Interpretation
- Un cours sur les quaternions et les rotations.
- Présentation mathématique des quaternions incluant une animation WebGL