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