Académique Documents
Professionnel Documents
Culture Documents
plusieurs repères :
⎛ x⎞ ⎛ x′ ⎞
• objet, Soient X = ⎜⎜ ⎟⎟ point de départ et X′ = ⎜⎜ ⎟⎟ le point final (transformé de X)
• scène, ⎝ ⎠
y ⎝ y′ ⎠
• observateur(caméra), Toutes les transformations ponctuelles dans le plan peuvent s' écrire :
• écran:
transformations pour passer zo Plan de projection X′ = AX + B
d’un repère à l’autre. yo ⎛a a12 ⎞ ⎛b ⎞
z xo Objet projeté A est une matrice 2 × 2 inversible ⎜⎜ 11 ⎟⎟ B est un vecteur ⎜⎜ 1 ⎟⎟
⎝ 21
a a 22 ⎠ ⎝ b2 ⎠
description 3D pour un
⎧ x′ = a11 x + a 12 y + b1
y
affichage 2D: x yc ⎨
projection de la scène sur xc ⎩ y′ = a 21 x + a 22 y + b 2
Point de visée zc
l ’écran
Caméra
(observateur de
la scène)
Changement d'échelle
⎛ ex 0⎞
Translation A est une matrice diagonale Eex ,ey = ⎜⎜ ⎟ B est nul
⎝0 e y ⎟⎠
⎧ x′ = e x x
P’(x’,y’) ⎨ ′
⎩ y = ey y
⎛ 1 0⎞
A est la matrice identité ⎜⎜ ⎟⎟ v Rotation par rapport à l'origine
⎝0 1⎠ y’
P’
P(x,y)
⎛x ⎞
B est le vecteur de translation Tv = ⎜⎜ v ⎟⎟ y P
⎝ yv ⎠ α
⎧ x′ = x + xv
⎨
⎩ y′ = y + yv
x’ x
⎛ cosα - sin α ⎞ ⎛ 0⎞
A est la matrice de rotation Rα = ⎜⎜ ⎟ B est nul ⎜⎜ ⎟⎟
⎝ sin α cosα ⎟⎠ ⎝ 0⎠
⎧ x′ = x cosα − y sin α
⎨
⎩ y ′ = x sin α + y cosα
Chap 4 1
LO12
α
Application aux objets
v x’ x
en théorie : on applique la transformation ponctuelle en chaque point de l’objet
x
en pratique : seulement quelques points de référence
⎧ x′ = x − xv ⎧ x′ = x cos α + y sin α
⎨ ⎨
⎩ y ′ = y − yv ⎩ y′ = − x sin α + y cos α
Une transformation peut se représenter sous forme d' une seule matrice M
X' = MX
Toute transformation peut se θ
C' est possible pour toutes les transformations élémentaires sauf
décomposer en composition
de transformations v P la translation. Pour cela on utilise les coordonnées dites homogènes
élémentaires
Définition
Chap 4 2
LO12
Pn ' = M 3 ⋅ M 2 ⋅ M1 ⋅ Pn
• Composition des transformations : calcul d'une matrice Soit un objet défini dans son propre repère.
M = M 3 ⋅ M 2 ⋅ M1 Le placer dans une image consiste à :
1) effectuer une mise à l ’échelle
P1 ' = M ⋅ P1 2) effectuer une rotation
P2 ' = M ⋅ P2 3) effectuer une translation
...
Pn ' = M ⋅ Pn
Chap 4 3
LO12
x
Repère indirect lié à l’observateur Repère direct lié à l’observateur
z z
Chap 4 4
LO12
Opération de changement de répère On suppose ici que l'observateur vise le centre de la scène (polarview)
• position de l'observateur
Appliquée lorsqu’on passe du repère de la scène au repère
• point de visée : centre du repère scène
observateur twist twist
• angle de "twist" : tête droite
Un exemple : le polarview
yc xc yc xc
zc
zc
d
z C z C
O y O y
x φ x φ
θ θ
x1 y φ
O z2 O
x π/2 - θ x1
θ y1 φ x2 θ y1 φ
Chap 4 5
LO12
Rotation de π autour de y2
Rotation R y(π) : Translation de d = distance de O vers C : ⎡ x'⎤ ⎡1 0 0 0 ⎤⎡ x3⎤
⎢ y'⎥ ⎢0 ⎥⎢ y3⎥
(repère direct) ⎡ x3⎤ ⎡ cosπ 0 sinπ 0⎤⎡ x2⎤ translation T(0,0,-d) : ⎢ ⎥ =⎢ 1 0 0 ⎥⎢ ⎥
⎢ y3⎥ ⎢ 0 1 0 0⎥⎥⎢⎢ y2⎥⎥
⎢ z'⎥ ⎢0 0 1 − xc + yc + zc ⎥⎢ z3⎥
2 2 2
⎢ ⎥ =⎢ ⎢ ⎥ ⎢ ⎥⎢ ⎥
⎣ 1 ⎦ ⎣0 0 0 1 ⎦⎣ 1 ⎦
⎢ z3⎥ ⎢−sinπ 0 cosπ 0⎥⎢ z2 ⎥
⎢ ⎥ ⎢ ⎥⎢ ⎥
⎣1⎦ ⎣ 0 0 0 1⎦⎣ 1 ⎦
yc xc
Yc
yc xc
Xc
y3
y2 zc zc
x3 C Zc
y3 C
x3
z3
z2 O
z3
O
x2 θ φ
θ φ Repère direct
x glTranslate*(…);
y Matrice Matrice de ViewPort
z ModelView Projection
glRotate*(…);
w glScale*();
Repère
Repère Repère écran Repère …
observateur
objet fenêtre Capacité de mémorisation : gestion d’une pile
Affiche le point X’ = ModelView X
glPushMatrix (…)
glPopMatrix (…)
Équivaut à un seul repère : repère observateur
glLoadMatrix (…)
…
Les transformations de déplacement de scène et de
Produit de matrice à droite
positionnement de l’observateur sont combinées et stockées dans
la même matrice
Chap 4 6
LO12
Chap 4 7
LO12
écran
Chap 4 8
LO12
position de l'objet
Plan de projection position du centre entre l'objet et le plan de projection
Plan de projection
Centre de projection
position de l'écran
Plan de projection
Plan de projection
Centre de projection
Centre de projection
Centre de projection
Plan de projection
plan de projection
centre rejeté à l’infini
plan de projection (perpendiculaire à l’axe de visée de
l’observateur : Z ou -Z)
yo
P’(xe,ye) P(xo,yo,zo)
observateur
zo
xo
écran
Chap 4 9
LO12
x
y Matrice Matrice de ViewPort
z ModelView Projection
w
Repère Repère écran
Repère Repère
observateur
objet fenêtre
parallèle
Projection perspective
glFrustum(…);
gluPerspective(…);
…
Projection orthogonale
glOrtho (…)
Chap 4 10