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 :

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(); 
}
En espérant que quelqu'un pourra m'aider.
Merci d'avance pour vos réponses.
Bye