martes, 30 de octubre de 2012

 
#include <GL/glut.h>
GLfloat anguloCuboX = 0.0f;
GLfloat anguloCuboY = 0.0f;
GLfloat anguloEsfera = 0.0f;
GLint ancho=400;
GLint alto=400;
int hazPerspectiva = 0;

 void reshape(int width, int height){   
  glViewport(0, 0, width, height);   
  glMatrixMode(GL_PROJECTION);   
  glLoadIdentity();       
  if(hazPerspectiva)    
   gluPerspective(60.0f, (GLfloat)width/(GLfloat)height, 1.0f, 20.0f);   
  else
      glOrtho(-4,4, -4, 4, -5, 10);   
  glMatrixMode(GL_MODELVIEW);    
  ancho = width;   
  alto = height;}


 void drawCube(void){   

 glShadeModel(GL_SMOOTH);
  glColor3f(1.0f, 0.0f, 0.0f);   
 
  glBegin(GL_POLYGON);       //cara frontal   
  glVertex3f(-1.0f, 0.0f,  1.0f);   
  glVertex3f( 1.0f, 0.0f,  1.0f);   
  glVertex3f( 0.0f,  1.0f,  0.0f);  
 
    glEnd();   


  glShadeModel(GL_SMOOTH);
 glColor3f(0.0f, 1.0f, 0.0f);

glBegin(GL_POLYGON);      //cara trasera   
  glVertex3f(-1.0f, 0.0f,  -1.0f);   
  glVertex3f( 1.0f, 0.0f,  -1.0f);   
  glVertex3f( 0.0f,  1.0f,  0.0f);
    glEnd();   
 
  glShadeModel(GL_SMOOTH);

 glColor3f(0.0f, 0.0f, 1.0f);   


glBegin(GL_POLYGON);       //cara lateral izq   


  glVertex3f(-1.0f, 0.0f,  1.0f);   
  glVertex3f( -1.0f, 0.0f, -1.0f);   
  glVertex3f( 0.0f,  1.0f,  0.0f);   

 
  glEnd();   

   glShadeModel(GL_SMOOTH);
 glColor3f(1.0f, 1.0f, 0.0f);   
glBegin(GL_POLYGON);      //cara lateral dcha   
 glVertex3f(1.0f, 0.0f,  1.0f);   
  glVertex3f( 1.0f, 0.0f,  -1.0f);   
  glVertex3f( 0.0f,  1.0f,  0.0f);

 glEnd();
  glShadeModel(GL_SMOOTH);

 glColor3f(1.0f, 0.0f, 1.0f);   

 glBegin(GL_QUADS);       //cara abajo   
 glVertex3f( 1.0f,0.0f, -1.0f);   
 glVertex3f( 1.0f, 0.0f,  1.0f);   
 glVertex3f(-1.0f,0.0f,  1.0f);  
 glVertex3f(-1.0f, 0.0f, -1.0f);   
 glEnd();}


 
 void display(){   
  glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);    
  glLoadIdentity();    
 
 // glRotatef(anguloCuboX, 1.0f, 0.0f, 0.0f);  
  glRotatef(anguloCuboY, 0.0f, 1.0f, 0.0f); 
 
 
  drawCube();    
 
  glLoadIdentity();    
  glTranslatef(0.0f, 0.0f, -5.0f);   
  glRotatef(anguloEsfera, 0.0f, 1.0f, 0.0f);   
  glTranslatef(3.0f, 0.0f, 0.0f);    
  glColor3f(1.0f, 1.0f, 1.0f);   
  
  glFlush();   
 
 
  glutSwapBuffers();  
   anguloCuboX+=0.1f;  
   anguloCuboY+=0.1f;   
   anguloEsfera+=0.2f;}


 void init(){   
 
  glClearColor(0,0,0,0);   
  glEnable(GL_DEPTH_TEST);   
  ancho = 400;   
  alto = 400;}

void idle(){    display();}
 int main(int argc, char **argv){   
 
  glutInit(&argc, argv);   
  glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB);   
  glutInitWindowPosition(100, 100);   
  glutInitWindowSize(ancho, alto);  
  glutCreateWindow("Piramide Giratoria");   
  init();   
  glutDisplayFunc(display);   
  glutReshapeFunc(reshape);   
  glutIdleFunc(idle);   

  glutMainLoop();   
  return 0;




No hay comentarios:

Publicar un comentario