rotation en opengl ac les fleches - C++ - Programmation
Marsh Posté le 22-12-2004 à 01:34:45
ça ne fonctionne pas comme ça
Rajoute une variable globale rotateAngle que tu incrémentes lorsque tu appuies sur la flèche du haut et décrémentes sur la flèche du bas.
Et ensuite dans ton code de rendu :
Code :
|
Marsh Posté le 22-12-2004 à 02:13:54
bah j'ai donc essayer sa
void Fleches(int key, int x, int y)
{
switch(key)
{
case GLUT_KEY_UP :
Angle++;
break;
case GLUT_KEY_DOWN :
Angle--;
break;
}
}
void Display()
{
glClearColor(0,0,0,0);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
gluLookAt(4,3,3,0,0,0,0,1,0);
glRotatef(Angle,1,0,0);
mais sans aucun resultat
Marsh Posté le 22-12-2004 à 02:53:42
Je ne suis pas un expert de glut mais en testant ton code il s'est avéré évident qu'en fait il y avait un problème de rafraichissement. Appuies sur une flèche : rien ne bouge, redimensionne ta fenêtre : ton cube a tourné.
Il doit y avoir une raison derrière tout ça mais je n'ai pas envie de me plonger dans Glut à 3h du mat' en attendant si tu fais ça :
Code :
|
ça a l'air de fonctionner mais que ça ne t'empêche pas de chercher plus précisément ce qui pose problème.
Edit : Ok le mystère est résolu : tu es en single buffering et tu n'indiques jamais qu'il faut redessinner.
Passe en mode double buffering :
Code :
|
et rajoute à la fin de ta fonction de dessin
Code :
|
Marsh Posté le 22-12-2004 à 00:25:11
voici mon pb
j'ai declarer un cube jusque la tt va bien
mais je ve le faire tourner grace au fleches
donc je met
void Fleches(int key, int x, int y)
{
switch (key)
{
case GLUT_KEY_UP : glRotatef(5,1,0,0);break;
case GLUT_KEY_DOWN : glRotatef(-5,1,0,0);break;
}
}
et glutSpecialFunc(Fleches); dans le main
mais qd j'execute le prog le cube ne tourne pas
(code entier sur http://rafb.net/paste/results/ACRxDB29.html )
que faire ???