Vous êtes sur la page 1sur 6

Transformations 2D

Julien BERNARD

Dead Pixels Society


Université de Franche-Comté

version 1

Julien BERNARD (DPS) Transformations 2D version 1 1/6


Coordonnées homogènes

Coordonnées homogènes
Un point A de coordonnées (xA , yA ) a pour coordonnées homogènes :
 
xA
yA 
 
1

Matrice de transformation 2D
Une matrice de transformation 2D est une matrice 3 × 3 qui s’appliquent à
des coordonnées homogènes. Par exemple, la matrice de l’identité est :
 
1 0 0
0 1 0
 
0 0 1

Julien BERNARD (DPS) Transformations 2D version 1 2/6


Translation

Translation


La translation de vecteur V = (Vx , Vy ) a pour matrice :
 
1 0 Vx
0 1 Vy 
 
0 0 1

Un point A est transformé en point B de la manière suivante :


(
xB = xA + Vx
yB = yA + Vy

Julien BERNARD (DPS) Transformations 2D version 1 3/6


Rotation

Rotation
La rotation de centre O et d’angle α a pour matrice :
 
cos α − sin α 0
 sin α cos α 0
 
0 0 1

Un point A est transformé en point B de la manière suivante :


(
xB = xA cos α − yA sin α
yB = xA sin α + yA cos α

Julien BERNARD (DPS) Transformations 2D version 1 4/6


Dilatation

Dilatation
La dilatation de centre O et de facteurs (Sx , Sy ) a pour matrice :
 
Sx 0 0
0 Sy 0
 
0 0 1

Un point A est transformé en point B de la manière suivante :


(
xB = Sx · xA
yB = Sy · yA

Julien BERNARD (DPS) Transformations 2D version 1 5/6


Combinaison de transformations

Combinaison de transformations
Pour combiner plusieurs transformations, on multiplie leurs matrices de
transformation dans l’ordre inverse d’application des transformations.

Exemple (Rotation de centre C = (xC , yC ) et d’angle α)


 
cos α − sin α xC · (1 − cos α) + yC · (1 − sin α)
 sin α cos α yC · (1 − cos α) − xC · (1 − sin α)
 
0 0 1

Exemple (Dilatation de centre C = (xC , yC ) et de facteurs (Sx , Sy ))


 
Sx 0 xC · (1 − Sx )
0 Sy yC · (1 − Sy )
 
0 0 1

Julien BERNARD (DPS) Transformations 2D version 1 6/6