Vous êtes sur la page 1sur 5

Université Mohamed Khider-Biskra

Faculté des Sciences Exactes et Sciences de la Nature et de la Vie


Département d'informatique

L3 Module: Infographie
Durée: 03 Séances. 2019/2020
TD N°03

Exercice 1

Nous avons un objet positionné au point p(-2,2,-5) dans l’espace. Nous désirons le manipuler à l’aide
d’une rotation d’un angle de 45° par rapport à l’axe des y et puis d’un changement d’échelle de facteur 2
et d’une translation d’un vecteur 𝑡(6,-3,1)

- Calculer la matrice de transformation.


- Calculer la position de l’objet transformé.
- On suppose que la procédure dessin_objet() permet de dessiner cet objet. Écrire le programme
OpenGl qui permet d’effectuer cette transformation.

Exercice 2

1
x
1

z B

Sachant que le e composant z de chaque sommet des triangles est égal à 0.

 Trouver la liste des sommets nécessaires pour modéliser le triangle A.


 Écrire un programme en OpenGl dans une procédure nommée dessinTriangle() pour dessiner le
triangle A.
 Sachant que le triangle B est le résultat d’un ensemble de transformations géométriques du
triangle A. Donner la suite des transformations géométrique qu’a subie le triangle A.
 Calculer les sommets du triangle B.
 Puis écrire un programme OpenGl qui permet de transformer le triangle A en triangle B.

1
Exercice 3

A2
A3

A1
1
A4 x
1

Sachant que le e composant z de chaque sommet des triangles est égal à 0.

 Trouver la liste des sommets nécessaires pour modéliser l’objet A.


 En utilisant les mêmes sommets de l’objet A1, écrire un programme en OpenGl qui permet de
dessiner les objets A2, A3 et A4 sans changement du repère.

Exercice 4

Nous avons le programme OpenGl suivant :


glColor3f(1,1,0);
glutSolidSphere(0.1,30,30);

glPushMatrix();
glTranslatef(-2,0,0);
glutSolidSphere(0.1,30,30);
glPopMatrix();

glColor3f(0,1,0);
glPushMatrix();
glTranslatef(2,0,0);
glutSolidSphere(0.1,30,30);
glPopMatrix();

glColor3f(1,0,0);
glPushMatrix();
glTranslatef(2,2,0);
glRotatef(90,0,0,1);
glBegin(GL_TRIANGLES);
glVertex3f(0,0,0);
glVertex3f(1,0,0);
glVertex3f(1,0.5,0);
glEnd();
glPopMatrix();

 Que fait ce programme ?


 À l'aide d’un schéma, dessiner le résultat du programme sur l’écran.
 Pour chaque transformation géométrique, donner le contenu de chaque matrice approprié ?

2
L3 Module: Infographie
Correction du TD N°03

Exercice 1

- Calculer la matrice de transformation :


Solution :

Ry =

0.71 0 0.71 0
0 1 0 0
-0.71 0 0.71 0
0 0 0 1

H=
2 0 0 0
0 2 0 0
0 0 2 0
0 0 0 1

T=
1 0 0 6
0 1 0 -3
0 0 1 1
0 0 0 1

La matrice M = Ry * H * T =

1.42 0 1.42 9.94


0 2 0 -6
-1.42 0 1.42 -7.1
0 0 0 1

- Calculer la position de l’objet transformé.


Solution :
P’=M*P

1.42 0 1.42 9.94 -2


0 2 0 -6 2 = ( -2 , -11 , 36 , 1)
-1.42 0 1.42 -7.1 -5
0 0 0 1 1

- On suppose que la procédure dessin_objet() permet de dessiner cet objet. Écrire le programme
OpenGl qui permet d’effectuer cette transformation.

Solution :
dessin_objet() ;
glRotatef(45,0,1,0) ;
glScalef(2,2,2);
1
glTranslatef(6,-3,1) ;
dessin_objet() ;

Exercice 2

 Trouver la liste des sommets nécessaires pour modéliser le triangle A.

Solution :
P1(1,2,0) ; P2(3,2,0) ; P3(2,4,0) ;

 Écrire un programme en OpenGl dans une procédure nommée dessinTriangle() pour dessiner le
triangle A.

Solution :
dessinTriangle()
{
glBegin (GL_TRIANGLES);
glVertex3f( 1 , 2 , 0);
glVertex3f( 3 , 2 , 0);
glVertex3f( 2 , 4 , 0);
glEnd();

 Sachant que le triangle B est le résultat d’un ensemble de transformations géométriques du


triangle A. Donner la suite des transformations géométrique qu’a subie le triangle A.

Solution :
Une translation t(1,-5,0) suivi d’un changement d’échelle d’un facteur ( 1 , 0.5 , 1 )

 Calculer les sommets du triangle B.

Solution :
P’=M*P
M= T * H

M=
1 0 0 1 1 0 0 0 1 0 0 1
0 1 0 -5 0 0.5 0 0 0 0.5 0 -5
0 0 1 0 0 0 1 0 = 0 0 1 0
0 0 0 1 0 0 0 1 0 0 0 1

P1’=M*P1 = ( , , ) ;
P2’=M*P2 = ( , , ) ;
P3’=M*P3 = ( , , ) ;

 Puis écrire un programme OpenGl qui permet de transformer le triangle A en triangle B.

Solution :
dessinTriangle() ;
glTranslatef( 1 , -5 , 0) ;
glScalef( 1 , 0.5 , 1);
dessinTriangle() ;

2
Exercice 3

 Trouver la liste des sommets nécessaires pour modéliser l’objet A :

S1 = ( 2 , 1 , 0); s2 = ( 4 , 1 , 0); s3 = ( 4 , 3 , 0); s4 = ( 2 , 3 , 0);

 En utilisant les mêmes sommets de l’objet A1, écrire un programme en OpenGl qui permet de
dessiner les objets A2, A3 et A4 sans changement du repère :
Solution :

/* L’objet A2 */
glPushMatrix();
glTranslatef(4,3,0);
Dessincarre();
glPopMatrix();

/* L’objet A3 */
glPushMatrix();
glTranslatef(-7,2,0);
Dessincarre();
glPopMatrix();

/* L’objet A4 */
glPushMatrix();
glTranslatef(-7,-1,0);
glScalef(1,0.5,1);
Dessincarre();
glPopMatrix();

Vous aimerez peut-être aussi