Download - OpenGL - Révisions. Repères z y x x z y Repère du monde Repère des objets (repère de modélisation)
OpenGL - Révisions
Repères
z
y
xx
z
y
Repère du monde
Repère des objets(repère de modélisation)
Matrices de transformations
z
y
x
glBegin(GL_TRIANGLES);glVertex2f(2,0);glVertex2f(4,0);glVertex2f(3,3);glEnd();x
z
y
glTranslatef(-3,0,0);
xz
y
Matrices de transformations
z
y
x
glBegin(GL_TRIANGLES);glVertex2f(2,0);glVertex2f(4,0);glVertex2f(3,3);glEnd();
glTranslatef(-3,0,0);
xz
y
Matrices de transformations
z
y
x
glBegin(GL_POLYGONE);glVertex2f(0,0);glVertex2f(2,0);glVertex2f(2,2);glVertex2f(0,2);glEnd();
xz
y
z
y
xx
z
y
z
y
x
1. Rotation autour de yz
y
x
2. Translation en x
Matrices de transformations
Vue du repère du monde
z
y
xx
z
y
z
y
x
1. Translation en xz
y
x
2. Rotation autour de y
Matrices de transformations
Vue du repère du monde
z
y
xx
z
y
z
y
x
1. Rotation autour de y2. Translation en x
z
y
x
1. Translation en x2. Rotation autour de y
Matrices de transformations
Vue du repère du monde
z
y
xx
z
y
z
y
x
1. Rotation autour de yz
y
x
2. Translation en x
Matrices de transformations
Vue du repère de l’objet
z
y
xx
z
y
z
y
x
1. Rotation autour de y2. Translation en x
z
y
x
1. Translation en x2. Rotation autour de y
Matrices de transformations
Vue du repère de l’objet
z
y
xx
z
y
z
y
x
1. Rotation autour de y2. Translation en x
z
y
x
1. Translation en x2. Rotation autour de y
Matrices de transformations
Vue du repère du monde
Matrices de transformations
z
y
x
glBegin(GL_POLYGONE);glVertex2f(0,0);glVertex2f(2,0);glVertex2f(2,2);glVertex2f(0,2);glEnd();
xz
y
glTranslatef(-3,0,0);glRotatef(1,0,45,0);
Matrices de transformations
• POT – chapitre 2, concept 1.2, 1.7, 1.8 et 1.9Repère relatif à l’objet
- transformations dans l’ordre de leur déclaration
Repère du monde- transformations dans l’ordre inverse de leur
déclaration
Matrices de transformations
z
y
x
glBegin(GL_POLYGONE);glVertex2f(0,0);glVertex2f(2,0);glVertex2f(2,2);glVertex2f(0,2);glEnd();
xz
y
glTranslatef(-3,0,0);
x’z’
y’
Matrices de transformations
z
y
x
glBegin(GL_POLYGONE);glVertex2f(0,0);glVertex2f(2,0);glVertex2f(2,2);glVertex2f(0,2);glEnd();
glTranslatef(-3,0,0);glRotatef(1,0,45,0);
x’
z’
y’
Pile de matrices
glPushMatrix() : recopie la matrice courante au sommet de la pile
sauvegarde du contexte courant
glPopMatrix() : supprime la matrice au sommet de la pile
restauration du contexte précédent
Pile de matrices
Exemple du playmobil
void dessineCorps(){ glBegin(GL_POLYGON); glVertex2f(-1,0); glVertex2f( 1,0); glVertex2f( 1,3); glVertex2f(-1,3); glEnd();}
Pile de matrices
Exemple du playmobil
void dessineJambe(){ glBegin(GL_POLYGON); glVertex2f( 0 ,0); glVertex2f(0.5,0); glVertex2f( 0 ,2); glVertex2f(0.5,2); glEnd();}
Pile de matrices
Exemple du playmobil
dessineCorps();Déplace le repère objet en (0.5,-2)dessineJambe();Déplace le repère objet en (-1,-2)dessineJambe();
Pile de matrices
Exemple du playmobil
dessineCorps();Déplace le repère objet en (0,-2)
Pile de matrices
Exemple du playmobil
dessineCorps();Déplace le repère objet en (0,-2)
Sauvegarde le contexte
Pile de matrices
Exemple du playmobil
dessineCorps();Déplace le repère objet en (0,-2)
Sauvegarde le contexteDécale le repère à droitedessineJambe();
Pile de matrices
Exemple du playmobil
dessineCorps();Déplace le repère objet en (0,-2)
Sauvegarde le contexteDécale le repère à droitedessineJambe();Restaure le contexte
Pile de matrices
Exemple du playmobil
dessineCorps();Déplace le repère objet en (0,-2)
Sauvegarde le contexteDécale le repère à droitedessineJambe();Restaure le contexte
Sauvegarde le contexte
Pile de matrices
Exemple du playmobil
dessineCorps();Déplace le repère objet en (0,-2)
Sauvegarde le contexteDécale le repère à droitedessineJambe();Restaure le contexte
Sauvegarde le contexteDécale le repère à gauche dessineJambe();Restaure le contexte
Pile de matrices
Exemple du playmobil
dessineCorps();glTranslate2f(0,-2);
glPushMatrix();glTranslate2f(0.5,0);dessineJambe();glPopMatrix();
glPushMatrix();glTranslate2f(-1,0);dessineJambe();glPopMatrix();