martes, 26 de febrero de 2008

Reporte práctica 2

Desarrollo Práctica 2

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.


No hay comentarios: