Bonjour,
Je voudrais tracer un repère XYZ composé de trois lignes mais j'ai un problème que je ne comprends pas du tout dans mon code. Si j'appelle une liste, la ligne représentant l'axe Z est colorié en dégradé de rouge à bleu, par contre en effectuant le tracé sans passer par une list cela fonctionne très bien. Voici mon code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 // Dans ma fonction Draw() ... /* essai de repère */ glPushMatrix(); glTranslated(-3,3,0); /* couleur marche */ glBegin(GL_LINES); glColor3f(1.0f,0.0f,0.0f); // Rouge glVertex2i(0,0); glVertex2i(1,0); // X glColor3f(0.0f,1.0f,0.0f); // Vert glVertex2i(0,0); glVertex2i(0,1); // Y glColor3f(0.0f,0.0f,1.0f); // Bleu glVertex2i(0,0); glVertex3i(0,0,1); // Z glEnd(); glTranslated(-5,3,0); /* couleur marche pas, Z est en dégradé de rouge à bleu */ glCallList(idRepere); glPopMatrix(); /* ------------------------------ */ ...
J'initialise la liste avant d'appeler Draw avec la fonction suivante :
En espérant que quelqu'un pourra m'aider.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 /* Initialisation d'un repère x, y, z et création d'une liste */ void InitListRepere(void) { idRepere = glGenLists(1); glNewList(idRepere,GL_COMPILE); /* Tracé d'un repère x, y, z */ glBegin(GL_LINES); glColor3f(1.0f,0.0f,0.0f); // Rouge glVertex2i(0,0); glVertex2i(1,0); // X glColor3f(0.0f,1.0f,0.0f); // Vert glVertex2i(0,0); glVertex2i(0,1); // Y glColor3f(0.0f,0.0f,1.0f); // Bleu glVertex2i(0,0); glVertex3i(0,0,1); // Z glEnd(); glEndList(); }
Merci d'avance pour vos réponses.
Bye![]()
Partager