#include <gl\glut.h>
void init(void); void dibujar(void); void dibujar2(void); void dibujar3(void); void redimensionar(int, int); void teclado (unsigned char, int); float angulo = 0;
void animacion() { angulo += 0.2; if(angulo >= 360) angulo = 0; glutPostRedisplay(); }
void teclado(unsigned char key, int x, int y) { if(key==27) exit(0); if(key==112) angulo = ;
if(key==97) angulo + ; }
void init(void) { glClearColor(0.0,0.0,0.0,0.0); glEnable(GL_DEPTH_TEST); glShadeModel(GL_FLAT); }
void redimensionar(int ancho, int alto) { glViewport(0,0,(GLint)ancho, (GLint)alto); glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluPerspective(35,((float)ancho/alto), 0.1, 1000); }
void dibujar(void) { glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); gluLookAt(3,2,3,0,0,0,0,1,0); glPushMatrix();
// Primera cara glTranslatef(1,0,0); glBegin(GL_POLYGON); glColor3f(1.0,0.0,0.0); glVertex3f(1,0,1); glVertex3f(0,0,1); glVertex3f(1,1,1); glVertex3f(0,1,1); glEnd(); // Segunda cara glBegin(GL_POLYGON); glColor3f(0.0,1.0,0.0); glVertex3f(1,0,0); glVertex3f(0,0,0); glVertex3f(0,1,0); glVertex3f(1,1,0); glEnd(); // Tercera cara glBegin(GL_POLYGON); glColor3f(0.0,0.0,1.0); glVertex3f(0,0,0); glVertex3f(0,0,1); glVertex3f(0,1,1); glVertex3f(0,1,0); glEnd(); // Cuarta cara glBegin(GL_POLYGON); glColor3f(1.0,0.0,1.0); glVertex3f(0,1,1); glVertex3f(1,1,1); glVertex3f(1,1,0); glVertex3f(0,1,0); glEnd(); // Quinta cara glBegin(GL_POLYGON); glColor3f(1.0,0.0,1.0); glVertex3f(0,0,1); glVertex3f(1,0,1); glVertex3f(1,0,0); glVertex3f(0,0,0); glEnd(); // Sexta cara glBegin(GL_POLYGON); glColor3f(0.5,0.5,0.5); glVertex3f(1,0,1); glVertex3f(1,0,0); glVertex3f(1,1,0); glVertex3f(1,1,1); glEnd(); //--------------Primera Piramide------------- glTranslatef(-1.5,0,0); glRotatef(angulo,0,1, 0); // cara Profunda glBegin(GL_TRIANGLES); glColor3f(1.0,0.5,1.0); glVertex3f(0,1,0); // Vertex Superior (donde se juntan todas las caras) glVertex3f(1,0,1); // Vertex Profundo-Izquierdo glVertex3f(-1,0,1); // Vertex Profundo-Derecho glEnd(); // cara Derecha glBegin(GL_TRIANGLES); glColor3f(1.0,1.0,0.0); glVertex3f(0,1,0); // Vertex Superior ( donde se juntan todas las caras) glVertex3f(-1,0,1); // Vertex Profundo-Derecho glVertex3f(-1,0,-1); // Vertex AntiProfundo-Derecho glEnd(); // cara AniProfunda glBegin(GL_TRIANGLES); glColor3f(0.5,0.9,1.0); glVertex3f(0,1,0);// Vertex Superior (donde se juntan todas las caras) glVertex3f(-1,0,-1);// Vertex AntiProfundo-Derecho glVertex3f(1,0,-1); // Vertex Antiprofundo-Izquierdo glEnd(); // cara Izquierda glBegin(GL_TRIANGLES); glColor3f(0.7,0.9,1.0); glVertex3f(0,1,0); // Vertex Superior (donde se juntan todas las caras) glVertex3f(1,0,-1); // Vertex AntiProfundo-Izquierdo glVertex3f(1,0,1); // Vertex Profundo-Izquierdo glEnd(); // cara Inferior glBegin(GL_POLYGON); glColor3f(0.1,0.2,0.3); glVertex3f(1,0,1); // Vertex Profundo-Izquierdo glVertex3f(1,0,-1); // Vertex AntiProfundo-Izquierdo glVertex3f(-1,0,-1);// Vertex AntiProfundo-Derecho glVertex3f(-1,0,1); // Vertex Profundo-Derecho glEnd(); glutSwapBuffers(); }
void main( int argc, char** argv) { glutInit(&argc,argv); glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGB|GLUT_DEPTH); glutInitWindowSize(800,600); glutCreateWindow("Intro");
// Registrar funciones init(); glutKeyboardFunc(teclado); glutDisplayFunc(dibujar); glutReshapeFunc(redimensionar); glutIdleFunc(animacion); // Bucle de eventos principal glutMainLoop(); } |