En gros, tu as 2 solution pour faire un animation de rotation:
void display (void) { glClearColor (0.0, 0.0, 0.0, 0.0); glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glRotatef(angle, 0.0, 1.0, 0.0); //avec un angle qui ne change pas et qui représente la pas de ta rotation
glBegin(GL_LINES); //le boulot commence ici pour OpenGL ! ...
}
ou alors
void display (void) { glClearColor (0.0, 0.0, 0.0, 0.0); glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glRotatef(angle, 0.0, 1.0, 0.0); //avec un angle qui change (c'est l'angle globale de ta rotation)
glBegin(GL_LINES); //le boulot commence ici pour OpenGL ! ...
}
Le problème, quand tu utilise la première méthode, c'est que tu va faire des multiplications de matrice qui contiennent de + en + d'erreurs d'arrondis... Il vaut donc mieux avoir un angle globale, qui tu incrémente entre chaque frame, et repartir d'une matrice vide avant chaque dessin .
J'espère que j'ai été sufisemment explicatif (je ne suis pas un super pro en OpenGL, je débute aussi).
--Message édité par Pitounet--