OpenGL - Révisions. Repères z y x x z y Repère du monde Repère des objets (repère de...

26
OpenGL - Révisions

Transcript of OpenGL - Révisions. Repères z y x x z y Repère du monde Repère des objets (repère de...

Page 1: 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

Page 2: OpenGL - Révisions. Repères z y x x z y Repère du monde Repère des objets (repère de modélisation)

Repères

z

y

xx

z

y

Repère du monde

Repère des objets(repère de modélisation)

Page 3: OpenGL - Révisions. Repères z y x x 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

Page 4: OpenGL - Révisions. Repères z y x x 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();

glTranslatef(-3,0,0);

xz

y

Page 5: OpenGL - Révisions. Repères z y x x z y Repère du monde Repère des objets (repère de modélisation)

Matrices de transformations

z

y

x

glBegin(GL_POLYGONE);glVertex2f(0,0);glVertex2f(2,0);glVertex2f(2,2);glVertex2f(0,2);glEnd();

xz

y

Page 6: OpenGL - Révisions. Repères z y x x z y Repère du monde Repère des objets (repère de modélisation)

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

Page 7: OpenGL - Révisions. Repères z y x x z y Repère du monde Repère des objets (repère de modélisation)

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

Page 8: OpenGL - Révisions. Repères z y x x z y Repère du monde Repère des objets (repère de modélisation)

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

Page 9: OpenGL - Révisions. Repères z y x x z y Repère du monde Repère des objets (repère de modélisation)

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

Page 10: OpenGL - Révisions. Repères z y x x z y Repère du monde Repère des objets (repère de modélisation)

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

Page 11: OpenGL - Révisions. Repères z y x x z y Repère du monde Repère des objets (repère de modélisation)

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

Page 12: OpenGL - Révisions. Repères z y x x z y Repère du monde Repère des objets (repère de modélisation)

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);

Page 13: OpenGL - Révisions. Repères z y x x z y Repère du monde Repère des objets (repère de modélisation)

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

Page 14: OpenGL - Révisions. Repères z y x x z y Repère du monde Repère des objets (repère de modélisation)

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’

Page 15: OpenGL - Révisions. Repères z y x x z y Repère du monde Repère des objets (repère de modélisation)

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’

Page 16: OpenGL - Révisions. Repères z y x x z y Repère du monde Repère des objets (repère de modélisation)

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

Page 17: OpenGL - Révisions. Repères z y x x z y Repère du monde Repère des objets (repère de modélisation)

Pile de matrices

Exemple du playmobil

void dessineCorps(){ glBegin(GL_POLYGON); glVertex2f(-1,0); glVertex2f( 1,0); glVertex2f( 1,3); glVertex2f(-1,3); glEnd();}

Page 18: OpenGL - Révisions. Repères z y x x z y Repère du monde Repère des objets (repère de modélisation)

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();}

Page 19: OpenGL - Révisions. Repères z y x x z y Repère du monde Repère des objets (repère de modélisation)

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();

Page 20: OpenGL - Révisions. Repères z y x x z y Repère du monde Repère des objets (repère de modélisation)

Pile de matrices

Exemple du playmobil

dessineCorps();Déplace le repère objet en (0,-2)

Page 21: OpenGL - Révisions. Repères z y x x z y Repère du monde Repère des objets (repère de modélisation)

Pile de matrices

Exemple du playmobil

dessineCorps();Déplace le repère objet en (0,-2)

Sauvegarde le contexte

Page 22: OpenGL - Révisions. Repères z y x x z y Repère du monde Repère des objets (repère de modélisation)

Pile de matrices

Exemple du playmobil

dessineCorps();Déplace le repère objet en (0,-2)

Sauvegarde le contexteDécale le repère à droitedessineJambe();

Page 23: OpenGL - Révisions. Repères z y x x z y Repère du monde Repère des objets (repère de modélisation)

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

Page 24: OpenGL - Révisions. Repères z y x x z y Repère du monde Repère des objets (repère de modélisation)

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

Page 25: OpenGL - Révisions. Repères z y x x z y Repère du monde Repère des objets (repère de modélisation)

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

Page 26: OpenGL - Révisions. Repères z y x x z y Repère du monde Repère des objets (repère de modélisation)

Pile de matrices

Exemple du playmobil

dessineCorps();glTranslate2f(0,-2);

glPushMatrix();glTranslate2f(0.5,0);dessineJambe();glPopMatrix();

glPushMatrix();glTranslate2f(-1,0);dessineJambe();glPopMatrix();