Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
672 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  rotation en opengl ac les fleches

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

rotation en opengl ac les fleches

n°929660
op-hium
Posté le 22-12-2004 à 00:25:11  profilanswer
 

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 ???  :fou:

mood
Publicité
Posté le 22-12-2004 à 00:25:11  profilanswer
 

n°929675
Zeross
Posté le 22-12-2004 à 01:34:45  profilanswer
 

ç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 :
  1. glMatrixMode(GL_MODELVIEW);
  2. glLoadIdentity();
  3. gluLookAt(4,3,3,0,0,0,0,1,0);
  4. glRotatef(rotateAngle, 1, 0, 0);


 

n°929683
op-hium
Posté le 22-12-2004 à 02:13:54  profilanswer
 

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

n°929688
Zeross
Posté le 22-12-2004 à 02:53:42  profilanswer
 

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' :D en attendant si tu fais ça :

Code :
  1. void Fleches(int key, int x, int y)
  2. {
  3.      switch(key)
  4.      {
  5.      case GLUT_KEY_UP :
  6.                            Angle++;
  7.                            break;
  8.      case GLUT_KEY_DOWN :
  9.                          Angle--;
  10.                          break;
  11.      }
  12. Display();
  13. }


 
ç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 :
  1. glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE | GLUT_DEPTH);


 
et rajoute à la fin de ta fonction de dessin  

Code :
  1. glutSwapBuffers();
  2. glutPostRedisplay();


Message édité par Zeross le 22-12-2004 à 03:13:24
n°930198
op-hium
Posté le 22-12-2004 à 18:08:49  profilanswer
 

merci beacoup sa marche now


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  rotation en opengl ac les fleches

 

Sujets relatifs
pb d'include glut.h opengl @ c++[DELPHI] Initialisation OpenGL
hermite sous openGL[OpenGL] Problême avec glDrawPixels
[C++ & WindowForm] Rotation image Picture box[openGL/debutant] Eclairage infini.
openGL & interface[C++ / OpenGL] Projet open source de moteur 3D
Light OpenGL avec MACtextures avec glut (OpenGL)
Plus de sujets relatifs à : rotation en opengl ac les fleches


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR