870 likes | 1.07k Views
SUJETS SPÉCIAUX EN INFORMATIQUE I. PIF-6003. Contenu du cours. Transformations géométriques des objets Transformations 2D Transformations entre systèmes de coordonnées Transformations 3D Utilisation des transformations dans un programme
E N D
SUJETS SPÉCIAUX EN INFORMATIQUE I PIF-6003
Contenu du cours • Transformations géométriques des objets • Transformations 2D • Transformations entre systèmes de coordonnées • Transformations 3D • Utilisation des transformations dans un programme • Introduction au processus de visualisation avec OpenGL
Contenu du cours • Transformations géométriques des objets
Transformations géométriques 2D de base • Translation • La translation d’un point 2D s’effectue par l’addition des distances de décalage tx et ty aux coordonnées d’origine du point (x,y) permettant son déplacement à la position (x’,y’)
Transformations géométriques 2D de base • Translation • Sous forme matricielle
Transformations géométriques 2D de base • Rotation • Une rotation est appliquée sur un objet en le déplaçant selon une trajectoire circulaire • Nous devons spécifier un angle de rotation () et la position (xr,yr) du pivot • SI (xr=0,yr=0)
Transformations géométriques 2D de base • Rotation
Transformations géométriques 2D de base • Rotation • Sous forme matricielle avec
Transformations géométriques 2D de base • Rotation • Par rapport à un pivot TRANSLATION Rotation suivi d’une translation
Transformations géométriques 2D de base • Rotation • Par rapport à un pivot 1) Translation T(-xr,-yr) 2) Rotation d’un angle 3) Translation T(xr,yr)
Transformations géométriques 2D de base • Changement d’échelle (scaling) • Changement des dimensions d’un objet
Transformations géométriques 2D de base • Changement d’échelle (scaling) • Sous forme matricielle
Transformations géométriques 2D de base • Changement d’échelle (scaling) • Par rapport à un point de référence Scaling suivi d’une translation
Transformations géométriques 2D de base • Shearing • Déformation d ’un objet par rapport à un axe donné Direction x Direction y
Transformations géométriques 2D de base • Shearing • Sous forme matricielle (Direction x)
Transformations multiples (composite) • Représentation matricielle et coordonnées homogènes • Dans plusieurs applications en graphisme des séquences de transformations graphiques doivent être générées • Les représentations matricielles servent de base pour modéliser de façon efficace ces séquences de transformations • Les transformations de base peuvent s’écrire Où M1 est une matrice 2X2 et M2 une matrice 2X1
Transformations multiples (composite) • Divers cas • Translation: • M1: matrice identité • M2: terme translationnel • Rotation: • M1: matrice de rotation • M2: terme translationnel (pivot) • Scaling: • M1: matrice des changements d’échelle • M2: terme translationnel (point de référence)
Transformations multiples (composite) • Une séquence de transformations S-R-T s’effectue: • scaling des coordonnées des objets • rotation des coordonnées transformées (après scaling) • translation des coordonnées (après rotation) • La combinaison de ces transformations permet d’améliorer l’efficacité en éliminant le terme additif M2
Transformations multiples (composite) • Pour combiner les termes multiplicatifs et translationnels il faut utiliser une forme matricielle M1de 3X3 • Dans ce contexte nous pouvons représenter toutes les transformations sous forme de multiplication matricielle • Il faut par contre modifier la représenta-tion matricielle des coordonnées des points constituant nos objets
Transformations multiples (composite) • Les coordonnées cartésiennes (x, y) sont alors représentées sous forme homogène (xh, yh, h) ou x=xh/h et y=yh/h • Alors une représentation en coordonnées homogènes généralisée peut aussi être déduite sous la forme (h x, h y, h) • Nous choisissons par simplicité h=1, chaque position est alors représentée en coordonnées homogènes par (x, y, 1)
Transformations multiples (composite) • Translation • Rotation
Transformations multiples (composite) • Scaling
Transformations multiples (composite) • Shearing Direction x: SH(shx=0,shy) Direction y: SH(shx,shy=0)
Transformations multiples (composite) • Sachant que la multiplication matricielle est associative, les transformations successives sont alors représentées par une matrice 3X3 découlant de la concaténation des matrices individuelles • 2 translations successives (tx1,ty1), (tx2,ty2)
Transformations multiples (composite) • Cette transformation s’écrit
Transformations multiples (composite) • 2 rotations
Transformations multiples (composite) • 2 scaling
Transformations multiples (composite) • Rotation par rapport à un pivot
Transformations multiples (composite) • Matrice des transformations
Transformations multiples (composite) • Scaling avec un point de référence
Transformations multiples (composite) • Matrice des transformations
Transformations multiples (composite) • Forme générale • Complexité 4 X et + VS 9 X 6 +
Transformations multiples (composite) • Par exemple, si un objet doit subir un changement d’échelle et une rotation par rapport au point (xc, yc) et par la suite une translation, la matrice composite devient
Transformations multiples (composite) • Transformations entre systèmes de coordonnées • Un objet quelconque peut être défini dans un système de coordonnées cartésien du monde (ex: scène du monde) mais les coordonnées du monde doivent être transformées au préalable pour permettre le positionnement de cet objet par rapport au système de coordonnées de l’écran avant son affichage
Transformations multiples (composite) • Transformations entre systèmes de coordonnées • Pour transformer la description d’un objet d’un système de coordonnées x y à x’y’ nous devons effectuer une transformation qui doit permettre la superposition des axes du système x’y’ sur ceux du système xy • Translation T(-x0, -y0) • R(-)
Transformations multiples (composite) • Transformations entre systèmes de coordonnées
Transformations multiples (composite) • Transformations entre systèmes de coordonnées
Visualisation 2D (Rappel) • Une surface dans le système de coordonnées du monde sélectionnée pour l’affichage est appelée une fenêtre. Une surface sur un écran sur laquelle est projetée la fenêtre est un port de visualisation (viewport)
Visualisation 2D • Les transformations de visualisations
Visualisation 2D • Le passage des WC au VC
Visualisation 2D • WC -> VC
Visualisation 2D • VC -> NVC
Visualisation 2D • VC -> NVC • Pour maintenir les mêmes positions relatives dans les deux représentations nous devons savoir v: viewport w: window
Visualisation 2D • VC -> NVC • Maintien des positions relatives
Visualisation 2D • VC -> NVC • Nous pouvons alors déduire (xv,yv) par
Visualisation 2D • VC -> NVC • Séquences de transformations correspondantes • Scaling avec comme point de référence (xwmin,ywmin) (fenêtre) • Translation à la position du viewport (xvmin,yvmin)
Transformations géométriques 3D de base • Translation • La translation d’un point 3D s’effectue par l’addition des distances de décalage tx, ty et tz aux coordonnées d’origine du point (x,y,z) permettant son déplacement à la position (x’,y’,z’)
Transformations géométriques 3D de base • Translation • Sous forme matricielle (coordonnées homogènes)
Transformations géométriques 3D de base • Translation • La translation d’un objet 3D revient à déplacer les points de l’objet. Pour un objet 3D représenté par un ensemble de surfaces polygonales, la translation est appliquée sur les sommets. Ensuite, l’objet est retracé
Transformations géométriques 3D de base • Translation d’un objet 3D