Transformations ponctuelles des objets

Slides:



Advertisements
Présentations similaires
Chaîne de Synthèse Réel Modélisation Rendu Image Fichier Scène
Advertisements

Résistance des Matériaux
Symétrie, groupes ponctuels et groupes spatiaux
Gestion de portefeuille
VII) Formalisme Quantique
Unité #1 Analyse numérique matricielle Giansalvo EXIN Cirrincione.
CHAPITRE II Caractéristiques géométriques des sections planes
Système formel Nous avons introduit : signes de variables (x, y, z, …), de constantes (0, 1), d’opérations (+, ), de relations (=, ) Axiomes : ce sont.
INTRODUCTION.
variable aléatoire Discrète
Continuité Introduction Continuité Théorème des valeurs intermédiaires
Angles et distances dans R2
Géométrie vectorielle
Chapitre 4 Symétrie centrale.
Produit vectoriel Montage préparé par : André Ross
Transformations Montage préparé par : S André Ross
IFT3730: Infographie 3D Transformations Géométriques
Concepts avancés en mathématiques et informatique appliquées
Transformations de visualisation en OpenGL
Algèbre vectorielle Montage préparé par : André Ross
Rappel... Opérations élémentaires sur les matrices:
Modèles de Leontieff Montage préparé par : André Ross
Lignes trigonométriques.
Chapitre 3bis Applications linéaires et Matrices
SUJETS SPÉCIAUX EN INFORMATIQUE I PIF Contenu du cours Transformations géométriques des objets –Transformations 2D –Transformations entre systèmes.
Rappel... Solution itérative de systèmes linéaires (suite et fin).
La droite dans R2 Montage préparé par : André Ross
Espaces vectoriels Montage préparé par : S André Ross
Vers la dimension 3. La géométrie dans l'espace ne fait qu'étendre les concepts qui vous sont familiers en dimension 2 à la dimension 3. Le plus difficile.
Mais en mathématiques, qu'est ce qu'une ligne de niveau?
Transformation linéaires
Modélisation géométrique à l’aide d’un maillage
Transformations de corps rigides
Courbes de Hermite Michael E. Mortenson, Geometric Modeling. Wiley, 1997, 523p.
Courbes de Bézier.
Visualisation de surfaces décrites analytiquement
OBJETS ÉLÉMENTAIRES DANS L’ESPACE À TROIS DIMENSIONS
Théorie fractale Introduction à la géométrie fractale
6.1 LE LANGAGE MATRICIEL Cours 16. Aujourdhui, nous allons voir La définition dune matrice Plusieurs définitions de matrice particulière La somme de matrices.
Chapitre 3 La cinématique à une dimension
Technique de points de contrôle: Formes de Bézier
Rappel... Matrices bloc. Décomposition des matrices:
IFT3355: Infographie Transformations Géométriques
Primitives Montage préparé par : André Ross
Transformations linéaires et sous-espaces associés
Sous-espaces vectoriels engendrés
Modélisation géométrique de base
Physique mécanique (NYA)
Modélisation avec des solides facette arête sommet Solides paramétriques.
Transformations visuelles des objets
Géométrie épipolaire (deux vues)
Itérations de fonctions non linéaires
Rappel... Valeurs propres et vecteurs propres. Définitions;
Cours de mathématiques économiques
INTRODUCTION.
Electrostatique- Chap.2 CHAPITRE 2 CHAMP ELECTROSTATIQUE Objectif :
Programmation linéaire en nombres entiers
GRAPHISME PAR ORDINATEUR
L’étude du mouvement.
CHAPITRE III Calcul vectoriel
OUTILS MATHEMATIQUES POUR LES SII
Chapitre 3: Translation et Vecteurs
Éléments cinétiques des système matériels
2. Méthode du simplexe et son analyse.
GRAPHISME PAR ORDINATEUR
OBJETS ÉLÉMENTAIRES DANS L’ESPACE À TROIS DIMENSIONS
QUATERNION Arithmétique des quaternions
Géométrie et communication graphique
Pierre Joli Cours de Mathématique Pierre Joli
LES POSTULATS DE LA MÉCANIQUE QUANTIQUE
Transcription de la présentation:

Transformations ponctuelles des objets 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 plutôt qu’en coordonnées du dispositif d’affichage. Effectue donc le passage du système de coordonnées de l’utilisateur à celui de l’écran de sorte qu’une partie de l’univers utilisateur soit affichée sur une partie de l’écran. Transformations ponctuelles 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, parfois avec plusieurs niveaux de décomposition. Les sous-objets sont définis par rapport à leur propre repère. Ils sont ensuite instanciés dans le repère de l’objet nécessitant des transformations. Chapitre VI - Transformations ponctuelles des objets

Transformations ponctuelles d’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 Introduction Transformations 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

Chapitre VI - Transformations ponctuelles des objets INTRODUCTION 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 et de 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 ces transformations aux objets d'une scène. Elles sont représentées de manière compacte et uniforme sous forme matricielle. Plusieurs transformations appliquées aux objets 3D peuvent être représentées simplement comme une suite de transformations de base. Chapitre VI - Transformations ponctuelles des objets

TRANSFORMATIONS DE BASE ET LEURS REPRÉSENTATIONS MATRICIELLES Mathématiquement, la transformation d'un objet géométrique consiste à appliquer cette 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; par contre, nous pouvons appliquer une transformation de base uniquement aux deux extrémités du segment de droite en question pour obtenir le segment transformé. Exemple Chapitre VI - Transformations ponctuelles des objets

Chapitre VI - Transformations ponctuelles des objets TRANSLATION Soient V = (vx, vy, vz), t = (tx, ty, tz), une première transformation est la translation selon un vecteur t: Tt : V  V + t. TRANSLATION D’UNE COURBE SELON UN VECTEUR t. Chapitre VI - Transformations ponctuelles des objets

Chapitre VI - Transformations ponctuelles des objets CHANGEMENT 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 Chapitre VI - Transformations ponctuelles des objets

Chapitre VI - Transformations ponctuelles des objets ROTATION Transformation de rotation d'un angle g autour de l'axe des z. RZg : V  (vx cos g - vy sin g, vx sin g + vy cos g, vz). Transformation de rotation d'un angle b autour de l'axe des x. RXb : V  (vx, vy cos b - vz sin b, vy sin b + vz cos b). Transformation de rotation d'un angle a autour de l'axe des y. RYa : V  (vx cos a + vz sin a, vy, vz cos a - vx sin a). Chapitre VI - Transformations ponctuelles des objets

Chapitre VI - Transformations ponctuelles des objets ROTATION y (x, y) Nous avons :  (x'2 + y'2) = (x2 + y2)  (x', y') sin  = y /  (x2 + y2) cos  = x /  (x2 + y2)   On peut alors calculer y' : x sin ( + ) z y' =  (x2 + y2) y' =  (x2 + y2) (sin  cos  + cos  sin )) y' =  (x2 + y2) ( y cos  + x sin )) = y cos  + x sin   (x2 + y2)  (x2 + y2) Chapitre VI - Transformations ponctuelles des objets

REPRÉSENTATION SOUS FORME MATRICIELLE DES TRANSFORMATIONS DE BASE V' = diag(ex, ey, ez ) V V' = cos g -sin g 0 V sin g cos g 0 0 0 1 V' = 1 0 0 V 0 cos b -sin b 0 sin b cos b V' = cos a 0 sin a V 0 1 0 -sin a 0 cos a changement d’échelle rotation Chapitre VI - Transformations ponctuelles des objets

COORDONNÉ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/l, y/l, z/l, w/l) représentent le même point et si l = 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 allons normaliser ces points homogènes 4D; ils auront la forme suivante: (x, y, z, 1). Chapitre VI - Transformations ponctuelles des objets

Matrices de transformation Translation : Tt (V') = 1 0 0 tx V 0 1 0 ty 1 0 0 1 tz 0 0 0 1 Changement d’échelle : Ee (V') = ex 0 0 0 V 0 ey 0 0 1 0 0 ez 0 Chapitre VI - Transformations ponctuelles des objets

Matrices de transformation Rotation : RZg (V') = cos g -sin g 0 0 V sin g cos g 0 0 1 0 0 1 0 0 0 0 1 RXb (V') = 1 0 0 0 V 0 cos b -sin b 0 1 0 sin b cos b 0 RYa (V') = cos a 0 sin a 0 V 0 1 0 0 1 -sin a 0 cos a 0 Chapitre VI - Transformations ponctuelles des objets

Matrice de transformation quelconque Soit une matrice de transformation quelconque M exprimée comme suit: M (V') = m11 m12 m13 tx V m21 m22 m23 ty 1 m31 m32 m33 tz 0 0 0 1 considérons la sous-matrice 3 x 3 supérieure gauche de M où chaque ligne est vue comme 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 les angles et les longueurs. Chapitre VI - Transformations ponctuelles des objets

Matrice de transformation quelconque Une suite plus ou moins longue de translations et/ou de rotations satisfait ces conditions. 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 ou composition 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 gauche désigne les effets combinés des transformations de rotation et de changement d'échelle tandis que le vecteur (tx, ty, tz) désigne les effets combinés des transformations de translation. Exemple : Chapitre VI - Transformations ponctuelles des objets

Inverse des transformations affines Les transformations affines sont inversibles: T-1t = T-t E-1e = E(1/ex, 1/ey, 1/ez) R-1Xb = RX-b R-1Ya = RY-a R-1Zg = RZ-g. Chapitre VI - Transformations ponctuelles des objets

Composition de transformations Elle consiste à définir une transformation affine i.e., une suite de transformations de base à 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 u, la transformation RDq est décomposée comme suit: i) faire coïncider la droite D avec l'axe des Z; ii) rotation d'un angle q autour de l'axe des Z; iii) se ramener à l'emplacement original de la droite. Transformation RDq de rotation d'un angle q autour d'une droite quelconque D. EXEMPLE : Chapitre VI - Transformations ponctuelles des objets

Chapitre VI - Transformations ponctuelles des objets Transformation RDq (0, uy, uz) Faire coïncider la droite D avec l'axe des Z Cette transformation affine est obtenue ainsi: - une translation de -P: T-P, - une rotation d'un angle b autour de l'axe des X: RXb cos b = uz / ||(0, uy, uz)|| sin b = uy / ||(0, uy, uz)|| où (0, uy, uz) = ProjYZu. (ux, 0, ||(0, uy, uz)||) - une rotation d'un angle a autour de l'axe des Y: RYa cos a = ||(0, uy, uz)|| sin a = -ux. Chapitre VI - Transformations ponctuelles des objets

Transformation RDq Nous avons alors: RDq = TP RX-b RY-a RZq RYa RXb T-P Chapitre VI - Transformations ponctuelles des objets

Transformations 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

où N est la normale unitaire, Q est un point du plan Symétrie par rapport au plan p d'équation N*P = k, où N est la normale unitaire, Q est un point du plan Pour calculer Sp , nous devons procéder par les étapes suivantes: - translation de -Q afin de faire passer le plan p par l'origine; - Faire coïncider le plan p 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 p à son emplacement d'origine; ceci nous donne l'expression suivante pour Sp: Sp = TQ RX-b RY-a SXY RYa RXb T-Q. où a et b sont déterminés comme précédemment. Chapitre VI - Transformations ponctuelles des objets

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

Chapitre VI - Transformations ponctuelles des objets Passage de la fenêtre à un «viewport» Dans la plupart des systèmes graphiques, l'utilisateur peut spécifier les coordonnées des 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, un changement 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 à faire passer chaque objet de la scène de la “fenêtre” au “viewport”. Chapitre VI - Transformations ponctuelles des objets

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) et le coin supérieur droit est (xmax, ymax), un “viewport” rectangulaire 2D dont le coin inférieur gauche est (umin, vmin) et le coin supérieur droit est (umax, vmax), la matrice de transformation s'exprime comme suit: Tfenêtre  viewport = T(umin, vmin,0) E(Du/Dx, Dv/Dy, 1) T(-xmin, -ymin,0) où Du = umax - umin, Dv = vmax - vmin, Dx = xmax - xmin et Dy = ymax - ymin. Chapitre VI - Transformations ponctuelles des objets

Passage de la fenêtre à un «viewport» TRANSFORMATIONS Chapitre VI - Transformations ponctuelles des objets

Généralisation des concepts de fenêtre et de «viewport» Fenêtre et viewport avec des arêtes non parallèles aux axes X et Y. Fenêtre et viewport non rectangulaires Fenêtre 3D et viewport 3D Multi-fenêtrage Chapitre VI - Transformations ponctuelles des objets

Chapitre VI - Transformations ponctuelles des objets Cisaillement 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 1 gzx gzy 1 0 0 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

Changement de systèmes de coordonné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ées avant et après la transformation. Une autre façon équivalente de considérer ce problème est de voir une transformation sur 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 des repères différents; par conséquent, cela permet de transformer une composante spécifique d’un objet sans altérer les autres parties de l'objet. Chapitre VI - Transformations ponctuelles des objets

Chapitre VI - Transformations ponctuelles des objets Répétition d’objets Nous pouvons vouloir aussi utiliser plusieurs fois dans une scène un même objet ou sous-objet. Deux approches de la répétition sont possibles : La copie conduit à la duplication de toute la structure de données représentant ce sous-objet ou objet. Si le sous-objet ou objet doit être modifié, il faudra alors modifier l'une après l'autre chacune des copies. Une façon plus économique de représenter l'élément consiste à procéder par instanciation i.e., ne dupliquer que la matrice de transformation généralisée correspondante, 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 simplement accédée via des pointeurs. Chapitre VI - Transformations ponctuelles des objets

Changement de systèmes de coordonnées Matrice de transformation Soit Mi  j une transformation permettant de passer du système de coordonnées j au 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'inverse de cette même transformation lorsque nous voulons plutôt modifier le repère de l'objet. Chapitre VI - Transformations ponctuelles des objets

Changement de systèmes de coordonnées Matrice de transformation Considérons maintenant Q(j) la transformation à appliquer à un point dans le système de coordonnées j; nous voulons déterminer la transformation Q(i) dans le système de coordonnées i à appliquer à P(i) aboutissant au même résultat que celui d'appliquer la transformation 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-1i  j . Chapitre VI - Transformations ponctuelles des objets FIN