Rotation logo opengl

Contenu du snippet

Logo 'AsT' qui tourne sur les axes y et z programmé en openGL. C'est un premier pas... héhéhé ;)

Source / Exemple :


// AsT in Rotation
// (c)AsT of Mortel April 2004
// Coded on Microsoft Virtual C++
// OpenGL iz good for U ;)

/////////////////////////////

#include <windows.h>
#include <gl\glut.h>

void Rota();
int rot=0;

/////////////////////////////

void Display()
{
	glClear(GL_COLOR_BUFFER_BIT);
	
	glLoadIdentity();

	
	
	glMatrixMode(GL_PROJECTION);	
	
	glOrtho(-20,20,-20,20,-10,10);
	glViewport(180,-40,640/2,480);
	
	
	glPushMatrix();
	glColor3d(0,0,1);
	glBegin(GL_QUADS);
	glVertex2d(-20,11);
	glVertex2d(-5,11);
	glVertex2d(-5,18);
	glVertex2d(-20,18);
	glEnd();
	
	glBegin(GL_LINES);
	glVertex2d(-20,9);
	glVertex2d(20,9);
	glVertex2d(-20,0);
	glVertex2d(20,0);
	glVertex2d(-20,-9);
	glVertex2d(20,-9);

	glEnd();

	glPopMatrix();

	glTranslated(0,0,0);
	glRotated(rot,0,1,1);
	
	glBegin(GL_TRIANGLES);
	glColor3d(1,0,0);
	glVertex2d(-6,4);
	glVertex2d(0,6);
	glVertex2d(6,4); // triangle haut

	glVertex2s(-6,-4);
	glVertex2s(0,-6);
	glVertex2s(6,-4); // triangle bas
	glEnd();

	glBegin(GL_QUADS);
	glColor3d(1,1,1);
	glVertex2d(-7,-3);
	glVertex2d(-7,3);
	glVertex2d(-3,3);
	glVertex2d(-3,-3);

	glVertex2d(-2,-3);
	glVertex2d(-2,3);
	glVertex2d(2,3);
	glVertex2d(2,-3);

	glVertex2d(3,2);
	glVertex2d(3,3);
	glVertex2d(7,3);
	glVertex2d(6,2);
	glVertex2d(4,2);
	glVertex2d(5,2);
	glVertex2d(5,-2);
	glVertex2d(4,-3);

	glColor3d(0,0,0);
	glVertex2d(-6,1);
	glVertex2d(-6,2);
	glVertex2d(-4,2);
	glVertex2d(-4,1);
	glVertex2d(-4,-3);
	glVertex2d(-4,0);
	glVertex2d(-6,0);
	glVertex2d(-6,-3);

	glVertex2d(-1,1);
	glVertex2d(-1,2);
	glVertex2d(2,2);
	glVertex2d(2,1);

	glVertex2d(-2,0);
	glVertex2d(1,0);
	glVertex2d(1,-2);
	glVertex2d(-2,-2);

	glEnd();

	glBegin(GL_TRIANGLES);
	glColor3d(0,0,0);
	glVertex2d(-7,2);
	glVertex2d(-7,3);
	glVertex2d(-6,3);

	glVertex2d(-4,3);
	glVertex2d(-3,2);
	glVertex2d(-3,3);

	glVertex2d(-2,2);
	glVertex2d(-2,3);
	glVertex2d(-1,3);

	glVertex2d(2,-2);
	glVertex2d(2,-3);
	glVertex2d(1,-3);
	glEnd();
	
	
	glutSwapBuffers();
	glFlush();
}
void rota()
{
	rot+=1;
	if (rot>360) rot=0;
	

	glutPostRedisplay();
}

void main(int argc, char **argv)

{
	
	glutInit(&argc, argv);
	glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE);
	glutInitWindowSize(640,480);
	glutInitWindowPosition(0,0);
	
	glutCreateWindow("AsT Rotation Y,Z");
	glClearColor(0,0,0,0);
	

	glutDisplayFunc(Display);
	glutIdleFunc(rota);
		
	glutMainLoop();
}

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.