Exemple d'un cube plein qui tourne en opengl (utilise glut)

Contenu du snippet

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

A voir également

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.