Aqui agrego el reporte de la práctica que también es el previo de la siguiente.
/*Programa que realiza a una mano basándose en el diseño de cubos ordenadps jerarquicamente, se puede ajustar a las figuras
para podeer rotar los dedos*/
#include < . GL/glut.h>
#include <. stdlib.h>
void init(void)
{
glClearColor (0.0, 0.0, 0.0, 0.0);
glShadeModel (GL_FLAT);
}
void cuborelleno(void)
{
glBegin(GL_QUADS);
glVertex3f(0.5,0.5,0.5);//v1
glVertex3f(-0.5,0.5,0.5);//v2
glVertex3f(-0.5,-0.5,0.5);//v3
glVertex3f(0.5,-0.5,0.5);//v4
glEnd();
glBegin(GL_QUADS);
glVertex3f(-0.5,0.5,-0.5);//v5
glVertex3f( 0.5,0.5,-0.5);//v6
glVertex3f(0.5,-0.5,-0.5);//v7
glVertex3f(-0.5,-0.5,-0.5);//v8
glEnd();
glBegin(GL_QUADS);
glVertex3f(-0.5,0.5,0.5);//v2
glVertex3f(-0.5,0.5,-0.5);//v5
glVertex3f(-0.5,-0.5,-0.5);//v8
glVertex3f(-0.5,-0.5,0.5);//v3
glEnd();
glBegin(GL_QUADS);
glVertex3f(0.5,0.5,0.5);//v1
glVertex3f(0.5,-0.5,0.5);//v4
glVertex3f( 0.5,-0.5,-0.5);//v7
glVertex3f(0.5,0.5,-0.5);//v6
glEnd();
glBegin(GL_QUADS);
glVertex3f(-0.5,0.5,-0.5);//v5
glVertex3f(-0.5,0.5,0.5);//v2
glVertex3f(0.5,0.5,0.5);//v1
glVertex3f( 0.5,0.5,-0.5);//v6
glEnd();
glBegin(GL_QUADS);
glVertex3f(0.5,-0.5,-0.5);//v7
glVertex3f(-0.5,-0.5,-0.5);//v8
glVertex3f(-0.5,-0.5,0.5);//v3
glVertex3f(0.5,-0.5,0.5);//v4
glEnd();
}
void cubohueco(void)
{
glBegin(GL_LINE_LOOP);
glVertex3f(0.5,0.5,0.5);//v1
glVertex3f(-0.5,0.5,0.5);//v2
glVertex3f(-0.5,-0.5,0.5);//v3
glVertex3f(0.5,-0.5,0.5);//v4
glEnd();
glBegin(GL_LINE_LOOP);
glVertex3f(-0.5,0.5,-0.5);//v5
glVertex3f( 0.5,0.5,-0.5);//v6
glVertex3f(0.5,-0.5,-0.5);//v7
glVertex3f(-0.5,-0.5,-0.5);//v8
glEnd();
glBegin(GL_LINE_LOOP);
glVertex3f(-0.5,0.5,0.5);//v2
glVertex3f(-0.5,0.5,-0.5);//v5
glVertex3f(-0.5,-0.5,-0.5);//v8
glVertex3f(-0.5,-0.5,0.5);//v3
glEnd();
glBegin(GL_LINE_LOOP);
glVertex3f(0.5,0.5,0.5);//v1
glVertex3f(0.5,-0.5,0.5);//v4
glVertex3f( 0.5,-0.5,-0.5);//v7
glVertex3f(0.5,0.5,-0.5);//v6
glEnd();
glBegin(GL_LINE_LOOP);
glVertex3f(-0.5,0.5,-0.5);//v5
glVertex3f(-0.5,0.5,0.5);//v2
glVertex3f(0.5,0.5,0.5);//v1
glVertex3f( 0.5,0.5,-0.5);//v6
glEnd();
glBegin(GL_LINE_LOOP);
glVertex3f(0.5,-0.5,-0.5);//v7
glVertex3f(-0.5,-0.5,-0.5);//v8
glVertex3f(-0.5,-0.5,0.5);//v3
glVertex3f(0.5,-0.5,0.5);//v4
glEnd();
}
void display(void)
{
glClear (GL_COLOR_BUFFER_BIT);
glColor3f (1.0, 1.0, 1.0);
glLoadIdentity ();
gluLookAt (0.0,0.0,5.0,0.0, 0.0, 0.0, 0.0, 1.0, 0.0);
glPushMatrix();
//Creación de la Mano o base para los dedos
glColor3f (0.3, 0.5, 1.0);
glTranslatef(0.0,0.0,0.0);
glRotatef(0,0.0,0.0,1.0);
glTranslatef(0.0,0.5,0.0);
glPushMatrix();
glScalef(1.0,1.0,0.33333);
cubohueco();
glPopMatrix();
//Primer dedo que se crea
glPushMatrix();
glColor3f (0.0, 0.0, 0.5);
//pieza1 del dedo
glScalef(0.25,0.25,0.33333);
glTranslatef(-1.5,2.0,0.0);
glRotatef(0,1.0,0.0,0.0);
glTranslatef(0.0,0.75,0.0);
glPushMatrix();
glScalef(1.0,1.5,1.0);
cubohueco();
glPopMatrix();
//pieza2 del dedo
glTranslatef(0.0,0.75,0.0);
glRotatef(0,1.0,0.0,0.0);
glTranslatef(0.0,0.5,0.0);
glPushMatrix();
glScalef(1.0,1.0,1.0);
cubohueco();
glPopMatrix();
//pieza3 del dedo
glTranslatef(0.0,0.5,0.0);
glRotatef(0,1.0,0.0,0.0);
glTranslatef(0.0,0.5,0.0);
glPushMatrix();
glScalef(1.0,1.0,1.0);
cubohueco();
glPopMatrix();
glPopMatrix();/*fin dedo chiquito*/
//Creación del Segundo dedo
glPushMatrix();
glColor3f (0.0, 5.0, 0.0);
//pieza1 del dedo
glScalef(0.25,0.25,0.33333);
glTranslatef(-0.5,2.0,0.0);
glRotatef(0,1.0,0.0,0.0);
glTranslatef(0.0,0.75,0.0);
glPushMatrix();
glScalef(1.0,1.5,1.0);
cubohueco();
glPopMatrix();
//pieza2 del dedo
glTranslatef(0.0,0.75,0.0);
glRotatef(0,1.0,0.0,0.0);
glTranslatef(0.0,0.75,0.0);
glPushMatrix();
glScalef(1.0,1.5,1.0);
cubohueco();
glPopMatrix();
//pieza3 del dedo
glScalef(1.0,0.6666,1.0);
glTranslatef(0.0,1.15,0.0);
glRotatef(0,1.0,0.0,0.0);
glTranslatef(0.0,0.5,0.0);
glPushMatrix();
glScalef(1.0,1.0,1.0);
cubohueco();
glPopMatrix();
glPopMatrix();/*fin dedo anular*/
//Creación del tercer dedo
glPushMatrix();
glColor3f (5.0, 0.0, 0.0);
//pieza1 del dedo
glScalef(0.25,0.25,0.33333);
glTranslatef(0.5,2.0,0.0);
glRotatef(0,1.0,0.0,0.0);
glTranslatef(0.0,0.75,0.0);
glPushMatrix();
glScalef(1.0,1.5,1.0);
cubohueco();
glPopMatrix();
//pieza2 del dedo
glTranslatef(0.0,0.75,0.0);
glRotatef(0,1.0,0.0,0.0);
glTranslatef(0.0,1.0,0.0);
glPushMatrix();
glScalef(1.0,2.0,1.0);
cubohueco();
glPopMatrix();
//pieza3 del dedo
glScalef(1.0,0.666,1.0);
glTranslatef(0.0,1.5,0.0);
glRotatef(0,1.0,0.0,0.0);
glTranslatef(0.0,0.5,0.0);
glPushMatrix();
glScalef(1.0,1.0,1.0);
cubohueco();
glPopMatrix();
glPopMatrix();/*fin dedo indice*/
//Creación del cuarto dedo
glPushMatrix();
glColor3f (1.0, 0.0, 1.0);
//primera falange
glScalef(0.25,0.25,0.33333);
glTranslatef(1.5,2.0,0.0);
glRotatef(0,1.0,0.0,0.0);
glTranslatef(0.0,0.75,0.0);
glPushMatrix();
glScalef(1.0,1.5,1.0);
cubohueco();
glPopMatrix();
//segunda falange
glTranslatef(0.0,0.75,0.0);
glRotatef(0,1.0,0.0,0.0);
glTranslatef(0.0,0.75,0.0);
glPushMatrix();
glScalef(1.0,1.5,1.0);
cubohueco();
glPopMatrix();
//tercera falange
glScalef(1.0,0.6666,1.0);
glTranslatef(0.0,1.15,0.0);
glRotatef(0,1.0,0.0,0.0);
glTranslatef(0.0,0.5,0.0);
glPushMatrix();
glScalef(1.0,1.0,1.0);
cubohueco();
glPopMatrix();
glPopMatrix();
//Creación del dedo pulgar
glColor3f (1.0, 1.0, 0.0);
glPushMatrix();
//pieza1 del dedo
glScalef(0.3333,0.3333,0.33333);
glTranslatef(2.0,0.0,0.0);
glRotatef(-90,0.0,0.0,1.0);
glTranslatef(0.0,0.25,0.0);
glPushMatrix();
glScalef(1.0,1.5,1.0);
cubohueco();
glPopMatrix();
//pieza2 del dedo
glTranslatef(0.0,0.75,0.0);
glRotatef(0,1.0,0.0,0.0);
glTranslatef(0.0,0.25,0.0);
glPushMatrix();
glScalef(1.0,0.5,1.0);
cubohueco();
glPopMatrix();
//pieza3 del dedo
glScalef(1.0,0.666,1.0);
glTranslatef(0.0,0.5,0.0);
glRotatef(0,1.0,0.0,0.0);
glTranslatef(0.0,0.3333,0.0);
glPushMatrix();
//Modulo de prueba
//glColor3f (1.0, 1.0, 1.0);
//cubohueco();
//glColor3f (1.0, 1.0, 0.0);
//fin prueba
glScalef(1.0,1.0,1.0);
cubohueco();
glPopMatrix();
glPopMatrix();
glPopMatrix();
glFlush ();
}
void reshape (int w, int h)
{
glViewport (0, 0, (GLsizei) w, (GLsizei) h);
glMatrixMode (GL_PROJECTION);
glLoadIdentity ();
glFrustum (-1.0, 1.0, -1.0, 1.0, 1.5, 20.0);
glMatrixMode (GL_MODELVIEW);
}
/* ARGSUSED1 */
void keyboard(unsigned char key, int x, int y)
{
switch (key) {
case 27:
exit(0);
break;
}
}
int main(int argc, char** argv)
{
glutInit(&argc, argv);
glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize (800, 800);
glutInitWindowPosition (90, 90);
glutCreateWindow (argv[0]);
init ();
glutDisplayFunc(display);
glutReshapeFunc(reshape);
glutKeyboardFunc(keyboard);
glutMainLoop();
return 0;
}

No hay comentarios.:
Publicar un comentario