P.O.O, Estructura de Datos, Tópicos Selectos de Programación, Fundamentos de Programación, Teoría de la Computación, Matemáticas para Computadoras, Fundamentos de Desarrollo de Sistemas, Programación Web, Graficación.
jueves, 19 de abril de 2012
Práctica de listas. Graficación.
#include "stdafx.h"
#include < glut.h >
void Dibuja();
void Inicializa();
void crealistas();
float prismaV[6][3]={
{-2,0,2},
{-2,0,-2},
{2,0,-2},
{2,0,2},
{0,4,0},
{0,-4,0}};
int prismaC[8][3]={
{4,3,0},
{4,2,3},
{0,3,5},
{3,2,5},
{2,4,1},
{1,4,0},
{2,5,1},
{5,1,0}};
////////////////////////////////////////////////////////////////////
float cuboV[8][3]={
{-2,2,2},
{2,2,2},
{2,-2,2},
{-2,-2,2},
{-2,2,-2},
{2,2,-2},
{2,-2,-2},
{-2,-2,-2}};
int cuboC[6][4]={
{0,1,2,3},
{7,6,5,4},
{1,5,6,2},
{0,3,7,4},
{0,4,5,1},
{3,2,6,7}};
int prisma=1, cubo=2,piso=3;
void main()
{
glutInitDisplayMode(GLUT_RGB|GLUT_DEPTH|GLUT_DOUBLE);
glutInitWindowSize(800,600);
glutInitWindowPosition(100,50);
glutCreateWindow("practica2.4 ");
glutDisplayFunc(Dibuja);
Inicializa();
glutMainLoop();
}
void Inicializa()
{
glEnable(GL_DEPTH_TEST);
glClearColor(-.8,-.5,.6,-.45);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(120,1.33,.01,50);
glMatrixMode(GL_MODELVIEW);
crealistas();
}
void crealistas()
{
int i,j;
glNewList(prisma,GL_COMPILE);
glBegin(GL_TRIANGLES);
for(i=0;i<8;i++)
{
for(j=0;j<3;j++)
{
glColor3f(i/0.9+0.9,j,0);
glVertex3fv(prismaV[prismaC[i][j]]);
}
}
glEnd();
glEndList();
glNewList(cubo,GL_COMPILE);
glBegin(GL_QUADS);
for(i=0;i<6;i++)
{
for(j=0;j<4;j++)
{
glColor3f(i/0.6+0.6,j/6.0,0);
glVertex3fv(cuboV[cuboC[i][j]]);
}
}
glEnd();
glEndList();
glNewList(piso,GL_COMPILE);
glColor3f(0,.5,0);
glBegin(GL_QUADS);
glVertex3f(-15,-5,-15);
glVertex3f(15,-5,-15);
glVertex3f(15,-5,15);
glVertex3f(-15,-5,15);
glEnd();
glEndList();
}
void Dibuja()
{
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
glLoadIdentity();
glTranslated(0,1,-10);
glRotated(45,0,1,0);
glCallList(prisma);
glLoadIdentity();
glTranslated(15,-1,-10);
glRotated(45,0,1,0);
glCallList(prisma);
glLoadIdentity();
glTranslated(-10,6,-20);
glRotated(45,0,1,0);
glCallList(prisma);
glLoadIdentity();
glTranslated(-10,-5,-10);
glRotated(50,0,0,0);
glCallList(cubo);
glLoadIdentity();
glTranslated(-20,5,-15);
glRotated(20,0,1,0);
glCallList(cubo);
glLoadIdentity();
glTranslated(0,-5,-10);
glRotated(5,0,0,0);
glCallList(cubo);
glLoadIdentity();
glCallList(piso);
glutSwapBuffers();
}
Suscribirse a:
Enviar comentarios (Atom)
No hay comentarios:
Publicar un comentario