chapitre vi
DESCRIPTION
Chapitre VI. Transformations ponctuelles des objets. Transformations d’objets. Les transformations permettent de manipuler les objets. Transformations de visualisation. Permet à l’utilisateur de travailler dans le système de coordonnées de son choix - PowerPoint PPT PresentationTRANSCRIPT
Chapitre VIChapitre VI
Transformations ponctuelles des objets
Chapitre VI - Transformations ponctuelles des objets
2
Transformations d’objetsTransformations d’objets
Les transformations permettent de manipuler les objets.
Transformations de visualisation
Transformations ponctuelles
Permet à l’utilisateur de travailler dans le système de coordonnées de son choixplutôt qu’en coordonnées du dispositif d’affichage.Effectue donc le passage du système de coordonnées de l’utilisateur à celui del’écran de sorte qu’une partie de l’univers utilisateur soit affichée sur une partiede l’écran.
Essentielles à la modélisation: pour bien observer un objet, il est souvent néces-saire de pouvoir l’agrandir et le faire tourner, ou de changer de point de vue.Les objets complexes sont construits à partir de sous-objets plus simples, parfoisavec plusieurs niveaux de décomposition.Les sous-objets sont définis par rapport à leur propre repère. Ils sont ensuiteinstanciés dans le repère de l’objet nécessitant des transformations.
Chapitre VI - Transformations ponctuelles des objets
3
Transformations ponctuelles Transformations ponctuelles d’objetsd’objets
OBJECTIFS
Décrire les transformations de base et leurs représentations matricielles.Construire une transformation affine par composition de transformations.
Mesurer l’impact des opérateurs de transformation en modélisation.
PLAN DU CHAPITRE
IntroductionTransformations de base et leurs représentations matricielles
Composition de transformations
Transformations usuelles
Changement de systèmes de coordonnées
Chapitre VI - Transformations ponctuelles des objets
4
INTRODUCTIONINTRODUCTION
Considérons les transformations géométriques de base dans l'espace à 3 dimensions:
la translation, la rotation et le changement d'échelle.
Elles permettront non seulement :de positionner un objet dans l'espace 3D, de l'orienter dans une direction etde fixer la dimension de l'objet mais, aussi,de définir le repère de chaque objet d'une scène
ou le repère des différentes composantes d'un objet complexe.La plupart des packages graphiques possèdent des outils permettant d'appliquer cestransformations aux objets d'une scène. Elles sont représentées de manière compacteet uniforme sous forme matricielle.
Plusieurs transformations appliquées aux objets 3D peuvent être représentéessimplement comme une suite de transformations de base.
Chapitre VI - Transformations ponctuelles des objets
5
TRANSFORMATIONS DE BASE ET LEURS TRANSFORMATIONS DE BASE ET LEURS REPRÉSENTATIONS MATRICIELLESREPRÉSENTATIONS MATRICIELLES
Mathématiquement, la transformation d'un objet géométrique consiste à appliquercette transformation à l'ensemble des points appartenant à l'objet.
Heureusement, il n'est pas nécessaire habituellement d'appliquer cette transformationà l'ensemble des points de cardinalité infinie qui constituent l'objet.
Un nombre fini de points caractérisent complètement l'objet.
Un segment de droite de longueur non nulle possède un nombre infini de points; parcontre, nous pouvons appliquer une transformation de base uniquement aux deuxextrémités du segment de droite en question pour obtenir le segment transformé.
Exemple
Chapitre VI - Transformations ponctuelles des objets
6
TRANSLATIONTRANSLATION
Soient V = (vx, vy, vz), t = (tx, ty, tz), une première transformation est latranslation selon un vecteur t: Tt : V V + t.
V
V+ t
t
TRANSLATION D’UNE COURBE SELON UN VECTEUR t.
Chapitre VI - Transformations ponctuelles des objets
7
CHANGEMENT D’ÉCHELLECHANGEMENT D’ÉCHELLE
Une deuxième transformation de base est la transformation d'échelle d'un vecteur V selon un vecteur e = (ex, ey, ez): Ee : V (ex vx, ey vy, ez vz).
CHANGEMENT D’ÉCHELLE EFFECTUÉ SUR UNE COURBE
x
y
z
la même courbe après un changement d'échelle
Chapitre VI - Transformations ponctuelles des objets
8
ROTATIONROTATION
Transformation de rotation d'un angle autour de l'axe des z.
RZ : V (vx cos -vy sin , vx sin +vy cos , vz).
Transformation de rotation d'un angle autour de l'axe des x.
RX : V (vx, vy cos -vz sin , vy sin +vz cos ).
Transformation de rotation d'un angle autour de l'axe des y.
RY : V (vx cos +vz sin , vy, vz cos -vx sin ).
Chapitre VI - Transformations ponctuelles des objets
9
ROTATIONROTATION
(x, y)
(x', y')
x
y
z
Nous avons :
(x'2 + y'2) = (x2 + y2)
sin = y / (x2 + y2)
cos = x / (x2 + y2)
On peut alors calculer y' :
y' = (x2 + y2) sin ( + )
y' = (x2 + y2) (sin cos + cos sin ))
y' = (x2 + y2) ( y cos + x sin ))
(x2 + y2) (x2 + y2)
= y cos + x sin
Chapitre VI - Transformations ponctuelles des objets
10
REPRÉSENTATION SOUS FORME MATRICIELLE DES REPRÉSENTATION SOUS FORME MATRICIELLE DES TRANSFORMATIONS DE BASETRANSFORMATIONS DE BASE
V' = diag(ex, ey, ez ) V
V' = cos -sin 0 Vsin cos 00 0 1
V' = 1 0 0 V0 cos sin 0 sin cos
V' = cos sin V0 1-sin cos
changement d’échelle
rotation
Chapitre VI - Transformations ponctuelles des objets
11
COORDONNÉES HOMOGÈNESCOORDONNÉES HOMOGÈNES
Malheureusement, la translation ne peut pas être représentée sous cette forme.En utilisant les coordonnées homogènes, toutes les transformations de base peuventêtre représentées de la même façon.En utilisant des coordonnées homogènes, on doit ajouter une quatrième coordonnée wà chaque point. Ainsi, un point est représenté par le quadruplet (x, y, z, w).
Deux quadruplets peuvent représenter le même point si l'un est un multiple de l'autre,en autant que ce point n'est pas l'origine. Par ex., (x, y, z, w) et (x/, y/, z/, w/) représentent le même point et si = w 0,(x/w, y/w, z/w) désignent les coordonnées cartésiennes du point homogène.
Ces quadruplets de points représentent des points dans l'espace à 4 dimensions. Toutefois, notre but est de représenter des points 3D. Pour ce faire, nous allonsnormaliser ces points homogènes 4D; ils auront la forme suivante: (x, y, z, 1).
Chapitre VI - Transformations ponctuelles des objets
12
Matrices de transformationMatrices de transformation
Translation :Tt (V') = 1 0 0 tx V
0 1 0 ty 10 0 1 tz
0 0 0 1
Changement d’échelle :
Ee (V') = ex 0 0 0 V
0 ey 0 0 10 0 ez 00 0 0 1
Chapitre VI - Transformations ponctuelles des objets
13
Matrices de transformationMatrices de transformation
Rotation : RZ (V') = cos -sin 0 0 V
sin cos 0 0 10 0 1 00 0 0 1
RX (V') = 1 0 0 0 V
0 cos sin 0 10 sin cos 00 0 0 1
RY (V') = cos sin 0 V
0 1 0 0 1-sin cos 00 0 0 1
Chapitre VI - Transformations ponctuelles des objets
14
Matrice de transformation Matrice de transformation quelconquequelconque
Soit une matrice de transformation quelconque M exprimée comme suit:
M (V') = m11 m12 m13 tx Vm21 m22 m23 ty 1m31 m32 m33 tz
0 0 0 1considérons la sous-matrice 3 x 3 supérieure gauche de M où chaque ligne est vuecomme un vecteur.Ces vecteurs peuvent avoir les propriétés suivantes:
i) chaque vecteur est unitaire;ii) chaque vecteur est perpendiculaire à chacun des 2 autres;iii) le déterminant de la sous-matrice est égale à 1.
En satisfaisant à ces propriétés, une transformation appliquée à un objet préserve lesangles et les longueurs.
Chapitre VI - Transformations ponctuelles des objets
15
Matrice de transformation Matrice de transformation quelconquequelconque
Une suite plus ou moins longue de translations et/ou de rotations satisfait cesconditions.
Un carré après avoir subi une rotation autour d'un axe quelconque et une translation dans l'espace 3D demeure un carré où la longueur d'une arête n'a pas changé.
Si nous considérons maintenant une suite quelconque de transformations de rotation,translation et/ou de changement d'échelle, cette suite de transformations oucomposition de transformations de base est dite “transformation affine”.
Elle est représentée à partir de la matrice M où la sous-matrice 3x3 supérieure gauchedésigne les effets combinés des transformations de rotation et de changement d'échelletandis que le vecteur (tx, ty, tz) désigne les effets combinés des transformations detranslation.
Exemple :
Chapitre VI - Transformations ponctuelles des objets
16
Inverse des transformations affinesInverse des transformations affines
Les transformations affines sont inversibles:
T-1t = T-t
E-1e = E(1/ex, 1/ey, 1/ez)
R-1X
= RX
R-1Y RY-
R-1Z
= RZ-
Chapitre VI - Transformations ponctuelles des objets
17
Composition de transformationsComposition de transformations
Elle consiste à définir une transformation affine i.e., une suite de transformations debase à appliquer à un objet pour produire le résultat désiré.
Sachant que la droite D est représentée - par un point P et- un vecteur directeur unitaire ,
la transformation RD est décomposée comme suit:
i) faire coïncider la droite D avec l'axe des Z;ii) rotation d'un angle autour de l'axe des Z;iii) se ramener à l'emplacement original de la droite.
EXEMPLE :Transformation RD
de rotation d'un angle autour d'une droite
quelconque D.
Chapitre VI - Transformations ponctuelles des objets
18
Transformation Transformation RRDD
Faire coïncider la droite D avec l'axe des Z
cos = z / ||(0, y, z)||sin = y / ||(0, y, z)||
où (0, y, z) = ProjYZ.
Cette transformation affine est obtenue ainsi:
- une translation de -P: T-P,- une rotation d'un angle autour de l'axe des X: RX
(0, y, z)
Y
Z
X
- une rotation d'un angle autour de l'axe des Y: RY
cos = ||(0, y, z)||sin = -x.
Y
Z
X
1
(x, 0, ||(0, y, z)||)
Chapitre VI - Transformations ponctuelles des objets
19
Transformation Transformation RRDD
Nous avons alors:
RD = TP RX-
RY- RZ
RY RXT-P
Chapitre VI - Transformations ponctuelles des objets
20
Transformations usuellesTransformations usuelles
Symétrie par rapport à un des plans XY, YZ ou XZ.
SXY = E(1, 1, -1, 1)
SYZ = E(-1, 1, 1, 1)
SXZ = E(1, -1, 1, 1).
Chapitre VI - Transformations ponctuelles des objets
21
Symétrie par rapport au plan d'équation N*P = k,
où N est la normale unitaire, Q est un point du planPour calculer S , nous devons procéder par les étapes suivantes:
- translation de -Q afin de faire passer le plan par l'origine;
- Faire coïncider le plan avec le plan XY c'est-à-dire, la direction N avec l'axe des Z;
- symétrie par rapport au plan XY;
- ramener le plan à son emplacement d'origine;
ceci nous donne l'expression suivante pour S:S= TQ RX-
RY- SXY RY
RXT-Q.
où et sont déterminés comme précédemment.
Chapitre VI - Transformations ponctuelles des objets
22
Symétrie par rapport à un point Q
La symétrie d'un point P par rapport à un point Q, notée P*, est calculée comme suit:
P* = Q + (-1) (P - Q) = 2Q - P.
P* peut être exprimée comme une transformation affine:
P* = T2Q E(-1, -1, -1, 1) P.
Chapitre VI - Transformations ponctuelles des objets
23
Passage de la fenêtre à un «viewport»
Dans la plupart des systèmes graphiques, l'utilisateur peut spécifier les coordonnéesdes points d'un objet dans un système de coordonnées quelconque que lui-même définit.
Il est souvent désigné sous le vocable “système de coordonnées de l'usager”ou “système de coordonnées du monde”.
Lorsque cet objet doit être affiché sur un écran ou imprimé sur une unité de sortie, unchangement de systèmes de coordonnées doit être effectué.
Nous devons passer du système de l'usager à celui de l'écran ou de l'unité de sortie.Nous pouvons demander à l'usager de définir :
- une région rectangulaire 2D en coordonnées du monde appelée “fenêtre” et- une région rectangulaire 2D en coordonnées écran appelée “viewport”.
Le passage du système de coordonnées de l'usager à celui de l'écran consiste à fairepasser chaque objet de la scène de la “fenêtre” au “viewport”.
Chapitre VI - Transformations ponctuelles des objets
24
Passage de la fenêtre à un «viewport»Matrice de transformation
Soit une fenêtre rectangulaire 2D dont le coin inférieur gauche est (xmin, ymin) etle coin supérieur droit est (xmax, ymax),
un “viewport” rectangulaire 2D dont le coin inférieur gauche est (umin, vmin) etle coin supérieur droit est (umax, vmax),
la matrice de transformation s'exprime comme suit:
Tfenêtreviewport = T(umin, vmin,0) E(u/x, v/y, 1) T(-xmin, -ymin,0)
où u = umax - umin, v = vmax - vmin,x = xmax - xmin et y = ymax - ymin.
Chapitre VI - Transformations ponctuelles des objets
25
Passage de la fenêtre à un «viewport»
Fenêtre dans le système de coordonnées du monde
Y
X
Y
XTranslation de la fenêtre à l'origine
v
u
Mise à l'échelle de la fenêtre à partir du viewport
v
u
Translation à la position occupée par le viewport
dimension maximale du viewport
TRANSFORMATIONS
Chapitre VI - Transformations ponctuelles des objets
26
Généralisation des concepts de Généralisation des concepts de fenêtre et de «viewport»fenêtre et de «viewport»
Fenêtre et viewport avec des arêtes non parallèles aux axes X et Y.
Fenêtre 3D et viewport 3D
Fenêtre et viewport non rectangulaires
Multi-fenêtrage
Chapitre VI - Transformations ponctuelles des objets
27
CisaillementCisaillement
Le cisaillement ("shear") est une transformation qui ne conserve pas les angles,ce qui conduit à une déformation de l'image.
Nous pouvons représenter matriciellement le cisaillement comme suit:
C(gxy, gxz, gyx, gyz, gzx, gzy) (V) = 1 gxy gxz 0 V
gyx 1 gyz 0 1gzx gzy 1 00 0 0 1
ou encore, selon un des axes principaux, nous avons:° cisaillement selon x de paramètres a et b: CX(a, b, 0, 0, 0, 0), ou encore, CX(a, b),° cisaillement selon y de paramètres a et b: CY(0, 0, a, b, 0, 0), ou encore, CY(a, b),° cisaillement selon z de paramètres a et b: CZ(0, 0, 0, 0, a, b), ou encore, CZ(a, b).
Chapitre VI - Transformations ponctuelles des objets
28
Changement de systèmes de Changement de systèmes de coordonnéescoordonnées
Jusqu'à maintenant, nous nous sommes intéressés aux transformations à appliquer àl'ensemble des points faisant partie d'un objet.
Cela sous-entendait que l'objet était défini dans un même système de coordonnéesavant et après la transformation.
Une autre façon équivalente de considérer ce problème est de voir une transformationsur un objet comme étant un changement de son repère ou système de coordonnées.
Cette approche est intéressante en modélisation. Elle permet d'associer un repère àchaque objet et de modifier le repère au lieu de transformer l'objet en lui-même.
Nous pouvons aussi définir les différentes parties d'un même objet selon desrepères différents; par conséquent, cela permet de transformer une composantespécifique d’un objet sans altérer les autres parties de l'objet.
Chapitre VI - Transformations ponctuelles des objets
29
Répétition d’objetsRépétition d’objets
Nous pouvons vouloir aussi utiliser plusieurs fois dans une scène un même objet ousous-objet.
Deux approches de la répétition sont possibles :
La copie conduit à la duplication de toute la structure de donnéesreprésentant ce sous-objet ou objet.
Si le sous-objet ou objet doit être modifié, il faudra alors modifier l'uneaprès l'autre chacune des copies.
Une façon plus économique de représenter l'élément consiste à procéder parinstanciation i.e., ne dupliquer que la matrice de transformation généraliséecorrespondante, permettant d'avoir des clones de tailles différentes,orientés et positionnés séparément.La description de l'objet ou du sous-objet reste unique; elle est simplementaccédée via des pointeurs.
Chapitre VI - Transformations ponctuelles des objets
30
Changement de systèmes de coordonnéesChangement de systèmes de coordonnéesMatrice de transformationMatrice de transformation
Soit Mi j une transformation permettant de passer du système de coordonnées jau système de coordonnées i,
soit P(i) la représentation d'un point dans le système de coordonnées i,soit P(j) la représentation d'un point dans le système de coordonnées j,soit P(k) la représentation d'un point dans le système de coordonnées k,
P(i) = Mi j P(j) et P(j) = Mj k P(k)
Mi k = Mi j Mj k.
La transformation appliquée aux points appartenant à un objet correspond à l'inversede cette même transformation lorsque nous voulons plutôt modifier le repère de l'objet.
Chapitre VI - Transformations ponctuelles des objets
31
Changement de systèmes de coordonnéesChangement de systèmes de coordonnéesMatrice de transformationMatrice de transformation
Considérons maintenant Q(j) la transformation à appliquer à un point dans le systèmede coordonnées j; nous voulons déterminer la transformation Q(i) dans le système decoordonnées i à appliquer à P(i) aboutissant au même résultat que celui d'appliquer latransformation Q(j) à P(j).
Nous obtenons:Q(i) P(i) = Mi j Q(j) P(j)
Q(i) Mi j
P(j) = Mi j Q(j) P(j)
Q(i) Mi j
= Mi j Q(j)
Q(i) = Mi j Q(j) M-1
i j .FIN