sábado, 15 de septiembre de 2007

Tarea 4 (TEORÍA)

  • Cödigo del modelado del puerco en glut:
//MODELADO DE CADA PARTE\\\

void torax() //cilindro central
{
glPushMatrix();
glRotatef(90, 0.0f, 1.0f, 0.0f);
glTranslatef(0.0f, 0.0f, -4.0f);
cilindro();
glPopMatrix();
}


void cuadro()
{
glBegin(GL_LINE_LOOP);
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 cilindro()
{
glPushMatrix();
qobj = gluNewQuadric();
gluQuadricDrawStyle(qobj,GLU_FILL);
gluCylinder(qobj, 3.0, 3.0, 8.0, 25, 25);
glPopMatrix();
}



void pesuna()
{
glPushMatrix();
glRotatef(90, 0.0f, 0.0f, 1.0f);
glPushMatrix();
glRotatef(90, 0.0f, 1.0f, 0.0f);
glTranslatef(0.0f, 0.0f, 0.0f);
glScalef(0.28f, 0.28f, 0.06f);
cilindro();
glPopMatrix();
glPopMatrix();
}

void patas() //las 4 patas de harry-Plopper
{
glPushMatrix();
glTranslatef(-2.5f, -4.0f, 1.0f);
glPushMatrix();
glRotatef(90, 0.0f, 0.0f, 1.0f);
glPushMatrix();
glRotatef(90, 0.0f, 1.0f, 0.0f);
glTranslatef(0.0f, 0.0f, 0.0f);
glScalef(0.4f, 0.4f, 0.25f);
cilindro();
glPopMatrix();
glPopMatrix();
glPopMatrix();


glPushMatrix();
glTranslatef(2.5f, -4.0f, 1.0f);
glPushMatrix();
glRotatef(90, 0.0f, 0.0f, 1.0f);
glPushMatrix();
glRotatef(90, 0.0f, 1.0f, 0.0f);
glTranslatef(0.0f, 0.0f, 0.0f);
glScalef(0.4f, 0.4f, 0.25f);
cilindro();
glPopMatrix();
glPopMatrix();
glPopMatrix();

glPushMatrix();
glTranslatef(-2.5f, -4.0f, -1.0f);
glPushMatrix();
glRotatef(90, 0.0f, 0.0f, 1.0f);
glPushMatrix();
glRotatef(90, 0.0f, 1.0f, 0.0f);
glTranslatef(0.0f, 0.0f, 0.0f);
glScalef(0.4f, 0.4f, 0.25f);
cilindro();
glPopMatrix();
glPopMatrix();
glPopMatrix();


glPushMatrix();
glTranslatef(2.5f, -4.0f, -1.0f);
glPushMatrix();
glRotatef(90, 0.0f, 0.0f, 1.0f);
glPushMatrix();
glRotatef(90, 0.0f, 1.0f, 0.0f);
glTranslatef(0.0f, 0.0f, 0.0f);
glScalef(0.4f, 0.4f, 0.25f);
cilindro();
glPopMatrix();
glPopMatrix();
glPopMatrix();
}


void pezunas() //las 4 pezuñas
{
glPushMatrix();
glTranslatef(-2.5f, -4.5f, 1.0f);
pesuna();
glPopMatrix();
glPushMatrix();
glTranslatef(2.5f, -4.5f, 1.0f);
pesuna();
glPopMatrix();
glPushMatrix();
glTranslatef(-2.5f, -4.5f, -1.0f);
pesuna();
glPopMatrix();
glPushMatrix();
glTranslatef(2.5f, -4.5f, -1.0f);
pesuna();
glPopMatrix();
}
void rabito()
{
glPushMatrix();
glTranslatef(-6.0f, 0.0f, -1.0f);
glRotatef(90, 0.0f, 1.0f, 0.0f);
glPushMatrix();
glTranslatef(0.0f, 0.0f, 0.0f);
glScalef(0.18f, 0.18f, 0.25f);
cilindro();
glPopMatrix();
glPopMatrix();
}
void cabeza()
{
glPushMatrix();
glTranslatef(5.5,0.0,0.0);
glPushMatrix();
glTranslatef(0.0,0.0,0.0);
glutSolidSphere(2.3, 20, 20);
glPopMatrix();
glPopMatrix();
}
void trompa()
{
glPushMatrix();
glTranslatef(7.2f, -1.2f, 0.0f);
glRotatef(90, 0.0f, 1.0f, 0.0f);
glPushMatrix();
glTranslatef(0.0f, 0.0f, 0.0f);
glScalef(0.35f, 0.35f, 0.10f);
cilindro();
glPopMatrix();
glPopMatrix();
}
void ojos()
{
glPushMatrix();
glTranslatef(7.7,0.3,-0.8);
glPushMatrix();
glTranslatef(0.0,0.0,0.0);
glutWireSphere(0.7, 30, 30);
glPopMatrix();
glPopMatrix();
glPushMatrix();
glTranslatef(7.7,0.3,0.8);
glPushMatrix();
glTranslatef(0.0,0.0,0.0);
glutWireSphere(0.7, 30, 30);
glPopMatrix();
glPopMatrix();
}
void fleco()
{
glPushMatrix();
glTranslatef(7.7,1.8,0.0);
glPushMatrix();
glScalef(2.4f, 0.5f, 0.8f);
glutSolidCube(1.0);
glPopMatrix();
glPopMatrix();
}
void orejas()
{
glPushMatrix();
glTranslatef(5.2,1.4,1.8);
glRotatef(-45, 1.0f, 0.0f, 0.0f);
glutSolidCone(0.8, 1.5,20,20);
glPopMatrix();
glPushMatrix();
glTranslatef(5.2,1.4,-1.8);
glRotatef(-135, 1.0f, 0.0f, 0.0f);
glutSolidCone(0.8, 1.5,20,20);
glPopMatrix();
}

//dESPLIEGUE Y CONSTRUCCION DEL PUERCO\\

void display()
{
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(1,1,0);
glLoadIdentity();
gluLookAt (6.0, 2.0, 4.0, .0, 0.0, 0.0, 0.0, 1.0, 0.0);
glRotatef(Ang,0.0f,1.0f,0.0f);


/*COnstruccion del puerco*/

glPushMatrix();
torax();
glPushMatrix();
glColor3f(1,1,1);
cabeza();
glPushMatrix();
glColor3f(1,0,1);
trompa();
glPopMatrix();
glPushMatrix();
orejas();
glPushMatrix();
glPushMatrix();
ojos();
glPopMatrix();
glPushMatrix();
glColor3f(1,0,0);
fleco();
glPopMatrix();
glPopMatrix();
glPushMatrix();
glColor3f(0.9,0.5,0.4);
rabito();
glPopMatrix();
glPushMatrix();
patas();
glPushMatrix();
pezunas();
glPopMatrix();
glPopMatrix();
glPopMatrix();
glFlush();
}
void init()
{
glClearColor(0,0,0,0);
}
int main(int argc, char **argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
glutInitWindowPosition(100, 100);
glutInitWindowSize(500, 500);
glutCreateWindow("HArry Plopper");
init();
glutDisplayFunc(display);
glutReshapeFunc(reshape);
glutIdleFunc(Idle);
glutMainLoop();
return 0;
}






No hay comentarios: