martes, 23 de octubre de 2012

Piramide girando en eje y

 
codigo
#include <GL/glut.h>

GLfloat anguloCuboX = 0.0f;
GLfloat anguloCuboY = 0.0f;
GLfloat anguloEsfera = 0.0f;

GLint ancho=500;
GLint alto=500;
 

void reshape(int width, int height)
{
    glViewport(0, 0, width, height);
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
   
   
 glOrtho(-4,4, -4, 4, 1, 10);
    glMatrixMode(GL_MODELVIEW);

    ancho = width;
    alto = height;
}

void drawCube(void)
{
 
  glClear(GL_COLOR_BUFFER_BIT);
//CARA atras

 glShadeModel(GL_SMOOTH);
   glBegin(GL_TRIANGLES);
  glColor3f(1.0,0.0,0.0);
  glVertex3d(1.5,0,1.5);
 glColor3f(0.0,1.0,0.0);
glVertex3d(0,3,0);
 glColor3f(0.0,0.0,1.0);
glVertex3d(-1.5,0,1.5);
glEnd();
//CARA2

glShadeModel(GL_SMOOTH);
glBegin(GL_TRIANGLES);
 glColor3f(1.0,0.0,0.0);
glVertex3d(-1.5,0,1.5);
 glColor3f(0.0,1.0,0.0);
glVertex3d(0,3,0);
 glColor3f(0.0,0.0,1.0);
glVertex3d(-1.5,0,-1.5);
glEnd();
//CARA frente
glShadeModel(GL_SMOOTH);
glBegin(GL_TRIANGLES);
 glColor3f(1.0,0.0,0.0);
glVertex3d(-1.5,0,-1.5);
 glColor3f(0.0,1.0,0.0);
glVertex3d(0,3,0);
 glColor3f(0.0,0.0,1.0);
glVertex3d(1.5,0,-1.5);
glEnd();
 //CARA4

glShadeModel(GL_SMOOTH);
glBegin(GL_TRIANGLES);
 glColor3f(1.0,0.0,0.0);
glVertex3d(-1.5,0,1.5);
 glColor3f(0.0,1.0,0.0);
glVertex3d(0,3,0);
 glColor3f(0.0,0.0,1.0);
glVertex3d(1.5,0,1.5);
glEnd();
 //CARA5
 glColor3f(1.0,0.0,1.0);
glBegin(GL_POLYGON);
glVertex3d(-1.5,0,1.5);
glVertex3d(1.5,0,1.5);
glVertex3d(-1.5,0,-1.5);
glVertex3d(1.5,0,-1.5);

glEnd();
glFlush();

}
void display()
{
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

    glLoadIdentity();

    glTranslatef(0.0f, 0.0f, -5.0f);

  
    glRotatef(anguloCuboY, 0.0f, 1.0f, 0.0f);

    drawCube();

    glLoadIdentity();

    glTranslatef(0.0f, 0.0f, -5.0f);
   
    glTranslatef(3.0f, 0.0f, 0.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");
    init();
    glutDisplayFunc(display);
    glutReshapeFunc(reshape);
    glutIdleFunc(idle);
    glutMainLoop();
    return 0;
}

No hay comentarios:

Publicar un comentario