1.- Ejecutar el código del previo:
TETRAEDRO:

CUBO:

2.- Desarrolle un código que:
a) Dibuje un triángulo en pantalla
#include
void display(void)
{
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(.5,.5,.5);
// Triangulo
glBegin(GL_TRIANGLES);
glVertex3f(0,0,-1);
glVertex3f(1,0,-1);
glVertex3f(0,1,-1);
glEnd();
glFlush();
}
void reshape(float width, float height)
{
//glViewport(0,0,width,height);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(-6,6,-6,6,-6,6);
}
int main(int argc, char **argv)
{
glutInit( &argc, argv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA);
glutInitWindowPosition(20,20);
glutInitWindowSize(320,320);
glutCreateWindow(" practica 2");
glClearColor(0,0,0,0);
glutDisplayFunc(display);
glutReshapeFunc(reshape);
glutMainLoop();
return 0;
}

b) Dibuje un pentagono (no necesariamente regular).
#include
void display(void)
{
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(.5,.5,.5);
// pentagono con lineas
glBegin(GL_LINES);
glVertex3f(-1,0,-1);
glVertex3f(-1.5,0,-1);
glVertex3f(-1.5,0,-1);
glVertex3f(-1.6,.25,-1);
glVertex3f(-1.6,.25,-1);
glVertex3f(-1.2,.5,-1);
glVertex3f(-1.2,.5,-1);
glVertex3f(-1,.25,-1);
glVertex3f(-1,.25,-1);
glVertex3f(-1,0,-1);
glEnd();
glFlush();
}
void reshape(float width, float height)
{
//glViewport(0,0,width,height);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(-6,6,-6,6,-6,6);
}
int main(int argc, char **argv)
{
glutInit( &argc, argv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA);
glutInitWindowPosition(20,20);
glutInitWindowSize(320,320);
glutCreateWindow(" practica 2");
glClearColor(0,0,0,0);
glutDisplayFunc(display);
glutReshapeFunc(reshape);
glutMainLoop();
return 0;
}

c) cambie la primitiva del dibujo y dibuje el pentagono como:
- conjunto de puntos
- líneas
- tira de líneas
- triángulos
- tira de triángulos
- abanico detriángulos
- cuadrilateros
- poligono
/*
* Eduardo Granados Ch.
* Lab de computación gráfica
* Programa de pentagonos con difernetes primitivas
*/
#include
void display(void)
{
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(.5,.5,.5);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glTranslatef(-3.5,0,0);
// 1.- PENTAGONO CON PUNTOS
glBegin(GL_POINTS);
glVertex3f(0,0,-1);
glVertex3f(.4,0,-1);
glVertex3f(.4,0,-1);
glVertex3f(.5,.2,-1);
glVertex3f(.5,.2,-1);
glVertex3f(.2,.4,-1);
glVertex3f(.2,.4,-1);
glVertex3f(-.1,.2,-1);
glVertex3f(-.1,.2,-1);
glVertex3f(0,0,-1);
glEnd();
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glTranslatef(-2.5,0,0);
// 2.- PENTAGONO CON LINEAS
glBegin(GL_LINES);
glVertex3f(0,0,-1);
glVertex3f(.4,0,-1);
glVertex3f(.4,0,-1);
glVertex3f(.5,.2,-1);
glVertex3f(.5,.2,-1);
glVertex3f(.2,.4,-1);
glVertex3f(.2,.4,-1);
glVertex3f(-.1,.2,-1);
glVertex3f(-.1,.2,-1);
glVertex3f(0,0,-1);
glEnd();
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glTranslatef(-1.5,0,0);
// 3.- PENTAGONO CON TIRAS DE LINEAS
glBegin(GL_LINE_STRIP);
glVertex3f(0,0,-1);
glVertex3f(.4,0,-1);
glVertex3f(.4,0,-1);
glVertex3f(.5,.2,-1);
glVertex3f(.5,.2,-1);
glVertex3f(.2,.4,-1);
glVertex3f(.2,.4,-1);
glVertex3f(-.1,.2,-1);
glVertex3f(-.1,.2,-1);
glVertex3f(0,0,-1);
glEnd();
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glTranslatef(-.5,0,0);
// 4.- PENTAGONO CON TRIANGULOS
glBegin(GL_TRIANGLES);
glVertex3f(0,0,-1);
glVertex3f(.4,0,-1);
//glVertex3f(.4,0,-1); // si se descomenta esta linea no se ve la imagen
glVertex3f(.5,.2,-1); // porque el tercer vertice es igual al primero
glVertex3f(.5,.2,-1);
glVertex3f(.2,.4,-1);
//glVertex3f(.2,.4,-1); // si se descomenta esta linea no se ve la imagen
glVertex3f(-.1,.2,-1); // porque el tercer vertice es igual al primero
glVertex3f(-.1,.2,-1);
glVertex3f(0,0,-1);;
glEnd();
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glTranslatef(.5,0,0);
// 5.- PENTAGONO CON TIRA DE TRIANGULOS
glBegin(GL_TRIANGLE_STRIP);
glVertex3f(0,0,-1);
glVertex3f(.4,0,-1);
//glVertex3f(.4,0,-1); // si se descomenta esta linea no se ve la imagen
glVertex3f(.5,.2,-1); // porque el tercer vertice es igual al primero
glVertex3f(.5,.2,-1);
//glVertex3f(.2,.4,-1); // si se descomenta esta linea no se ve la imagen
// porque el tercer vertice es igual al primero
glVertex3f(.2,.4,-1);
glVertex3f(-.1,.2,-1);
glVertex3f(-.1,.2,-1);
glVertex3f(0,0,-1);
glEnd();
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glTranslatef(1.5,0,0);
// 6.- PENTAGONO CON ABANICO DE TRIANGULOS
glBegin(GL_TRIANGLE_FAN);
glVertex3f(0,0,-1);
glVertex3f(.4,0,-1);
glVertex3f(.4,0,-1);
glVertex3f(.5,.2,-1);
glVertex3f(.5,.2,-1);
glVertex3f(.2,.4,-1);
glVertex3f(.2,.4,-1);
glVertex3f(-.1,.2,-1);
glVertex3f(-.1,.2,-1);
glVertex3f(0,0,-1);
glEnd();
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glTranslatef(2.5,0,0);
// 7.- PENTAGONO CON CUADRILATEROS
glBegin(GL_QUADS);
glVertex3f(0,0,-1);
glVertex3f(.4,0,-1);
glVertex3f(.4,0,-1);
glVertex3f(.5,.2,-1);
glVertex3f(.5,.2,-1);
glVertex3f(.2,.4,-1);
glVertex3f(.2,.4,-1);
glVertex3f(-.1,.2,-1);
glVertex3f(-.1,.2,-1);
glVertex3f(0,0,-1);
glEnd();
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glTranslatef(3.5,0,0);
// 8.- PENTAGONO CON POLIGONO
glBegin(GL_POLYGON);
glVertex3f(0,0,-1);
glVertex3f(.4,0,-1);
glVertex3f(.4,0,-1);
glVertex3f(.5,.2,-1);
glVertex3f(.5,.2,-1);
glVertex3f(.2,.4,-1);
glVertex3f(.2,.4,-1);
glVertex3f(-.1,.2,-1);
glVertex3f(-.1,.2,-1);
glVertex3f(0,0,-1);
glEnd();
glFlush();
}
void reshape(float width, float height)
{
//glViewport(0,0,width,height);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(-4,4,-1,1,-1,1);
}
int main(int argc, char **argv)
{
glutInit( &argc, argv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA);
glutInitWindowPosition(20,20);
glutInitWindowSize(400,400);
glutCreateWindow(" practica 2");
glClearColor(0,0,0,0);
glutDisplayFunc(display);
glutReshapeFunc(reshape);
glutMainLoop();
return 0;
}
3.- Muestre las pantallas.



