Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
1
QUATERNION Arithmétique des quaternions
Rotation au moyen de quaternions Convertir des matrices de rotation et des quaternions Rick Parent, Animatique Algorithmes et techniques. Vuibert, Paris, 2003, 530p.
2
Définition d’un quaternion
Un quaternion peut être représenté à l’aide - d’un quadruplet de nombres réels q [s, x, y, z] ou encore, - sous une forme plus abrégée, q [s, v], s , v un vecteur 3D. Les opérations suivantes sont définies : Addition de 2 quaternions : [s1, v1] + [s2, v2] = [s1 + s2, v1 + v2], s1, s2 , v1, v2 des vecteurs 3D Multiplication d’un quaternion par un scalaire : (ii) [s, v] = [ s, v], , s , v un vecteur 3D Multiplication de 2 quaternions : [s1, v1] . [s2, v2] = [s1s2 - v1.v2, s1v2 + s2v1 + v1 x v2], s1, s2 , v1, v2 des vecteurs 3D produit scalaire produit vectoriel
3
Différentes propriétés des quaternions
La multiplication de 2 quaternions n’est pas commutative. a. [s1, v1] . [s2, v2] [s2, v2] . [s1, v1], s1, s2 , v1, v2 des vecteurs 3D La multiplication de quaternions est associative. b. ([s1, v1] . [s2, v2]) . [s3, v3] = [s1, v1] . ([s2, v2] . [s3, v3]), s1, s2 , s3 , v1, v2 et v3 des vecteurs 3D. La multiplication de 2 quaternions dont les vecteurs respectifs sont orthogonaux équivaut au produit vectoriel de ces 2 vecteurs. c. [0, v1] . [0, v2] = [0, v1 x v2] v1 . v2 = 0 v1, v2 des vecteurs 3D [1, (0, 0, 0)] est l’élément neutre de la multiplication. d. [s, v] . [1, (0, 0, 0)] = [s, v] s , v un vecteur 3D.
4
Différentes propriétés des quaternions
L’inverse d’un quaternion q [s, v], noté q-1 est obtenu comme suit : e. q-1 = [s, -v] / (s2 + || v ||2) s , v un vecteur 3D Ainsi, q . q-1 = q-1 . q = [1, (0, 0, 0)]. Définition de la norme d’un quaternion : || q ||2 = s2 + || v ||2 Par conséquent, q / || q || est appelé quaternion unitaire. (p . q) -1 = q-1 . p-1 f. g. En posant q [s, w] et Tq(v) = q . [0, v] . q-1 , on obtient : Tq(v) : un quaternion de la forme [0, u], où u est un vecteur 3D. Tq(Tp(v)) = Tq.p (v). Tq-1(v) = q-1 . [0, v] . q Tq(v) = Tq(v), 0.
5
Transformation de rotation du vecteur v d’un angle autour d’un des axes principaux
T,w(v) = [ cos (/2), sin (/2) w] . [0, v] . [ cos (/2), sin (/2) w]-1 h. où w = e1 si la rotation se fait autour de l’axe des x, w = e2 si la rotation se fait autour de l’axe des y, w = e3 si la rotation se fait autour de l’axe des z. Exemple : La transformation de rotation du vecteur v d’un angle autour de l’axe des x nous donne comme prévu : [0, Rx() v] où Rx() = 1 0 0 0 cos - sin 0 sin cos
6
la transformation est obtenue comme suit:
Transformation de rotation du vecteur w d’un angle autour d’un axe de rotation v unitaire quelconque T,v(w) = [ cos (/2), sin (/2) v] . [0, w] . [ cos (/2), sin (/2) v]-1 i. Note : la transformation est obtenue comme suit: faire coïncider le vecteur v avec l'axe des Z; ii) rotation d'un angle q autour de l'axe des Z; iii) se ramener à l'emplacement original du vecteur. (0, uy, uz) Faire coïncider le vecteur v avec l'axe des Z Cette transformation affine est obtenue ainsi: - une rotation d'un angle b autour de l'axe des X: RXb cos b = uz / ||(0, uy, uz)|| sin b = uy / ||(0, uy, uz)|| où (0, uy, uz) = ProjYZu.
7
T,v(w) = RX-b RY-a RZq RYa RXb
(ux, 0, ||(0, uy, uz)||) - une rotation d'un angle a autour de l'axe des Y: RYa cos a = ||(0, uy, uz)|| sin a = -ux. Nous avons alors: T,v(w) = RX-b RY-a RZq RYa RXb Note : Le quaternion représentant la rotation du vecteur 3D w1 à w2 est : [cos (/2), sin (/2) (w1 x w2 )] où cos = w1 . w2 sin
8
Composition de transformations de rotation
Soient T1,v1(w) et T2,v2(w), avec q1 = [ cos (1/2), sin (1/2) v1], q2 = [ cos (2/2), sin (2/2) v2], v1 et v2 sont unitaires, T2,v2(T1,v1(w) ) = q2 . (q1 [0, w] q1-1) . q2-1 = (q2 . q1) . [0, w] . (q1-1 . q2-1) = (q2 . q1) . [0, w] . (q2 . q1)-1 = Tq2.q1(w) Cas particulier : Une rotation avec son inverse donne l’identité. T-,v(T,v(w) ) = [1, 0] . [0, w] [1, 0] -1 = [0, w]. Tout multiple scalaire d’un quaternion représente la même rotation. Remarque : Tq(w) = Tq(w), 0 avec q = [ cos (/2), sin (/2) v]. C’est le cas de = -1.
9
Convertir des matrices de rotation et des quaternions
Pourquoi ? Les quaternions sont souvent utilisés pour interpoler des orientations et le résultat est converti en une matrice de rotation, de façon à pouvoir la combiner avec d’autres matrices liées aux opérations d’affichage. Procédure q matrice de rotation Soit q = [s, w], ||q|| = 1, calculons d’abord q . [0, v] . q-1 : Tq(v) = q . [0, v] . q-1 = [s, w] [0, v] [s, -w] = [- w.v, s v + w x v] [s, -w] = [0, (w.v) w + s2v + s(w x v) – (s v + w x v) x w] = [0, (w.v) w + s2v + 2s(w x v) – (w x v) x w] = [0, 2(w.v) w + s2v + 2s(w x v) – (w . w) v].
10
Convertir des matrices de rotation et des quaternions
En posant w = (x, y, z), on obtient : Tq(v) = [0, M v] où M 1 – 2y2 – 2z2 2xy –2sz 2xz + 2sy 2xy + 2sz 1 – 2x2 – 2z2 2yz – 2sx 2xz – 2sy 2yz + 2sx 1 – 2x2 – 2y2 Procédure matrice de rotation q Soit la matrice de rotation suivante, R r0,0 r0,1 r02 r1,0 r1,1 r12 r2,0 r2,1 r22 en examinant M, on obtient : la somme des éléments diagonaux donne 4s2 – 1, les éléments diagonaux peuvent également être utilisés pour résoudre les termes restants. diapositive suivante
11
Convertir des matrices de rotation et des quaternions
r0,0 + r1,1 + r2,2 + 1 2 s = r0,0 = 1 – 2y2 – 2z2 = 1 – 2 (y2 + z2) = 1 – 2 (1 - x2 - s2) = x2 + 2s2 x = r0,0 + 1 – 2 s2 2 y = r1,1 + 1 – 2 s2 2 z = r2,2 + 1 – 2 s2 2 Note : Les racines carrées pour obtenir x, y et z peuvent être évitées si s 0 : r1,0 – r0,1 = 4 sz, r2,0 – r0,2 = -4 sy, r2,1 – r1,2 = 4 sx.
12
Représentation de phénomènes naturels
Un quaternion peut aussi être défini comme suit : Q = w + x i + y j + z k où w, x, y et z sont des nombres réels, i, j et k désignent des coefficients imaginaires distincts, avec i2 = j2 = k2 = -1, ij = k, jk = i, ki = j, ji = -k, kj = -i, ik = -j. Nous verrons plus loin comment nous pouvons utiliser les quaternions pour représenter des phénomènes naturels.
13
Arithmétique des quaternions
Soient Q = w + x i + y j + z k = (w, (x, y, z)) R = a + b i + c j + d k = (a, (b, c, d)), Q + R = (w + a) + (x + b) i + (y + c) j + (z + d) k Q - R = (w - a) + (x - b) i + (y - c) j + (z - d) k Q R = (wa – xb – yc - zd) + (wb + xa + yd - zc) i + (wc – xd + ya - zb) j + (wd + xc – yb + za) k || Q ||2 = w 2 + x 2 + y 2 + z 2 Conjugué de Q (Q*): w - x i - y j - z k Q-1 = Q* / ||Q|| Q / R = R-1 Q etc.
14
Conclusion L’usage des quaternions nous permettra d’interpoler entre des orientations afin de générer une image d’images clés.
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.