martes, 11 de septiembre de 2007

Reporte Práctica 3

Escriba el código para dibujar una mano

#include
void reshape(int width, int height)
{
glViewport(0, 0, width, height);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(-6,4, -3, 5, 0.5, 80);
glMatrixMode(GL_MODELVIEW);
}
void cuadrado()
{
glBegin(GL_LINE_STRIP);
glVertex3f(-0.5,0.5,-0.5);
glVertex3f(-0.5,-0.5,-0.5);
glVertex3f(0.5,-0.5,-0.5);
glVertex3f(0.5,0.5,-0.5);
glVertex3f(-0.5,0.5,-0.5);
glEnd();
}
void cubo()
{
cuadrado();
glPushMatrix();
glTranslatef(0.0f, 0.0f, 1.0f);
cuadrado();
glPopMatrix();
glPushMatrix();
glRotatef(-90, 1.0f, 0.0f, 0.0f);
cuadrado();
glPopMatrix();
glPushMatrix();
glRotatef(90, 1.0f, 0.0f, 0.0f);
cuadrado();
glPopMatrix();
}
void palma()
{
glPushMatrix();
glScalef(4.0f, 4.0f, 1.0f);
cubo();
glPopMatrix();
}
void dedo()
{
glPushMatrix();
glTranslatef(1.5f, 2.4f, 0.0f);
glScalef(0.80f, 0.80f, 0.5f);
cubo();
glTranslatef(0.0f, 1.0f, 0.0f);
cubo();
glPopMatrix();
}
void dedos_mano()
{
glPushMatrix();
dedo();
glTranslatef(-1.0f, 0.0f, 0.0f);
dedo();
glTranslatef(-1.0f, 0.0f, 0.0f);
dedo();
glTranslatef(-1.0f, 0.0f, 0.0f);
dedo();
glPopMatrix();
}
void dedo_gordo()
{
glPushMatrix();
glScalef(0.80f, 0.80f, 0.7f);
cubo();
glTranslatef(-0.60f, 0.60f, 0.0f);
cubo();
glTranslatef(-0.60f, 0.60f, 0.0f);
cubo();
glTranslatef(-0.60f, 0.60f, 0.0f);
cubo();
glPopMatrix();
}
void display()
{
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(3,1,1);
glLoadIdentity();
gluLookAt (0.0,0.0,5.0,0.0, 0.0, 0.0, 0.0, 1.0, 0.0);
glPushMatrix();
palma();
glPopMatrix();
glPushMatrix();
dedos_mano();
glPopMatrix();
glPushMatrix();
glTranslatef(-2.0f, 0.0f, 0.0f);
dedo_gordo();
glPopMatrix();
glFlush();
}
void init()
{
glClearColor(0,0,0,0);
}
int main(int argc, char **argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
glutInitWindowPosition(300, 80);
glutInitWindowSize(400, 400);
glutCreateWindow("Mano Robot");
init();
glutDisplayFunc(display);
glutReshapeFunc(reshape);
glutMainLoop();
return 0;
}

No hay comentarios: