[OpenGL] Diriger mon cube a gauche et a droite et sans rotation (pour l'instant)

FPSQuentin Messages postés 3 Date d'inscription dimanche 11 janvier 2009 Statut Membre Dernière intervention 23 janvier 2009 - 21 janv. 2009 à 18:47
BunoCS Messages postés 15472 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 25 mars 2024 - 23 janv. 2009 à 17:34


Bonjour a tous. J'ai réussi a faire un cube en 3D et j'arrive à faire avancer et reculer mon cube mais se que je n'arrive pas à faire, c'est que l'on puisse faire aller mon cube à gauche et à droite, sans rotaion (peut-être plus tard ).PS: vous remarquerez que mon code est un peu un foutoir mais je mis retrouve mais la prochaine fois je ferai de l'ordre Merci de vos réponses et a+Voila mon code source:#include #include "Gl\glut.h"doubleAnimCubeAngle=0.0;doubleAnimCouleur=0.0;doubleAnimTransFace=0.0;voidFuncAffichage();voidFuncRedim(intx,inty);voidCubeClavierSpecial(intkey,intx,inty);voidCubeClavierSpecial(intkey,intx,inty){switch(key){caseGLUT_KEY_DOWN:{if(AnimTransFace-100.0)AnimTransFace-=0.1;break;}caseGLUT_KEY_LEFT:{if(AnimTransFace+100.0)AnimTransFace+=0-1;//Et ici ?//break;}}}voidFuncOisivete(){AnimCouleur-=0.01;if(AnimCouleur360.0)AnimCubeAngle=0.0;glutPostRedisplay();}voidmain(void){glutInitWindowPosition(0,0);glutInitWindowSize(1265,720);glutInitDisplayMode(GLUT_RGBA|GLUT_DEPTH|GLUT_DOUBLE);glutCreateWindow("Vive l'OpenGL !(Antenen Quentin)");glEnable(GL_DEPTH_TEST);glutDisplayFunc(FuncAffichage);glutReshapeFunc(FuncRedim);glutIdleFunc(FuncOisivete);glutSpecialFunc(CubeClavierSpecial);glutMainLoop();}voidFuncAffichage(){glClearColor(1.0f,1.5f,1.0f,1.0f);glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);glMatrixMode(GL_MODELVIEW);glLoadIdentity();gluLookAt(8.0,4.0,3.0,0.0,1.0,0.0,0.0,1.0,0.0);glTranslated(AnimTransFace,0.0,0.0);glBegin(GL_QUADS);glColor3d(AnimCouleur,0.0,0.0);glVertex3d(1.0,1.0,-1.0);glVertex3d(-1.0,1.0,-1.0);glVertex3d(-1.0,1.0,1.0);glVertex3d(1.0,1.0,1.0);glColor3d(0.0,1.0,1.0);glVertex3d(1.0,-1.0,1.0);glVertex3d(-1.0,-1.0,1.0);glVertex3d(-1.0,-1.0,-1.0);glVertex3d(1.0,-1.0,-1.0);glColor3d(0.0,0.0,1.0);glVertex3d(1.0,1.0,1.0);glVertex3d(-1.0,1.0,1.0);glVertex3d(-1.0,-1.0,1.0);glVertex3d(1.0,-1.0,1.0);glColor3d(1.0,1.0,0.0);glVertex3d(1.0,-1.0,-1.0);glVertex3d(-1.0,-1.0,-1.0);glVertex3d(-1.0,1.0,-1.0);glVertex3d(1.0,1.0,-1.0);glColor3d(1.0,0.0,1.0);glVertex3d(-1.0,1.0,1.0);glVertex3d(-1.0,1.0,-1.0);glVertex3d(-1.0,-1.0,-1.0);glVertex3d(-1.0,-1.0,1.0);glColor3d(0.0,1.0,0.0);glVertex3d(1.0,1.0,-1.0);glVertex3d(1.0,1.0,1.0);glVertex3d(1.0,-1.0,1.0);glVertex3d(1.0,-1.0,-1.0);glEnd();glPopMatrix();glutSwapBuffers();}voidFuncRedim(intx,inty){glViewport(0,0,x,y);glMatrixMode(GL_PROJECTION);glLoadIdentity();gluPerspective(50.0,(double)x/y,0.1,100.0);}

6 réponses

BunoCS Messages postés 15472 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 25 mars 2024 103
22 janv. 2009 à 11:49
Salut,
Il te faut une autre variable, genre AnimTransCote, qui va te servir à gérer la translation de gauche à droite, comme tu l'as fait pour avant/arrièr.

@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
0
FPSQuentin Messages postés 3 Date d'inscription dimanche 11 janvier 2009 Statut Membre Dernière intervention 23 janvier 2009
22 janv. 2009 à 13:04
J'ai fait ce que  j'ai pu, et sa ne marche pas pourrais tu mettre le code ben dans mon code ? MERCI
0
BunoCS Messages postés 15472 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 25 mars 2024 103
22 janv. 2009 à 14:20
Evidemment, il faut également changer l'appel à la fonction glTranslated(..)
Dis-moi s'il y a quelque-chose que tu ne comprends pas.

@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
0
FPSQuentin Messages postés 3 Date d'inscription dimanche 11 janvier 2009 Statut Membre Dernière intervention 23 janvier 2009
23 janv. 2009 à 16:32
Alors en faite j'ai essayé de tout faire pour faire tourner mon cube a gauche et a droite mais je n'y arrive pas pourrais tu me le mettre dans le code ? Merci d'avance
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
BunoCS Messages postés 15472 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 25 mars 2024 103
23 janv. 2009 à 17:15
Tu peux ptet me dire ce que tu as essayer de faire?

@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
0
BunoCS Messages postés 15472 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 25 mars 2024 103
23 janv. 2009 à 17:34
Aller, je te montre. Mais je pense que ça ne va pas t'aider à comprendre par toi-même...

Dans la fonction clavier:
  case GLUT_KEY_LEFT:
   {
    if(AnimTransCote<100.0)
     AnimTransCote+=0.1;
    break;
   }
  case GLUT_KEY_RIGHT:
   {
    if(AnimTransCote>-100.0)
     AnimTransCote-=0.1;
    break;
   }

Et dans la fonction d'affichage:
 glTranslated(AnimTransFace,0.0,AnimTransCote);

Par contre, il faut revoir la façon de coder un peu plus "proprement"

@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
0
Rejoignez-nous