transformations géométriques · 2016. 11. 14. · •les axes de rotation sont les axes locaux du...
TRANSCRIPT
![Page 1: Transformations Géométriques · 2016. 11. 14. · •Les axes de rotation sont les axes locaux du système de coordonnées –Représentations variées : xyz, xzy, zyx, zxz, yxz…](https://reader033.vdocuments.site/reader033/viewer/2022053120/60a331f2dc2446368457a081/html5/thumbnails/1.jpg)
Transformations
Géométriques
![Page 2: Transformations Géométriques · 2016. 11. 14. · •Les axes de rotation sont les axes locaux du système de coordonnées –Représentations variées : xyz, xzy, zyx, zxz, yxz…](https://reader033.vdocuments.site/reader033/viewer/2022053120/60a331f2dc2446368457a081/html5/thumbnails/2.jpg)
Transformations Géométriques
• Graphique : soucis principal est
– D’afficher des objets 3D
– De les manipuler
– De les observer d’un point de vue arbitraire
• Toutes ces questions sont liées au fait de
vouloir les afficher dans des repères pratiques
pour nous
– Transformations géométriques
![Page 3: Transformations Géométriques · 2016. 11. 14. · •Les axes de rotation sont les axes locaux du système de coordonnées –Représentations variées : xyz, xzy, zyx, zxz, yxz…](https://reader033.vdocuments.site/reader033/viewer/2022053120/60a331f2dc2446368457a081/html5/thumbnails/3.jpg)
Transformations Géométriques
Translation
(1,0)
Ro
tatio
n
(90
°) Scale(0.25,0.25)
![Page 4: Transformations Géométriques · 2016. 11. 14. · •Les axes de rotation sont les axes locaux du système de coordonnées –Représentations variées : xyz, xzy, zyx, zxz, yxz…](https://reader033.vdocuments.site/reader033/viewer/2022053120/60a331f2dc2446368457a081/html5/thumbnails/4.jpg)
Combinaisons
Translation (3,0)
Scale (1,0.5)
Rotation (-30°)
Ici toutes les transformations
sont globales !
![Page 5: Transformations Géométriques · 2016. 11. 14. · •Les axes de rotation sont les axes locaux du système de coordonnées –Représentations variées : xyz, xzy, zyx, zxz, yxz…](https://reader033.vdocuments.site/reader033/viewer/2022053120/60a331f2dc2446368457a081/html5/thumbnails/5.jpg)
Matrices
• Addition
–𝑎 𝑐𝑏 𝑑
+𝑒 𝑔𝑓 ℎ =
𝑎 + 𝑒 𝑐 + 𝑔𝑏 + 𝑓 𝑑 + ℎ
• Multiplication
–𝑎 𝑐𝑏 𝑑
x𝑒 𝑔𝑓 ℎ =
𝑎𝑒 + 𝑐𝑓 𝑎𝑔 + 𝑐ℎ𝑏𝑒 + 𝑑𝑓 𝑏𝑔 + 𝑑ℎ
– Multiplication généralement non commutative• AB ≠ BA
• Si AB = AC, alors nous n’acons pas forcément B = C
– Multiplication est associative et distributive• (AB)C = A(BC)
• A(B+C) = AB + AC
• (A+B)C = AC + BC
– Transposée AT = inversion des lignes et colones
![Page 6: Transformations Géométriques · 2016. 11. 14. · •Les axes de rotation sont les axes locaux du système de coordonnées –Représentations variées : xyz, xzy, zyx, zxz, yxz…](https://reader033.vdocuments.site/reader033/viewer/2022053120/60a331f2dc2446368457a081/html5/thumbnails/6.jpg)
Question
• A = 2 22 2
• B = 1 −43 2
• Que vaut A+BT?
ABT = 2 22 2
+1 3−4 2
= 3 5−2 4
![Page 7: Transformations Géométriques · 2016. 11. 14. · •Les axes de rotation sont les axes locaux du système de coordonnées –Représentations variées : xyz, xzy, zyx, zxz, yxz…](https://reader033.vdocuments.site/reader033/viewer/2022053120/60a331f2dc2446368457a081/html5/thumbnails/7.jpg)
Translation
• En 3 dimensions : définie par vecteur [tx, ty, tz]
x’ = x + tx
y’ = y + ty
z’ = z + tz
• Attention,
[tx, ty, tz] ≠ = [tx, ty, tz]T
tx
ty
tz
Définition
Une translation est un déplacement dans une direction donnée
![Page 8: Transformations Géométriques · 2016. 11. 14. · •Les axes de rotation sont les axes locaux du système de coordonnées –Représentations variées : xyz, xzy, zyx, zxz, yxz…](https://reader033.vdocuments.site/reader033/viewer/2022053120/60a331f2dc2446368457a081/html5/thumbnails/8.jpg)
TranslationDéfinition
Une translation est un déplacement dans une direction donnée
Translation sur y
![Page 9: Transformations Géométriques · 2016. 11. 14. · •Les axes de rotation sont les axes locaux du système de coordonnées –Représentations variées : xyz, xzy, zyx, zxz, yxz…](https://reader033.vdocuments.site/reader033/viewer/2022053120/60a331f2dc2446368457a081/html5/thumbnails/9.jpg)
Homothétie (Scale)
• En 3 dimensions: définie par vecteur [sx, sy, sz]
x’ = Sx * x
y’ = Sy * y
z’ = Sz * z
Définition
L’homothétie (scale) est une expansion ou une contraction sur
un ou plusieurs axes, centrée généralement à l’origine
![Page 10: Transformations Géométriques · 2016. 11. 14. · •Les axes de rotation sont les axes locaux du système de coordonnées –Représentations variées : xyz, xzy, zyx, zxz, yxz…](https://reader033.vdocuments.site/reader033/viewer/2022053120/60a331f2dc2446368457a081/html5/thumbnails/10.jpg)
ScaleDéfinition
L’homothétie (scale) est une expansion ou une contraction sur
un ou plusieurs axes, centrée généralement à l’origine
Original scale all axes scale Y axis
offset from origin distance from origin also scales
![Page 11: Transformations Géométriques · 2016. 11. 14. · •Les axes de rotation sont les axes locaux du système de coordonnées –Représentations variées : xyz, xzy, zyx, zxz, yxz…](https://reader033.vdocuments.site/reader033/viewer/2022053120/60a331f2dc2446368457a081/html5/thumbnails/11.jpg)
Rotation
• Rotation généralement par rapport à l’origine
• Dans le cas d’une rotation d’angle θ autour de l’axe z
x’ = x * cos(θ) – y * sin(θ)
y’ = x * cos(θ) + y * sin(θ)
z’ = z
Définition
La rotation est le mouvement d'un corps autour d'un point ou
d'un axe
![Page 12: Transformations Géométriques · 2016. 11. 14. · •Les axes de rotation sont les axes locaux du système de coordonnées –Représentations variées : xyz, xzy, zyx, zxz, yxz…](https://reader033.vdocuments.site/reader033/viewer/2022053120/60a331f2dc2446368457a081/html5/thumbnails/12.jpg)
Rotation
• Les rotations se font dans le sans
trigonométrique, par rapport à l’origine
rotation of 45o about the Z axis
offset from origin rotation
![Page 13: Transformations Géométriques · 2016. 11. 14. · •Les axes de rotation sont les axes locaux du système de coordonnées –Représentations variées : xyz, xzy, zyx, zxz, yxz…](https://reader033.vdocuments.site/reader033/viewer/2022053120/60a331f2dc2446368457a081/html5/thumbnails/13.jpg)
Rotation
• Les rotations se font dans le sans
trigonométrique, par rapport à l’origine
x
y
Rotation
autour de z
x
x
Rotation
autour de y
y
z
Rotation
autour de x
𝑅𝑥 =1 0 00 𝑐𝑜𝑠ψ −𝑠𝑖𝑛ψ0 𝑠𝑖𝑛ψ 𝑐𝑜𝑠ψ
𝑅𝑦 =𝑐𝑜𝑠𝜃 0 𝑠𝑖𝑛𝜃0 1 0
−𝑠𝑖𝑛𝜃 0 𝑐𝑜𝑠𝜃
ψ 𝜃 𝜑
𝑅𝑧 =𝑐𝑜𝑠𝜑 −𝑠𝑖𝑛𝜑 0𝑠𝑖𝑛𝜑 𝑐𝑜𝑠𝜑 00 0 1
![Page 14: Transformations Géométriques · 2016. 11. 14. · •Les axes de rotation sont les axes locaux du système de coordonnées –Représentations variées : xyz, xzy, zyx, zxz, yxz…](https://reader033.vdocuments.site/reader033/viewer/2022053120/60a331f2dc2446368457a081/html5/thumbnails/14.jpg)
Rotation
• Une rotation dans le sens trigonométrique a
pour inverse la même rotation dans le sens
anti-trigonométrique
• Si la matrice a pour propriété RT = R-1
alors M est orthonormée
– Toutes les matrices orthonormée sont des
matrices de rotation par rapport à l’origine
![Page 15: Transformations Géométriques · 2016. 11. 14. · •Les axes de rotation sont les axes locaux du système de coordonnées –Représentations variées : xyz, xzy, zyx, zxz, yxz…](https://reader033.vdocuments.site/reader033/viewer/2022053120/60a331f2dc2446368457a081/html5/thumbnails/15.jpg)
Combinaisons
Translation (3,0)
Scale (1,0.5)
Rotation (-30°)
Ici toutes les transformations
sont globales !
![Page 16: Transformations Géométriques · 2016. 11. 14. · •Les axes de rotation sont les axes locaux du système de coordonnées –Représentations variées : xyz, xzy, zyx, zxz, yxz…](https://reader033.vdocuments.site/reader033/viewer/2022053120/60a331f2dc2446368457a081/html5/thumbnails/16.jpg)
Combinaisons
Translation (3,0)
Scale (1,0.5)
Rotation (-30°)
Alors que si les transformations
sont locales,
![Page 17: Transformations Géométriques · 2016. 11. 14. · •Les axes de rotation sont les axes locaux du système de coordonnées –Représentations variées : xyz, xzy, zyx, zxz, yxz…](https://reader033.vdocuments.site/reader033/viewer/2022053120/60a331f2dc2446368457a081/html5/thumbnails/17.jpg)
Exercice
Rotation (-30°)
Translation (0,3)
Quelle succession de
transformations locales
nous donne ce résultat ?
Scale (0.5,1)
![Page 18: Transformations Géométriques · 2016. 11. 14. · •Les axes de rotation sont les axes locaux du système de coordonnées –Représentations variées : xyz, xzy, zyx, zxz, yxz…](https://reader033.vdocuments.site/reader033/viewer/2022053120/60a331f2dc2446368457a081/html5/thumbnails/18.jpg)
Exercice
Rotation (-30°)
Scale (0.5,1)
Pouvait-on inverser l’ordre de la
translation et du scale en utilisant
les mêmes transformations?
Translation (0,3)
NON
![Page 19: Transformations Géométriques · 2016. 11. 14. · •Les axes de rotation sont les axes locaux du système de coordonnées –Représentations variées : xyz, xzy, zyx, zxz, yxz…](https://reader033.vdocuments.site/reader033/viewer/2022053120/60a331f2dc2446368457a081/html5/thumbnails/19.jpg)
Combinaisons
• Il est intéressant de combiner plusieurs
transformations pour en créer une complexe
• Si l’on découpe le calcul algébrique à la main compliqué
– Utilisation de matrices
• Toute transformation affine
est une combinaison de
rotations, scale et translation
![Page 20: Transformations Géométriques · 2016. 11. 14. · •Les axes de rotation sont les axes locaux du système de coordonnées –Représentations variées : xyz, xzy, zyx, zxz, yxz…](https://reader033.vdocuments.site/reader033/viewer/2022053120/60a331f2dc2446368457a081/html5/thumbnails/20.jpg)
Coordonnées Homogènes
• Utilité : représenter aussi bien les translations,
scales ou rotations par une matrice
N’importe quelle opération correspond à
une multiplication de matrices
![Page 21: Transformations Géométriques · 2016. 11. 14. · •Les axes de rotation sont les axes locaux du système de coordonnées –Représentations variées : xyz, xzy, zyx, zxz, yxz…](https://reader033.vdocuments.site/reader033/viewer/2022053120/60a331f2dc2446368457a081/html5/thumbnails/21.jpg)
Coordonnées Homogènes
• Base d’un système de coordonnées
homogènes : n vecteurs + position d’origine
𝑣1, 𝑣2, … , 𝑣𝑛, 𝑃𝑂
• Chaque point ou vecteur est représenté par
leur coordonnées
𝑎1⋮𝑎𝑛𝑎𝑂
et plus couramment en 3D par
𝑥𝑦𝑧𝑤
![Page 22: Transformations Géométriques · 2016. 11. 14. · •Les axes de rotation sont les axes locaux du système de coordonnées –Représentations variées : xyz, xzy, zyx, zxz, yxz…](https://reader033.vdocuments.site/reader033/viewer/2022053120/60a331f2dc2446368457a081/html5/thumbnails/22.jpg)
Coordonnées Homogènes
• Vecteurs : par de position aO = 0
• Points : aO = 1
• Exemples
0.21.32.21
1.01.001
0.21.32.20
1.01.000
Vecteurs
correspondantsPoints
![Page 23: Transformations Géométriques · 2016. 11. 14. · •Les axes de rotation sont les axes locaux du système de coordonnées –Représentations variées : xyz, xzy, zyx, zxz, yxz…](https://reader033.vdocuments.site/reader033/viewer/2022053120/60a331f2dc2446368457a081/html5/thumbnails/23.jpg)
Coordonnées Homogènes
1 00 1
0 00 0
0 00 0
1 00 1
Matrice
Identité
1 00 1
0 𝑡𝑥0 𝑡𝑦
0 00 0
1 𝑡𝑧0 1
Translation
𝑠𝑥 00 𝑠𝑦
0 00 0
0 00 0
𝑠𝑧 00 1
Homothétie
1 0 00 𝑐𝑜𝑠ψ −𝑠𝑖𝑛ψ0 𝑠𝑖𝑛ψ 𝑐𝑜𝑠ψ
000
0 0 0 1
Rotation
sur axe x
![Page 24: Transformations Géométriques · 2016. 11. 14. · •Les axes de rotation sont les axes locaux du système de coordonnées –Représentations variées : xyz, xzy, zyx, zxz, yxz…](https://reader033.vdocuments.site/reader033/viewer/2022053120/60a331f2dc2446368457a081/html5/thumbnails/24.jpg)
Orientation : Représentations
• Différentes façon de représenter des
orientations / rotations
– Angles d'Euler
– Angle-Axe (Axis-Angle)
• Matrices non adaptées pour l’interpolation
– Matrices intermédiaires incorrectes
1 0 00 1 00 0 1
000
0 0 0 1
Rx(0)
1 0 0
0 0.5 − 32
0 32 1
0
0
00 0 0 1
Rx(60)
0.5*Rx(0)+0.5*Rx(60)=
1 0 0
0 0.75 − 3 4
0 3 4 0.75
0
0
00 0 0 1
cos−1(0.75) ≠ sin−1( 34)
![Page 25: Transformations Géométriques · 2016. 11. 14. · •Les axes de rotation sont les axes locaux du système de coordonnées –Représentations variées : xyz, xzy, zyx, zxz, yxz…](https://reader033.vdocuments.site/reader033/viewer/2022053120/60a331f2dc2446368457a081/html5/thumbnails/25.jpg)
Angles d’Euler
• Trois angles pour représenter la rotation
• Les axes de rotation sont les axes locaux du
système de coordonnées
– Représentations variées : xyz, xzy, zyx, zxz, yxz…
• Limitation : gimbal lock
![Page 26: Transformations Géométriques · 2016. 11. 14. · •Les axes de rotation sont les axes locaux du système de coordonnées –Représentations variées : xyz, xzy, zyx, zxz, yxz…](https://reader033.vdocuments.site/reader033/viewer/2022053120/60a331f2dc2446368457a081/html5/thumbnails/26.jpg)
Angles d’Euler – XYZ
x
y
z
y’
z’
x
y’
z’ z’’
x’
y’
z’’
x’y’’
x’’
![Page 27: Transformations Géométriques · 2016. 11. 14. · •Les axes de rotation sont les axes locaux du système de coordonnées –Représentations variées : xyz, xzy, zyx, zxz, yxz…](https://reader033.vdocuments.site/reader033/viewer/2022053120/60a331f2dc2446368457a081/html5/thumbnails/27.jpg)
Angle-Axe
• Rotation représentée par
– Un axe de rotation (vecteur)
– Un angle de rotation (scalaire)
• Formules pour calculer la
matrice de rotation à partir
d’un axe et d’un angle𝜃, 𝑣 =
𝑥𝑦𝑧
![Page 28: Transformations Géométriques · 2016. 11. 14. · •Les axes de rotation sont les axes locaux du système de coordonnées –Représentations variées : xyz, xzy, zyx, zxz, yxz…](https://reader033.vdocuments.site/reader033/viewer/2022053120/60a331f2dc2446368457a081/html5/thumbnails/28.jpg)
Quaternion
• Rotation représentées par un vecteur de quatre scalaires [x, y, z, w] (ou [w, x, y, z])– Angle de rotation w
– Axe de rotation [x, y, z]
𝑞 = 𝑤 + 𝑥 𝑖 + 𝑦 𝑗 + 𝑧𝑘 avec 𝑤2 + 𝑥2+ 𝑦2+ 𝑧2= 1
• Similaire à la représentation Angle-Axe, mais propriété mathématiques plus intéressantes (e.g., interpolation)
![Page 29: Transformations Géométriques · 2016. 11. 14. · •Les axes de rotation sont les axes locaux du système de coordonnées –Représentations variées : xyz, xzy, zyx, zxz, yxz…](https://reader033.vdocuments.site/reader033/viewer/2022053120/60a331f2dc2446368457a081/html5/thumbnails/29.jpg)
Petits Rappels
• Algèbre linéaire nécessaire pour calculer les
matrices de rotation
• Exemple basique
– On a besoin de
• l’angle de rotation
• le vecteur de rotation
R?
![Page 30: Transformations Géométriques · 2016. 11. 14. · •Les axes de rotation sont les axes locaux du système de coordonnées –Représentations variées : xyz, xzy, zyx, zxz, yxz…](https://reader033.vdocuments.site/reader033/viewer/2022053120/60a331f2dc2446368457a081/html5/thumbnails/30.jpg)
Petits Rappels
• Angle de rotation 𝜃
– Utilisation du produit scalaire
𝑢. 𝑣 = 𝑢 𝑣 cos 𝜃
𝜃 = cos−1( 𝑢.𝑣𝑢 𝑣 )
• Vecteur axe de rotation
– Utilisation du produit vectoriel
w = 𝑢 × 𝑣
𝜃
𝑢
𝑣
𝑤
![Page 31: Transformations Géométriques · 2016. 11. 14. · •Les axes de rotation sont les axes locaux du système de coordonnées –Représentations variées : xyz, xzy, zyx, zxz, yxz…](https://reader033.vdocuments.site/reader033/viewer/2022053120/60a331f2dc2446368457a081/html5/thumbnails/31.jpg)
Conclusion
• Algèbre linéaire important de façon
générale en graphique
– Calcul de la direction des normales
– Positionnement et orientation de la camera
– Projection du monde 3D vers écran 2D
– …
• Tout (ou presque) est lié aux transformations
géométriques