2007/09/15

Reporte Practica 4


1.- Describa las ventajas de construir de manera jerárquica escenas

Las ventajas que presenta el construir una escena de forma Jerárquica es que podemos modificar parte del escenario sin tener necesidad de escribir nuevo código para nuevos elementos. Simplemente se aplican nuevas transformaciones a elementos anteriores de manera que se reutiliza código.

2.- Escriba un programa que construya de manera jerárquica una escena en la que:

- Hayan 3 humanoides:

- 1 alto y flaco

- 1 normal

- 1 chaparro y regordete

- Cada uno se encuentre en el vértice de un triángulo equilátero coplanar con el plano XY

- En el centro del triángulo se encuentre un prisma de base cuadrada

- En la cima del prisma se encuentre "Cthulhu" (esfera con 8 brazos amorfos, con puntas en tenaza...)

void Rlyeh (void){

glPushMatrix();

//----Piso----//

glPushMatrix();

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

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

glScalef ( 300.0f, 5.0f, 300.0f);

cubo();

glPopMatrix();

glPushMatrix();

glColor3f( 0.0f, 0.0f, 0.7f);

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

glScalef ( 280.0f, 4.0f, 280.0f);

cubo();

glPopMatrix();

//----Altar----//

glPushMatrix();

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

glTranslatef( 0.0f, 25.0f, 0.0f);

glScalef ( 50.0f, 50.0f, 50.0f);

cubo3();

glPopMatrix();

//----Cthulhu----//

glPushMatrix();

glTranslatef( 1.0f, 110.0f, 1.0f);

glScalef ( 8.0f, 8.0f, 8.0f);

Cthulhu();

glPopMatrix();

//----Humanoide Alto----//

glPushMatrix();

glColor3f( variable.cr, variable.cg, variable.cb);

glRotatef(-45.0f, 0.0f, 1.0f, 0.0f);

glTranslatef( 0.0f, 50.0f,-80.0f);

glScalef ( 3.0f, 8.0f, 3.0f);

variable.ropa = 1;

hume(variable.c_piel[0], variable.c_piel[1], variable.c_piel[2], 3, variable.ropa, variable.m_arm, variable.m_finger);

glPopMatrix();

//----Humanoide Chaparro----//

glPushMatrix();

glColor3f( variable.cr, variable.cg, variable.cb);

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

glTranslatef( 0.0f, 21.0f,-80.0f);

glScalef ( 5.0f, 3.0f, 5.0f);

hume(variable.c_piel[0], variable.c_piel[1], variable.c_piel[2], 2, variable.ropa, variable.m_arm, variable.m_finger);

glPopMatrix();

//----Humanoide Normal----//

glPushMatrix();

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

glColor3f( variable.cr, variable.cg, variable.cb);

glTranslatef( 0.0f, 35.0f, -75.0f);

glScalef ( 5.0f, 5.0f, 5.0f);

hume(variable.c_piel[0], variable.c_piel[1], variable.c_piel[2], variable.cabeza, variable.ropa, variable.m_arm,variable.m_finger);

glPopMatrix();

glPopMatrix();

}


No hay comentarios: