IFT3730: Infographie 3DTransformations Géométriques
Derek NowrouzezahraiDépartement d’informatique et de recherche opérationelleUniversité de Montréal
Aujourd’hui: Transformations 2D & 3D
1. Transformation en 2D- Translation- Changement d’échelle (scaling)- Rotation
2. Coordonées homogènes (2D)- Combinaisons des transformations
3. Transformation en 3D
Opérations mathématiques (1)
• Produit scalaire– projection d'un vecteur sur un autre où cosvuvu
uv
cosv
222|| zyx vvvv
zzyyxx vuvuvuvu
Opérations mathématiques (2)•Produit vectoriel– Calcul d'un vecteur perpendiculaire aux deux autres– Règle de la main droite
xyyx
zxxz
yzzy
vuvu
vuvu
vuvu
vun
sinvuvu
u
v
n
Translation en 2D
),( yxP
),( yyxxP
x
y
PTP
yx
yx
yx
T
Changement d’échelle en 2D (scaling)
),( yxP
),( yyxxP
SPP
yx
yx
yx
00
Rotation en 2D
RPP
yx
yx
cossinsincos
sens anti-horaire
sincos
:ryrx
P
cossincossinsincos
)sin(sincos
sinsincoscos)cos(
:
yxrr
ryyx
rrrx
Pr
r ),( yxP
),( yxP
Coordonnées homogènes
• Pour Translation: T+P en addition • mais les autres transformations sont des multiplications
• Représentation des transformations sous une forme matricielle unique:+ uniformité+ composition+ opérations des 4x4 peuvent êtres exécutées en parallèle- optimisations possibles...
x
xy
x
tymxmytymxmx
yx
tmmtmm
2221
12112221
1211
1100
(9 mult,6 add) vs. (4 mult,4 add)
Coordonnées homogènes• Remplacer les coordonnées euclidiennes du
point p par des coordonnées homogènes.2D:
3D:
p x,y T p' x,y,1 T
x
h,y
h,1
T
x,y,h T
x,y,1 T hx,hy,h T
p x,y,z T p' x,y,z,1 T
x
h,y
h,z
h,1
T
x,y,z,h T
x,y,z,1 T hx,hy,hz,h T
Translation: maintenant avec les matrices(grâce aux coordonnées homogènes)
PP
PyxT
y
x
y
x
yy
xx
P
),(
1100
10
01
1
Combinaison de translations en 2D
PP
P
PyyxxT
yx
yyxx
yx
yx
yx
PyxTyxT
PyxTP
PyxTP
),(
11001001
11001001
1001001
),(),(
),(
),(
2121
21
21
1
1
2
2
1122
22
11
Combinaison de changements d’échelle en 2D
PyyxxS
yx
yyxx
yx
yx
yx
PyxSyxSP
),(
11000000
11000000
1000000
),(),(
2121
21
21
1
1
2
2
1122
Combinaison de rotations en 2D
PR
yx
yx
yx
PRRP
)(
11000)cos()sin(0)sin()cos(
11000coscossinsinsincoscossin0cossinsincossinsincoscos
11000cossin0sincos
1000cossin0sincos
)()(
Combinaisons de matrices de transformation
• + efficacité– une seule matrice composée est utilisée au lieu
d’une série de matrices• {R,T}– Sont des transformation rigid-body• préserve les longueurs et les angles
• {R,T,S}– transformation affine• préserve le parallélisme des lignes • (mais pas les longueurs ni les angles)
Propriétés des matrices de transformations
• Commutativité
• Associativité
• Inverses
M1(M2M3) (M1M2)M3
T 1(x,y) T( x, y)
S 1(x,y) S 1x ,
1y
R 1() R( ) R t ()
T1T2 T2T1
S1S2 S2S1
R1R2 R2R1
S(x y)RRS(x y)
Exemple d’une série de transformations
• Rotation autour d’un point Q• On sait comment faire une rotation autour de
l’origine, mais pas autour d’un point arbitraire
1. Translation telle que Q est à l’origine:2. Rotation de autour de l’origine:3. Translation de l’origine jusqu’à Q:
M T(x,y)R()T( x, y)P
),( yxT
)(R),( yxT
Exemple de non-commutativité
100
0
0
100
10
01
100
00
00
100
0
0
100
00
00
100
10
01
),(),(),(),(
yss
xss
y
x
s
s
ST
ys
xs
s
s
y
x
TS
yxTssSssSyxT
yy
xx
y
x
y
x
y
x
yxyx
Transformation 2D:rectangle à rectangle
),( maxmax yx
),( minmin yx
Y
X
Con
figu
ratio
nin
itial
e
U
V
Con
figu
ratio
nfi
nale
),( minmin vu
),( maxmax vu
XY UV
?
Transformation 2D:rectangle à rectangle
),( minmaxminmax yyxx
)0,0(
),( minmin yxT
XY UV
),( maxmax yx
),( minmin yx
Y
X
Con
figu
ratio
nin
itial
e
U
V
Con
figu
ratio
nfi
nale
),( minmin vu
),( maxmax vu
),( minmaxminmax yyxx
)0,0(
S umax umin
xmax xmin, vmax vmin
ymax ymin
),( minmaxminmax vvuu
)0,0(
),( minmaxminmax vvuu
Transformation 2D:rectangle à rectangle XY UV
),( minmaxminmax vvuu
)0,0(
minmin ,vuT
),( maxmax vu
),( minmin vu
Transformation 2D:rectangle à rectangle XY UV
Transformation 2D:rectangle à rectangle
),( maxmax yx
),( minmin yx
Y
X
Con
figu
ratio
nin
itial
e
U
V
Con
figu
ratio
nfi
nale
),( minmin vu
),( maxmax vu
XY UV
),( , ),( minminminmin minmax
minmax
minmax
minmax yxTSvuTM yyvv
xxuu
uvxy
Transformations en 3D
• 2D: matrice 3x3 en coordonnées homogènes• 3D: matrice 4x4 en coordonnées homogènes
),,,(),,( wzyxzyx
X
Y
Z
Système de coordonnées de la main droite rotation positive: sens anti-horaire
Transformations 3D de base
• Translation
• Changement d’échelle
1000
100
010
001
tz
ty
tx
T
1000
000
000
000
sz
sy
sx
S
Translation 3D•Déplace un ensemble de points (ou objets) d'une distance dans une certaine direction
),,( zyx dddT
z
y
x
Changement d’échelle 3D• Modification de la taille d’un ensemble de
points (ou d’objets) par rapport à l’origine
S(1.5,-0.5,1.0)
z
y
x
Transformations 3D de base
• Rotations
)(
1000
0cossin0
0sincos0
0001
xR
)(
1000
0cos0sin
0010
0sin0cos
yR
)(
1000
0100
00cossin
00sincos
zR
Rotation 3D• Fait tourner d’un angle un ensemble de
points (ou objets) autour d’un axe de rotation.• La rotation se fait TOUJOURS par rapport à
l’origine.
Axe de rotation:
Rz()z
y
x
Transformation de normales
• Points, tangentes, vecteurs fonctionnent avec les matrices standards
• Normale à la surface fonctionne différemment
2.0,1SM
nMn T 1
'
En résumé…• Les transformations importantes en infographie 2D et 3D sont :– La rotation;– La translation;– Le changement d’échelle.
• Grâce aux coordonnées homogènes, la translation se représente comme une opération matricielle, tout comme les 2 autres.
• Ces matrices de transformations peuvent être multipliées ensemble et former une seule matrice M.
• L’ordre des transformations est important.
Top Related