miércoles, 17 de octubre de 2012

Problema II de examen

1. Resultados de los vertices despues de cada transformacion, usando excel


2. Programas en opengl de las transformaciones mencionadas:
a) tomando como base los vertices iniciales para cada transformación


#include <GL/glut.h>

void display(void)
{
glClear (GL_COLOR_BUFFER_BIT);
glColor3f (0,1,1);
glBegin (GL_POLYGON);
glVertex2f (2,2);
glVertex2f (7,2);
glVertex2f (7,7);
glVertex2f (2,7);
glEnd();

glTranslatef (-2,-2,0);
glColor3f (1,1,.8);
glBegin (GL_POLYGON);
glVertex2f (2,2);
glVertex2f (7,2);
glVertex2f (7,7);
glVertex2f (2,7);
glEnd();
glFlush ();
}

void init (void)
{
glClearColor (0,0,1,1);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(-15,10,-15,10,-5,5);
}

int main(int argc, char** argv)
{
glutInit (&argc, argv);
glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize (400, 400);
glutInitWindowPosition (200, 200);
glutCreateWindow ("Traslacion");
init ();
glutDisplayFunc (display);
glutMainLoop ();
return 0;
}


#include <GL/glut.h>

void display(void)
{
glClear (GL_COLOR_BUFFER_BIT);
glColor3f (0,1,1);
glBegin (GL_POLYGON);
glVertex2f (2,2);
glVertex2f (7,2);
glVertex2f (7,7);
glVertex2f (2,7);
glEnd();

glScalef (0.5,0.5,0.0);
glColor3f (1,1,.8);
glBegin (GL_POLYGON);
glVertex2f (2,2);
glVertex2f (7,2);
glVertex2f (7,7);
glVertex2f (2,7);
glEnd();
glFlush ();
}

void init (void)
{
glClearColor (0,0,1,1);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(-15,10,-15,10,-5,5);
}

int main(int argc, char** argv)
{
glutInit (&argc, argv);
glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize (400, 400);
glutInitWindowPosition (200, 200);
glutCreateWindow ("Escalacion");
init ();
glutDisplayFunc (display);
glutMainLoop ();
return 0;
}


#include <GL/glut.h>

void display(void)
{
glClear (GL_COLOR_BUFFER_BIT);
glColor3f (0,1,1);
glBegin (GL_POLYGON);
glVertex2f (2,2);
glVertex2f (7,2);
glVertex2f (7,7);
glVertex2f (2,7);
glEnd();

glRotatef(45.0,0,0,1);
glColor3f (1,1,.8);
glBegin(GL_POLYGON);
glVertex2f (2,2);
glVertex2f (7,2);
glVertex2f (7,7);
glVertex2f (2,7);
glEnd();
glFlush ();
}

void init (void)
{
glClearColor (0,0,1,1);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(-15,10,-15,10,-5,5);
}

int main(int argc, char** argv)
{
glutInit (&argc, argv);
glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize (400, 400);
glutInitWindowPosition (200, 200);
glutCreateWindow ("Rotacion");
init ();
glutDisplayFunc (display);
glutMainLoop ();
return 0;
}

b) tomando las transformaciones en secuencia, es decir despues de la traslacion a los vertices resultantes aplicar la escalacion y al resultado aplicar la rotación.


#include <GL/glut.h>

void display(void)
{
glClear (GL_COLOR_BUFFER_BIT);
glColor3f (0,1,1);
glBegin (GL_POLYGON);
glVertex2f (2,2);
glVertex2f (7,2);
glVertex2f (7,7);
glVertex2f (2,7);
glEnd();

glTranslatef (-2,-2,0);
glColor3f (1,1,.8);
glBegin (GL_POLYGON);
glVertex2f (2,2);
glVertex2f (7,2);
glVertex2f (7,7);
glVertex2f (2,7);
glEnd();
glFlush ();
}

void init (void)
{
glClearColor (0,0,1,1);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(-15,10,-15,10,-5,5);
}

int main(int argc, char** argv)
{
glutInit (&argc, argv);
glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize (400, 400);
glutInitWindowPosition (200, 200);
glutCreateWindow ("Translacion");
init ();
glutDisplayFunc (display);
glutMainLoop ();
return 0;
}


#include <GL/glut.h>

void display(void)
{
glClear (GL_COLOR_BUFFER_BIT);
glColor3f (0,1,1);
glBegin (GL_POLYGON);
glVertex2f (0,0);
glVertex2f (5,0);
glVertex2f (5,5);
glVertex2f (0,5);
glEnd();

glScalef (0.5,0.5,0.0);
glColor3f (1,1,.8);
glBegin (GL_POLYGON);
glVertex2f (0,0);
glVertex2f (5,0);
glVertex2f (5,5);
glVertex2f (0,5);
glEnd();
glFlush ();
}

void init (void)
{
glClearColor (0,0,1,1);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(-15,10,-15,10,-5,5);
}

int main(int argc, char** argv)
{
glutInit (&argc, argv);
glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize (400, 400);
glutInitWindowPosition (200, 200);
glutCreateWindow ("Escalacion");
init ();
glutDisplayFunc (display);
glutMainLoop ();
return 0;
}


#include <GL/glut.h>

void display(void)
{
glClear (GL_COLOR_BUFFER_BIT);
glColor3f (0,1,1);
glBegin (GL_POLYGON);
glVertex2f (0,0);
glVertex2f (2.5,0);
glVertex2f (2.5,2.5);
glVertex2f (0,2.5);
glEnd();

glRotatef(45.0,0,0,1);
glColor3f (1,1,.8);
glBegin(GL_POLYGON);
glVertex2f (0,0);
glVertex2f (2.5,0);
glVertex2f (2.5,2.5);
glVertex2f (0,2.5);
glEnd();
glFlush ();
}

void init (void)
{
glClearColor (0,0,1,1);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(-15,10,-15,10,-5,5);
}

int main(int argc, char** argv)
{
glutInit (&argc, argv);
glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize (400, 400);
glutInitWindowPosition (200, 200);
glutCreateWindow ("Rotacion");
init ();
glutDisplayFunc (display);
glutMainLoop ();
return 0;
}

No hay comentarios:

Publicar un comentario