Transformations géométriques de base, 3 …kelt-informatique.fr/ESGI 12-02-2013/ESGI...

21
Transformations géométriques de base, ..... 3 Introduction 3 Transfomlations géométriques 2D 4 Translation 4 Notation Matricielle 4 Remarque 4 Exemple 5 Remarque 5 Mise à l'échelle (Scaling) 6 Notation matricielle 6 Remarque 6 Exemple 6 Rotation 7 Exemple : Rotation d'un objet.. 7 Coordonnées homogènes 9 Pourquoi ajouter une nouvelle coordonnée ? : 9 Intérêt 9 Solution : Coordonnées homogènes 9 Interprétation géométrique 10 Exemple 10 Exemple 11 Remarque 11 Transfomlations en coordonnées homogènes 12 Translation en coordonnées homogènes 12 Mise à l'échelle en coordonnées homogènes 13 Rotation en coordonnées homogènes 14 Matrices orthogonales 15 Matrice de rotation 15 Autres transformations 18 Transformations euclidiennes (rigides) 18 Symétries (Réflexions ou miroir) 20 Glissement (shearing) 22 Composition de transformations 2D 23 Avantage 23 Problème 1 ....23 Problème 2 25 Problèmes 27 Commutativité des transformations : 28 Exemple 28 Décomposition de la transformation Window - ViewPort 29 Problème 30 Solution... ...30 Transformation 3D en coordonnées homogène 32 Système de coordonnées utilisé est direct : 32 Translation 3D 33 Mise à l'échelle 33 Rotation .....34 Propriétés des matrices de rotation 35 Glissement en 3D 36 Transformation inverse 37 Intérêt 37 Inverse des transformations 37 Exemple : Inverse de la composition d'une transformation : 38 Transformation d'un plan 39 Rappel 39 Problème 39 Solution 40 Composition des transformations 3D 42 Problème... ....42

Transcript of Transformations géométriques de base, 3 …kelt-informatique.fr/ESGI 12-02-2013/ESGI...

Transformations géométriques de base, .....3

Introduction 3Transfomlations géométriques 2D 4Translation 4

Notation Matricielle 4Remarque 4Exemple 5Remarque 5

Mise à l'échelle (Scaling) 6Notation matricielle 6Remarque 6Exemple 6

Rotation 7Exemple : Rotation d'un objet.. 7

Coordonnées homogènes 9Pourquoi ajouter une nouvelle coordonnée ? : 9Intérêt 9Solution : Coordonnées homogènes 9Interprétation géométrique 10Exemple 10Exemple 11Remarque 11

Transfomlations en coordonnées homogènes 12Translation en coordonnées homogènes 12Mise à l'échelle en coordonnées homogènes 13Rotation en coordonnées homogènes 14

Matrices orthogonales 15Matrice de rotation 15

Autres transformations 18Transformations euclidiennes (rigides) 18Symétries (Réflexions ou miroir) 20Glissement (shearing) 22

Composition de transformations 2D 23Avantage 23Problème 1 ....23Problème 2 25Problèmes 27

Commutativité des transformations : 28Exemple 28

Décomposition de la transformation Window - ViewPort 29Problème 30Solution... ...30

Transformation 3D en coordonnées homogène 32Système de coordonnées utilisé est direct : 32Translation 3D 33Mise à l'échelle 33Rotation .....34Propriétés des matrices de rotation 35Glissement en 3D 36

Transformation inverse 37Intérêt 37Inverse des transformations 37Exemple : Inverse de la composition d'une transformation : 38

Transformation d'un plan 39Rappel 39Problème 39Solution 40

Composition des transformations 3D 42Problème... ....42

Transformations géométriques de base

Introduction

Les transformations géométriques du plan constituent des fonctions de

base du graphisme au même titre que le traçage et le remplissage.

Les transformations usuelles du graphisme :

• Translation.

• Rotation.

• Changement d'échelle.

À cela s'ajoute les modèles affines et projectifs permettant de modéliser un

éventail plus large de transformation, en particulier pour les

transformations d'images (texture mapping).

Transformations géométriques 2D

Translation

On peut translater un point M(x, y) du plan vers une nouvelle position en

ajoutant une valeur de translation à ses coordonnées.

Chaque point M(x, y) est translater vers une nouvelle position M'(x', y')

deàx unités le long de l'axe des X, et dedy imités le long de l'axe des Y :

x' = x + dx

y' = y + dy

Notation Matricielle

dy

y iM(x,y)

•x-t•ax-

Remarque

En infographie, pour déplacer un objet constitué de lignes, de sommets, de

faces, il suffira de translater tous les sommets puis de retracer les lignes et

les faces.

/

Exemple

Pour un objet plan, on applique la transformation T à chaque point de

l'objet.

(3.8)

(3,5) (5.5)

(7.6)

(7.3) (9,3)

O

Remarque

Cette méthode est également vraie pour les autres types de transformations

(rotations, zoom, etc).

(Mise à l'échelle (Scaling)

On peut mettre à l'échelle un ensemble de points M(x, y) avec un facteur

de grossissement Sx le long de l'axe des X et Sy le long de l'axe des Y :

X' = 8x * x

Y' = 5y * y

Notation matricielle

Remarque

* Si ôx=ôy: le scaling est dit uniforme ,

* Si 8x7% : le scaling est dit différentiel (les proportion? changent)

Exemple ; - <yj

?J/3 0|Ho ml

o

Pour un objet plan, on applique la transformation S à chaque point de

l'objet.

(Rotation

Pour faire tourner un point d'angle a autour de l'origine

x = Rcosj3l

x'=R.cosa.cosfî-Rsmasmf!=x.cosa - y.sinay'=R.cosasmfî+Rsina.cosp=xsma + y.cosa

Notation matricielle :

Exemple : Rotation d'un objet

P'= R * P *^>

Pour un objet plan, on applique la transformation R à chaque point de

l'objet.

Rappels :

Quelques conventions trigonométriques :

Un angle est positif quand on tourne de la gauche de l'axe des X vers l'axe

des Yi '

cos(-oc)=cos(a) et sin(-a)=-sin(a)

Attention :

ici, on tourne autour de l'origine, pour tourner autour d'un point

quelconque, on utilise la "Composition de transformations 2-D".

Coordonnées homogènes

Pourquoi ajouter une nouvelle coordonnée ?

Les représentations matricielles pour la translation, la rotation et la mise à

l'échelle sont les suivantes :

M' = T + M Translation

M' = S * M Scalmg

M' = R * M Rotation

Où M représente un point et M' son transformé

On remarque que la translation (est une addition ) est traitée différemment

de la rotation et de la mise à l'échelle (Multiplication).

Nous souhaitons traiter ces trois transformations de manière homogène, en

appliquant dans tous les cas la même opération (c'est à dire écrire la

translation sous la forme M'=T*M où T n'est plus un vecteur mais une

matrice carrée).

.Intérêt

Combiner plus facilement les différentes transformations.

Les 3 transformations peuvent être combinées à l'aide de l'opération

multiplication (produit matricielle).

Solution : Coordonnées homogènes

Effectuer les calculs dans un espace supérieur à l'espace de départ. En 2D,

les calculs sont effectués sur des vecteurs 3D.

Interprétation géométrique

Zao

observateur

Interprétation géométrique des coordonnées homogènes

On suppose que le plan XOY est situé en W=l tel que (X Y W)=( x y 1)

Donc en 2D chaque point, au lieu d'être représenté par une paire (x, y) est

représenté par un triplet (x, y, w)

On dit que deux triplets de coordonnées homogènes (x, y, w) et (x', y', w')

représentent le même point s'ils sont multiples, c'est à dire il existe un

scalaire A. tel que : x' = A,x, y'=^y w'=Àw

Exemple

Le point (2, 3, 6) et le point (4, 6, 12) représentent le même point ! ! !

10

Ainsi, un point peut avoir plusieurs représentations en coordonnée

homogènes.

• si w^Q, alors (x, y, w) représente le même point que (x/w, y/w, 1 ) x/w et

y/w sont appelés les coordonnées cartésiennes du point homogène.

• si w=0, les points (x, y, 0) sont appelés « points à l'infini », ils serviront

à décrire des directions.

• Représentation usuelle : (x, y, 1 )

• Les transformations sont effectuées dans le plan Z=w pour lequel les

vecteurs s'écrivent (X Y W) = (wx wy w) et ou l'on a des matrices T, R

et S telles que :

M' = T * M M ' = R * M M' = S*M

Exemple

fl 0 tx\fW) (w'x1} {w'x'=wx+wtx=w(x+tx)M-\ 1 ty H wy = w'y' -> <w'y'=wy+wty-w(y+ty)

(0 0 1 )(w) (w' J w'=wv lx'=X+tx* (y'=y+ty

Remarque

'

Chaque fois que l'on obtient un vecteur résultat de la forme (X, Y, .., W)

avec W*l, les coordonnées cherchées (x, y, ..) sont obtenus en divisant par

W soit :

x = X/W y=Y/W, ...

i l

• lTransformations en coordonnées homogènes

Translation en coordonnées homogènes

(x'} f i o txY^y M o i ty : y \U loolAU"

M' = T * M

Problème

La composée de deux translations est bien égale à la somme des

translations.

Solution

M est translaté de T'(txi, tyl) en M', puis translaté par T2(tx2, ty2) en M"

f l O txiV10 txO (10 txi+te01 tyl M 0 1 ty2 = 0 1 tyl+tv2

^00 i j ipo 1 J\00 1 ', tyl+ty2)

la composée de 2 translations est bien égale à la somme des translations.

12

Mise à l'échelle en coordonnées homogènes

'/l (& o oYVy H o & o vv i H O oih

M' = S(8x, 8y )* M

Problème

La composée de deux mise à l'échelle est bien égale au produit des mises à

l'échelle.

Solution

M est mise à l'échelle de S'(SX|, 8yO en M', puis mise à l'échelle par

S'(5x2, 5y2)enM"

&i 0 OV&2 0 0") (&i*&2 0 O0 Sy\ H 0 <5y2 0 H 0 Sy\*Sy2 0 hO O l J I ^ O O l J ^ O 0 1 J

la composition des mises à l'échelle est multiplicative.

13

Rotation en coordonnées homogènes

x'\0\v1 = sinor cosa 0 yJA « o iK

M' = R(oc)* M

Problème

Composition des rotations est additive

Solution

Rappel :

cos(cc+p)=cos(<x)*cos(P) - sin(cc)*sin(p)

sin(°c+p)=cos(oc)*sin(p) + sin(oc)*cos(p)

(cosp -sin/? O -sincc 0] (cosjx+fij-sinfo+jty 0siny? cos/? 0 H sincr cosa 0 H sinp+/^co^r+y^ 0 \=R(a+fi)

la composition des rotations est additive.

14

Matrices orthogonales

Une matrice est dite orthogonale si ses éléments sont réels et si elle obéit

- t A A -1à A = A

ce qui se traduit par

Les vecteurs colonnes de la matrice rotation sont donc normes à l'unité et

orthogonaux entre eux.

Matrice de rotation

(cosa -sina (Asina cosa 0

l 0 0 ij

'

15

A) On considère les deux vecteurs lignes de la matrice :

Fl=[cosa -sinaj V2=[sin# cosaj

VI et V2 possèdent les propriétés suivantes :

• ce sont des vecteurs unitaires (leur nonne est égal a l )

• chacun est perpendiculaire à l'autre (leur produit scalaire est égal à 0)

le déterminant de la sous matrice r •??" ll̂ J? est égal à 1 : chacun desLS 1 1 M -t UUoGt J

vecteurs doit être tourné (dans le sens trigonométrique) de ce pour se

retrouver aligné sur les axes X et Y.

COSGC '

-sinot

1 Tsni« cosotl

sinaa Tcosa1

X

F* - r • ir'" 1 COSOC — SlllGÇj

Les vecteurs lignes de la matrice foniient un repère orthonormé. Si on

tourne ce repère de l'angle de la rotation <x, ces vecteurs se confondent

avec les axes.

16

B) On considère les deux vecteurs colonnes de la matrice

™\sina / \costf /

VI et V2 possèdent les propriétés suivantes :

• ce sont des vecteurs unitaires (leur norme est égal a i )

• VI et V2 orthogonaux

—•>V, -sin a cos a

stoa cos a

a

-sn ce

• Si on tourne de l'angle de la rotation les axes X et Y se confondent avec

les deux vecteurs colonnes de la matrice de rotation.

Une matrice ayant ces propriétés est appelé matrice orthogonal.

17

(Autres transformations

Transformations euclidiennes (rigides)

La matrice de transformation est du type :% r21 wlN

r21 r22 m2

0 0 1

par exemple

0 0

Où la sous matrice 2x2 est orthogonale

Exemplel

tx

sin 9 cos 6 ty

1(I)

Un carré de côté 1 sera toujours un

\é une fois transformé par une

matrice de ce type .

Caractéristiques :

• 3 degrés de liberté (1 rotation , 2 translation)

• Préserve les angles, surfaces et longueurs.

18

,

Exemple!

Transformation =

cosd -sin# tx

sin 9 cos0 ty

0 0 5

Caractéristiques

• 4 degrés de liberté ( Translation 2 , Rotation 1, Facteur d'échelle 1)

• Préserve les angles et rapports de longueurs.

-^On dit qu'il s'agit d'une transformation rigide, car la forme des

objets transformés n'est pas déformé après la transformation.

•î* Lorsque on décompose des translations, des rotations et des scaling, on

obtient une transformation affine de la forme :

mA m*

0 0 m7

Caractéristiques :

• 6 degrés de liberté ( Rotation 1, Translation 2, Mise à l'échelleJ2)

• conserve le parallélisme des lignes, les rapports de surface, les rapportsde longueurs mais elle ne conserve ni les longueurs ni les angles.

Exemple3

Symétries (Réflexions ou miroir)

Réflexion par rapport à l'axe des x

Y ?>' IX'=Xi

1

f V=*-y rVf x Ilyj l

» Cx. y)

/ \n coordonnée homog

Yûf, y")

A-'l

1 _

=

1

0

_0

0

-1

0

o'0

i

x

y

1

Réflexion par rapport à l'axe des yy

/lor. y> X

N

/!• ' i ','t»f

K,>0t y)

IX

f^~v M-v =?ry— y LyJ UL

en coordonnée homog

x'

y'i

=- 1 0 0

0 1 0

^ 0 0 1

X

yi

y

Réflexion par rapport à l'origine / $ H l^i i " < "̂ [reM>]l / /

V

VV. rt

Ç'=-j; M-[y'J=[()

V * rt en coordonnée homogè

. . . . . .j. o .— — , . — _ , , _ _ ,

x'

y'i

=- 1 0 0

0 - 1 0

L 0 0 1

X

yi

20

( •*

Exercice : Réflexion par rapport à une droite

9

Y

A

>•(~*|A

.n

)

1 0

y=ax+b

-^ X

| -Si

01Î ^P**nGlissement (shearing)

o o

-

-V -

Y

COJ)

(D-Q)

-

(1,1)

h y

V

(0.1)

^ <U> . . . . . . . .

/ ' d» • '/ ;/ • • •' • - '

œ-ct)

Glissement selon l'axe Y

ovoc Sh, - 2

Glissement est une transformation déformant les objets.

• ne conserve pas les angles, donc pas les aires des surfaces

• Le glissement est une transformation affine ; , ,

• Le glissement peut se décomposer en deux cas élémentaires :

Glissement le long des axes X et un glissement le long des axes Y.

y'=y

xSHx4o 1 0loo i

f 1 00SHy4s\\l 0

t o oi

' H O 1 0 vj t o o i|f'l f 1 0 OÏx' W s h y l 0 v

i t o o i io o ,4 -{,\ o 'fi j M'=SHy * M Correspond bien au point M auquel on a fait subir un

changement proportionnel de sa coordonnée y par rapport à sa coordonnée

21

Ocfet*» ' & )

-*ÏZ2x.

22

Composition de transformations 2D

Avantage

L'avantage principal de la composition des transformations est un gain en

efficacité, car on applique aux points d'un objet une seule transformation

au lieu de leur appliquer une série de transformations.

A l'aide des coordonnées homogènes, Les compositions s'écrivent

alors comme des succession de matrices de transformations.

Problème 1

Rotation d'un objet autour d'un point PI(XI, y!)

Solutionl,

Puisque nous savons comment faire tourner un objet autour de l'origine, il

suffit de transformer le problème de départ en 3 sous problèmes simples :

1) Translater PI à l'origine : T(-XI, -y,)

2) Effectuer la rotation : R(<x)

3) Translater PI vers son ancienne position : T(XI, yO

La transformation résultante est : M= T(XI, y^* R(oc)*T(-Xi, -yO

Calcul :

Soit M= T(x,, y,)* R(oc)*T(-x,, -y,)

f 1 0 xi i/cpsa -sina 0} \ 0 -xiM = 0 1 yi n sina cosa 0 n 0 1 -yi

l o o i ( o o ij 0 0 1

10 xiO l y i

,001

cosa -sina -xicosa+yisinasina cosa -xisina-yicosa

0 0 1

f cosa -sina -xicosa+yisina-K» ]= sina cosa-xisina-yicosa+>il 0 0 1 J

/^cosa-sina xi(l-cosa)+yisinaA|= sina cosa yi(l-cosa)~xisina( 0 0 1 J

Problème 2

Même approche pour mettre à l'échelle un objet par rapport à un point.

Solution

Puisque nous savons comment faire maître à l'échelle un objet par rapport

à l'origine, il suffit de transformer le problème de départ en 3 sous

problèmes simples :

1) Translater PI à l'origine : T(-XI, -yO

2) Effectuer le scaling : S(ôx, ôy)

3) Translater PI vers son ancienne position : T(xb y^

La transformation résultante est : M = T(XJ, yj)* S(8x, ôy)* T(-x,, -y^

17 y'-,?.

• ' ' ('

Calcul :

M = T(x,, y,)* S(ôx, ôy)* T(-Xl, -y,)

M = Oly i 'H O^oHôl-y i '

(\0xi}(âx ° -Xl&) - sl= 0 1 yi M 0 ôy -y\8y >'

(001 )(0 0 1 )

( Sx 0 xi-xi&^= 0 Ôy y\-y\ôy , /

[ 0 0 1 J

(Sx 0 xi-xi&: |= 0 Sy y\-yiôyl o o i J

= 0 ôy y\(\-Sy)( 0 0 1 ' J . . < ; ; • ,.-:',..

25 26

Problème 3

Scaler, tourner et positionner en P2 l'objet avec PI comme centre de

rotation.

Solution :

On décompose la transformation en une série de transformations

élémentaires :

1) Translater PI à l'origine : T(-XI, -yi)

2) Effectuer le scaling : S(Sx, ôy)

3) Effectuer la rotation : R(«0

4) Translater vers P2 nouvelle position : T(x2, JT)

La transformation résultante est :

Décomposition d'une transformation complexe en transformations élémentaires

Commutativité des transformations

Si Ml et M2 représentent une translation (T), une rotation (R ) ou un

scaling (S) quand a-t-on M1*M2 = M2*M1 ?

En général, la multiplication matricielle n'est pas commutative

M1*M2 = M2*M1 si

MlTSRS (avec ôx=5y)

M2TSRR

Exemple

L'ordre de transformations est important :

M- T(x2, y2)* R(oc)*S(ôx, ôy)*T(-xt, -y,)MST=

~âx 0 0"0 ^00 0 1

fl 0 tx"O l t y00 1

=Sx 0 (5k*tx0 <Sy<5y*ty0 0 1

„ ' Mxs=T(tx, ty).S(Sx, <5y)

ÊYi Yi Yi Yi'l " J l J l r-Tv MlS =

> . /\v \V>ffi | l/|\ ^Xx

•"- ) ) A A \ / ^v /i. -i—' 'V/ En gen

l O t xO l t y00 1 _

éral MST '

Se 0 00 âyO0 0 1

—Sx 0 tx0 âyty0 0 1

4

27 28

Décomposition de la transformation Window - ViewPort

En général, les objets de la scène sont exprimés dans le repère du monde

(World Coordinate System), qui possède ses propres unités de mesure

(mètres, centimètres, peu importe).

On utilise le ternie monde car le programme d'application représente un

monde virtuel crée par l'utilisateur.

Les primitives graphiques qui serviront à visualiser les objets

appartiennent au monde de l'écran qui possède son propre système de

coordonnées, exprimées en pixels.

En général, on est amené à définir deux fenêtres :

• window : exprimé dans le repère du monde, contient la partie des

objets que l'on souhaite visualiser

• viewport : définit la partie de l'écran dans laquelle on veut afficher

les objets contenus dans la fenêtre window. La taille et la position de

viewport sont exprimés en pixels.

Problème

Etant donné une window et un viewport, quelle est la matrice de

transformation qui permet de passer de l'un vers l'autre ?

Solution

Cette transformation peut s'effectuer en plusieurs étapes :T"(->^M/

1) translation de window à l'origine du repère du monde : T(umin, vmin)

2) mise à l'échelle de la fenêtre window pour quelle prenne la taille du

viewport. Passage du repère du monde vers le repère écran :

C/l/max —Z/miii Vmax—Vmin \ — Xmin _yniax —_Vmin

3) translation du viewport vers la position désirée dans le repère écran : T(-

in? "Ymin/ x , vmtuf ' max

WINDOW

WINDOW

X

WINDOW dans lerepère du monde

(1)

Window translatéeà l'origine

(2)

WINDOW

Taille deVIEWPORT

WINDOW scaléeà la taille du VIEWPORT,passage du repère du mondeau repère de l'écran

(3)

1

VIEWPORT

X U • Vmin' min

VIEWPORT translaté del'origine vers i'min,vmia

(4)

Décomposition de la transformation WINDOW-VIEWPORT eni étapes

.La transformation peut s'écrire sous forme d'un produit de 3

transformations :

Muv , Vmin)5("max~Mmin,—

,.\jnax — Xniin J^niax — J

(~Xmm, -ymin)

Développons maintenant le résultat précédent :

(\TMuv= 0 1 Vmin I*

00 1

Z/max ~Umin A A

.Xrnax —XminA Vmax — Vmiii A

0V

0 1

/

Muv =

Urna.x~Umm._ A

Xmax—Xmin

A Vmax ~~Vmin

:

1 0 -xmin]0 1 -ymin00 1 J

\

0_

0

Cmax —.Xmin

,, . I Mnax —Vfoiiu \_\_-., •— Vrain rrVTnm-^ -i » 11_

1

Donc finalement, si on a un point Pw=(x, y, 1)T appartenant à un objet dans

le repère du monde. Si Pw se trouve dans la WINDOW, il se trouve

représenté sur l'écran en :

Xy

, 1 .

\Xhiax — Xmin

~Vhlin +Vmin

31

Transformation 3D en coordonnées homogène

De la même manière que les transformations 2D sont représentés par des

matrices 3x3, en utilisant des coordonnées homogènes, les transformations

3D seront représentés à l'aide de matrice 4x4.

Au lieu de représenter un point par un triplet (x, y, z), on utilisera un

quadruplé homogène (x, y, z, w).

Système de coordonnées utilisé est direct :

32

Translation 3D Rotation

M=X'y7'l i >

=T*M=T*

,ty,tz)=

X

yz

11;(100 tx^ i010 ty

001 tzi G O O 1

X+txy+tyz+t-( 1 J

Mise à l'échelle

Remarque

Si ôx=ôy=8z=5 alors la matrice S est équivalente à'100 00 1 0 0001 0000

5)

> Rotation d'angle a autour de l'axe des Z: Rz(a)=|

Vérification :

*î* l'axe z ne change pas. , .

* Une rotation de n/2 doit changer x en y et y en -x

cpsa -sina 0 0sina cosa 0 0. 0 0 1 0

0 0 0 1

> Rotation d'angle a autour de l'axe des X : Rx(a)=|

Vérification :

Ȕ* l'axe X ne change pas.

1 0 00 cosa -sina 00 sina cosa 00 0 0 1

<* Une rotation de n/2 doit changer y en z et z en -y

f.

> Rotation d'angle a autour de l'axe des Y : Ry(a)=|

.Vérification :

«î» l'axe Y ne change pas.

cosa 0 -sina 00 1 0 0

sina 0 cosa , 00 0 0 1

•î» Une rotation de n/2 doit changer z en x et x en -z

33 34

Propriétés des matrices de rotation

• D e t R = l

R"' ='R

• Groupe des rotations non commutatifs

Les sous matrices 3x3 en pointillés sont des matrices orthogonales. Elles

possèdent les propriétés suivantes :

• Les 3 vecteurs et les vecteurs colonnes sont unitaires

• Les 3 vecteurs et les vecteurs colonnes sont orthogonaux

• La transfomiation R(a), appliquée aux trois vecteurs lignes, produit les

vecteurs unitaires des axes X, Y et Z.

• La transformation R(a), appliquée aux vecteurs unitaires des axes X, Y

et Z, produit les vecteurs colonnes.

Les matrices orthogonaux préservent les angles et les distances.

Glissement en 3D

On exprime un glissement 3D le long des axes X et Y à l'aide de la

matrice :

SHxy= Olshy 000 1 000 0 1

En effet :

SHxy*M= O l s h y 000 1 0

(,00 0 ij* y

Zluy+shy*z

Z( 1 J

36

Transformation inverse

Intérêt

Après avoir transformé un objet graphique, il arrive souvent que l'on

veuille le ramener à sa forme originale. On peut le faire avec le principe

des matrices inverses.

Inverse des transformations

Chacune des matrices de transformation R, S, et T possède un inverse.

• On obtient l'inverse d'une translation T(tx, ty, tz) en inversant les

signes de tx, ty et tz.

T\tx, ty, tz) = T(-tx, -ty, -tz)

• L'inverse d'une mise à l'échelle S(3x, 9y, dz) s'obtient en inversant les

facteurs d'échelles : <3x, ôy et <3z

Exemple : Inverse de la composition d'une transformation

MRST=R(o).S(<5x, <5y, <5z).T(tx, ty, tz)

, ty, tz)sVx, <5y,

, dy, dz)= S(l/9x, 1%, 1/âz)

• L'inverse d'une rotation R(oc) est la rotation :

R-'(a:)=T(R(<x))=R(-cx:) OC - -OC

L'inverse d'une matrice orthogonale M est TM.

Shx et Shy son inverse est -> -Shx et -Shy

La réflexion est son propre inverse.

37 38

Transformation d'un plan

Rappel

Pour déplacer, tourner, retailler un objet, on transforme juste des points de

l'objet (les sommets des arêtes des objets), puis on redessine les arêtes.

Problème

Pour transformer un plan défini par 3 points, on transformera les points

pour obtenir la nouvelle équation du plan.

Cependant, souvent les plans sont définis uniquement par leur équation :

> II est possible de recalculer les coefficients du plan en utilisant

directement la transformation

>• On peut aussi non pas transformer le plan lui même, mais son plan

normal.

. 39

• ( -Solution J r* s *

Equation du plan

Le plan est défini par tous les points M qui vérifient l'équation :

TN*M = 0 (a b c d

Supposons que l'on transforme les points M du,plana l'aide d'une matrice

H : M ' = H * M

Pour conserver 1N'*M'=0 avec les points transformés, on transforme N en

N'par une matrice Q (que l'on cherche) telle que l'équation suivante reste

vraie: N' = Q * N

.„••. - - • ' • : • ' • . ^ ' ';': : ' "T)-!'-'' •' ' ''(Q*N)*(H*M) = 0

(TN* TQ)*(H*M)=0 (I)

• T,

Or TN*M = 0

L'équation (I) reste vraie si 'Q*H= est un multiple de la matrice identité.

En particulier TQ*H=I

Dans ce cas TQ = H"1.

Ou encore Q = T(H"')

Ainsi le vecteur contenant les coefficients de l'équation du plan transformé

par est donné par :

N' = Q * N = T(H"') * N

40

( ' •Remarque 1

La matrice T(H"') peut ne pas exister si det(H)=0

Exemple H est une matrice de projection

Remarque 2

La normale au plan avant transformation est N=T(a, b, c, 0)

Après transformation N' = T(a\, c', 0)

La normale est une direction, c'est pourquoi sa 4 direction est nulle.

4l