transformations géométriques · 2016. 11. 14. · •les axes de rotation sont les axes locaux du...

31
Transformations Géométriques

Upload: others

Post on 18-Jan-2021

2 views

Category:

Documents


0 download

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…

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…

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…

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…

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…

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…

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…

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…

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…

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…

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…

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…

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…

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…

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…

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…

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…

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…

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…

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…

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…

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…

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…

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…

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…

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…

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…

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…

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…

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…

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…

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