C'est un exemple simple de cube qui tourne sur lui même. J'ai programmé le code avec Borland C++ 5.5, le code utilise la librairie GLUT.
Source / Exemple :
#include <windows.h>
#include <GL/glu.h>
#include <GL/glut.h>
#include <GL/gl.h>
void display()
{
glClearColor(0.0,0.0,0.0,0.0);
glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
//La c'est les coordonnées du cube
static GLfloat coord[]=
{
-0.5,-0.5,-0.5,
0.5,-0.5,-0.5,
0.5,0.5,-0.5,
-0.5,0.5,-0.5,
-0.5,-0.5,0.5,
0.5,-0.5,0.5,
0.5,0.5,0.5,
-0.5,0.5,0.5
};
//Ici les couleurs du cube
static GLfloat color[6][3]=
{
{1.0,0.0,0.0},
{0.0,1.0,0.0},
{0.0,0.0,1.0},
{0.0,1.0,1.0},
{1.0,1.0,0.0},
{1.0,0.0,1.0},
};
//Ici c'est les faces du cube qui sont rangées, chaque sommet possède un numéro
static GLubyte num[6][4]=
{{0,1,2,3},
{1,5,6,2},
{4,5,6,7},
{0,4,7,3},
{0,1,5,4},
{2,6,7,3}
};
glEnableClientState(GL_VERTEX_ARRAY);
glVertexPointer(3,GL_FLOAT,0,coord);
glRotatef(0.4, 0.0, 1.0, 1.0); //Rotation du cube
//Dessin du cube
for(int x=0; x!=6; x++)
{
glBegin(GL_QUADS);
glColor3f(color[x][0],color[x][1],color[x][2]); //définition de la couleur d'une face
for(int i=0; i!=4; ++i)
glArrayElement(num[x][i]);
glEnd();
}
glutSwapBuffers();
glutPostRedisplay();
}
void keyboard(unsigned char touche, int x, int y)
{
switch(touche)
{
case 27 : //Echap pour quitter
exit(0);
}
}
void glInit (void)
{
glEnable (GL_DEPTH_TEST); //Active la profondeur
glPolygonMode (GL_FRONT_AND_BACK, GL_FILL);
}
int main(int argc, char **argv)
{
glutInitDisplayMode (GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
glutInit(&argc,argv);
glutInitWindowSize(500,500);
glutInitWindowPosition(100,100);
glutCreateWindow("Fenetre");
glutDisplayFunc(display);
glutKeyboardFunc(keyboard);
glInit();
glutMainLoop();
return 0;
}
Conclusion :
Rien a dire, les commentaires sont assez clairs je pense.
Si vous avez des questions, pas de problèmes.
Bouba
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.