proyecto de rene

52
GRUPO: 303 T/M ESPECIALIDAD: INFORMATICA CECYTEM TECÁMAC UTILIZACIÓN DE DISEÑO PARA EL MANEJO DE GRÁFICO ALUMNAS: VERONICA RODRIGUEZ VICENTE & AMANDA MARISOL MARTINEZ LUNA PROFESOR: RENE DOMINGUEZ ESCALONA

Upload: la-qrazii-luniitha

Post on 29-Jun-2015

181 views

Category:

Education


0 download

TRANSCRIPT

Page 1: Proyecto de rene

GRUPO: 303 T/M ESPECIALIDAD: INFORMATICA

CECYTEM TECÁMAC

UTILIZACIÓN DE DISEÑO PARA EL MANEJO DE

GRÁFICO

ALUMNAS: VERONICA RODRIGUEZ VICENTE

&

AMANDA MARISOL MARTINEZ LUNA

PROFESOR: RENE DOMINGUEZ ESCALONA

Page 2: Proyecto de rene

GRUPO: 303 T/M ESPECIALIDAD: INFORMATICA

INTRODUCCIÓN:OpenGL (Open Graphics Library) es una especificación estándar que define una API multilenguaje y multiplataforma para escribir aplicaciones que produzcan gráficos 2D y 3D. La interfaz consiste en más de 250 funciones diferentes que pueden usarse para dibujar escenas tridimensionales complejas a partir de primitivas geométricas simples, tales como puntos, líneas y triángulos. Fue

desarrollada originalmente por Silicón Graphics Inc. (SGI) en 19922 y se usa ampliamente en CAD, realidad virtual, representación científica, visualización de información y simulación de vuelo. También se usa en desarrollo de videojuegos, donde compite con Direct3D en

plataformas Windows. OpenGL tiene dos propósitos esenciales:

Ocultar la complejidad de la interfaz con las diferentes tarjetas gráficas, presentando al

programador una API única y uniforme.

Ocultar las diferentes capacidades de las diversas plataformas hardware, requiriendo que

todas las implementaciones soporten la funcionalidad completa de OpenGL (utilizando

emulación software si fuese necesario).

El funcionamiento básico de OpenGL consiste en aceptar primitivas tales como puntos, líneas y

polígonos, y convertirlas en píxeles. Este proceso es realizado por una pipeline gráfica conocida

como Máquina de estados de OpenGL.8 La mayor parte de los comandos de OpenGL bien emiten

primitivas a la pipeline gráfica o bien configuran cómo la pipeline procesa dichas primitivas. Hasta

la aparición de la versión 2.0 cada etapa de la pipeline ejecutaba una función prefijada, resultando

poco configurable. A partir de la versión 2.0 algunas etapas son programables usando un lenguaje

de programación llamado GLSL.

OpenGL es una API basada en procedimientos de bajo nivel que requiere que el programador dicte

los pasos exactos necesarios para renderizar una escena. Esto contrasta con las APIs descriptivas,

donde un programador sólo debe describir la escena y puede dejar que la biblioteca controle los

detalles para representarla. El diseño de bajo nivel de OpenGL requiere que los programadores

conozcan en profundidad la pipeline gráfica, a cambio de darles libertad para implementar

algoritmos gráficos novedosos.

OpenGL ha influido en el desarrollo de las tarjetas gráficas, promocionando un nivel básico de

funcionalidad que actualmente es común en el hardware comercial; algunas de esas contribuciones

son:

Primitivas básicas de puntos, líneas y polígonos rasterizados.

Una pipeline de transformación e iluminación

Z-buffering.

Mapeado de texturas.

Page 3: Proyecto de rene

GRUPO: 303 T/M ESPECIALIDAD: INFORMATICA

Alpha blending.

ÍNDICE

ANIMACIÓN CASA ESTRELLA SISTEMA SOLAR MOVIMIENTO EN 8 CUBO RELLENO AJEDREZ CUBO CON CUBITOS PIRAMIDE SEMAFORO MUÑECO OSO SEÑOR TRIANGULOS

Page 4: Proyecto de rene

GRUPO: 303 T/M ESPECIALIDAD: INFORMATICA

Page 5: Proyecto de rene

GRUPO: 303 T/M ESPECIALIDAD: INFORMATICA

NOMBRE DE LA PRÁCTICA:

“ANIMACIÓN”

PRESENTACIÓN:

Page 6: Proyecto de rene

GRUPO: 303 T/M ESPECIALIDAD: INFORMATICA

CÓDIGO:#include <unistd.h>#include <GL/glut.h>#include <GL/gl.h>#include <math.h>int x=1, y=1, a=1, h=1;void inicializa(void){glClearColor(1.0,0.6,0.5,0.0);glMatrixMode(GL_PROJECTION);glLoadIdentity();gluOrtho2D(0.0, 800.0, 0.0, 800.0);// el ancho y largo de nuestra pantalla}

void circulo(int x, int y, int radio){

int angulo=0; glBegin(GL_TRIANGLE_FAN); glColor3f (1.0, 0.3, 0.5); glVertex2f(x,y);

glColor3f(0,0.0,0.0); for (angulo=0;angulo<=360; angulo+=6){ glVertex2f(x + sin(angulo) * radio, y + cos(angulo) * radio);}

glEnd();}void dibuja(void){glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);//abajoif(x>=1 && x<500){ circulo(100+1*x,100,40); glFlush(); x++; }

//derechaif(x==500 && y>=1 && y<500){ circulo (600,100+1*y,40); glFlush(); y++; }

//arribaif(x==500 && y==500 && a>=1 && a<500){ circulo (600-1*a,600,40); glFlush(); a++; }

//izquierdaif(x==500 && y==500 && a==500 && h>=1 && h<500){ circulo(100,600-1*h,40); glFlush(); h++; }//Reptirif(h==500){ x=1; y=1; a=1; h=1; }

glutSwapBuffers();}

int main (int argc, char** argv){glutInit(&argc, argv);glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGBA| GLUT_DEPTH);glutInitWindowSize(800,800);glutInitWindowPosition(10,10);glutCreateWindow("Ventana");inicializa();glutDisplayFunc(dibuja);glutIdleFunc(dibuja);glutMainLoop();return 0;}

Page 7: Proyecto de rene

GRUPO: 303 T/M ESPECIALIDAD: INFORMATICA

Page 8: Proyecto de rene

GRUPO: 303 T/M ESPECIALIDAD: INFORMATICA

NOMBRE DE LA PRÁCTICA:

“CASA”

CÓDIGO://Los puntos en toda la pantalla#include <GL/glut.h>#include <GL/gl.h>

void inicializa(void){glClearColor (3.0, 1.0, 1.0, 1.0);glMatrixMode(GL_PROJECTION);glLoadIdentity();gluOrtho2D(0.0,1000.0,0.0,600.0);}

void dibuja(void) {

int i,j=0;

/* borra la pantalla */glClear(GL_COLOR_BUFFER_BIT);

// Cercafor(i=0;i<50;i++){glBegin(GL_POLYGON);glColor3f (2.0, 0.3, 1.0); glVertex2f(0+20*i,292);glVertex2f(5+20*i,300);glVertex2f(10+20*i,292);glVertex2f(10+20*i,240);glVertex2f(0+20*i,240);glEnd();}glBegin(GL_QUADS);

glVertex2i(0,289);glVertex2i(1000,289);glVertex2i(1000,280);glVertex2i(0,280);

//pastoglColor3f (0.3, 0.5, 0.2); glVertex2i(0,240);glVertex2i(1000,240);glVertex2i(1000,120);glVertex2i(0,120);//banquetaglColor3f (0.5, 0.5, 0.5); glVertex2i(0,120);glVertex2i(1000,120);glVertex2i(1000,90);glVertex2i(0,90);

glColor3f (1.0, 0.0, 0.0); glVertex2i(0,90);glVertex2i(1000,90);glVertex2i(1000,82);glVertex2i(0,82);//calleglColor3f (0.3, 0.3, 0.3); glVertex2i(0,82);glVertex2i(1000,82);glVertex2i(1000,0);glVertex2i(0,0);

//piedrasglColor3f (0.3, 0.6, 0.6);

Page 9: Proyecto de rene

GRUPO: 303 T/M ESPECIALIDAD: INFORMATICA

glVertex2i(105,180);glVertex2i(135,180);glVertex2i(135,165);glVertex2i(105,165);

glVertex2i(165,180);glVertex2i(195,180);glVertex2i(195,165);glVertex2i(165,165);

glVertex2i(105,150);glVertex2i(135,150);glVertex2i(135,135);glVertex2i(105,135);

glVertex2i(165,150);glVertex2i(195,150);glVertex2i(195,135);glVertex2i(165,135);//entradaglVertex2i(345,195);glVertex2i(405,195);glVertex2i(405,120);glVertex2i(345,120);

// CasaglColor3f (0.5, 0.0, 0.7); glVertex2i(210,450);glVertex2i(540,450);glVertex2i(540,195);glVertex2i(210,195);// Techo casaglColor3f (0.3, 0.5, 0.3); glVertex2i(210,495);glVertex2i(540,495);glVertex2i(585,450);glVertex2i(165,450);// Techo cocheraglVertex2i(75,345);glVertex2i(210,345);glVertex2i(210,315);glVertex2i(60,315);//Cortina

glColor3f (0.3, 0.5, 0.9); glVertex2i(90,315);glVertex2i(210,315);glVertex2i(210,195);glVertex2i(90,195);

//PuertaglColor3f (1.0, 0.5, 1.0); glVertex2i(345,300);glVertex2i(405,300);glVertex2i(405,195);glVertex2i(345,195);

//ColumnasglColor3f (0.0, 0.5, 0.3); glVertex2i(75,315);glVertex2i(90,315);glVertex2i(90,195);glVertex2i(75,195);

glVertex2i(210,330);glVertex2i(540,330);glVertex2i(540,315);glVertex2i(210,315);

glVertex2i(330,435);glVertex2i(345,435);glVertex2i(345,195);glVertex2i(330,195);

glVertex2i(405,435);glVertex2i(420,435);glVertex2i(420,195);glVertex2i(405,195);

//Ventanas iglColor3f (0.5, 0.7, 1.0); glVertex2i(240,435);glVertex2i(300,435);glVertex2i(300,375);glVertex2i(240,375);

Page 10: Proyecto de rene

GRUPO: 303 T/M ESPECIALIDAD: INFORMATICA

glVertex2i(240,300);glVertex2i(300,300);glVertex2i(300,240);glVertex2i(240,240);

//Ventanas dglVertex2i(450,435);glVertex2i(510,435);glVertex2i(510,375);glVertex2i(450,375);

glVertex2i(450,300);glVertex2i(510,300);glVertex2i(510,240);glVertex2i(450,240);//Ventanas balconglVertex2i(345,435);glVertex2i(405,435);glVertex2i(405,330);glVertex2i(345,330);

//Ventanas puertaglVertex2i(360,285);glVertex2i(390,285);glVertex2i(390,210);glVertex2i(360,210);

//TallosglColor3f (0.5, 1.0, 0.5); glVertex2i(670,225);glVertex2i(700,225);glVertex2i(700,150);glVertex2i(670,150);

glVertex2i(875,225);glVertex2i(905,225);glVertex2i(905,150);glVertex2i(875,150);

glEnd();

glBegin(GL_TRIANGLES);// Techo balconglColor3f (0.5, 1.0, 0.5); glVertex2i(375,480);glVertex2i(435,435);glVertex2i(315,435);glEnd();//arbolesglLineWidth (4);glBegin(GL_LINES);glColor3f (0.0, 0.7, 0.0); for(i=0;i<32;i++){glVertex2i(680-3*i,540-10*j);glVertex2i(690+3*i,540-10*j);glVertex2i(685-3*i,535-10*j);glVertex2i(695+3*i,535-10*j);

glVertex2i(885-3*i,540-10*j);glVertex2i(895+3*i,540-10*j);glVertex2i(890-3*i,535-10*j);glVertex2i(900+3*i,535-10*j);j=j+1;}glEnd();

//Linea CalleglLineWidth (4);glColor3f (0.0, 0.0, 0.0); glBegin(GL_LINES);

for(i=0;i<50;i++){glVertex2i(0+120*i,41);glVertex2i(90+120*i,41);}

//BarandalglVertex2i(344,375);glVertex2i(406,375);for(i=0;i<7;i++){glVertex2i(345+10*i,375);glVertex2i(345+10*i,330);}//Divicion Ventana

Page 11: Proyecto de rene

GRUPO: 303 T/M ESPECIALIDAD: INFORMATICA

glVertex2i(240,262);glVertex2i(300,262);glVertex2i(240,397);glVertex2i(300,397);glVertex2i(450,397);glVertex2i(510,397);glVertex2i(450,262);glVertex2i(510,262);glVertex2i(375,434);glVertex2i(375,375);glVertex2i(270,397);glVertex2i(270,375);glVertex2i(270,262);glVertex2i(270,240);

glVertex2i(480,397);glVertex2i(480,375);glVertex2i(480,262);glVertex2i(480,240);

glEnd();

//Contorno ventanasglBegin(GL_LINE_LOOP);glVertex2i(240,435);glVertex2i(300,435);glVertex2i(300,375);glVertex2i(240,375);glEnd();glBegin(GL_LINE_LOOP);glVertex2i(240,300);glVertex2i(300,300);glVertex2i(300,240);glVertex2i(240,240);glEnd();glBegin(GL_LINE_LOOP);

glVertex2i(450,435);glVertex2i(510,435);glVertex2i(510,375);glVertex2i(450,375);glEnd();glBegin(GL_LINE_LOOP);glVertex2i(450,300);glVertex2i(510,300);glVertex2i(510,240);glVertex2i(450,240);

glEnd();//ChapaglPointSize(4);glColor3f (0.5, 1.0, 0.5); glBegin(GL_POINTS);glVertex2i(352,247);glVertex2i(352,245);glEnd();

glFlush();}

int main(int argc, char** argv){glutInit(&argc, argv);glutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA);glutInitWindowSize(1000,600);glutInitWindowPosition(100,100);glutCreateWindow("My Home");inicializa();glutDisplayFunc(dibuja);glutMainLoop();return 0;}

Page 12: Proyecto de rene

GRUPO: 303 T/M ESPECIALIDAD: INFORMATICA

NOMBRE DE LA PRÁCTICA:

“ESTRELLA”

PRESENTACIÓN:

Page 13: Proyecto de rene

GRUPO: 303 T/M ESPECIALIDAD: INFORMATICA

CODIGO://mi primer ventana#include <GL/glut.h>#include <GL/gl.h>#include <GL/glu.h>

void inicializa(void){glClearColor(1.0,0.8,1.0,0.0); //color de fondoglMatrixMode(GL_PROJECTION); //Modo de proyeccion glLoadIdentity(); //Establece los parametros de proyecciongluOrtho2D(0.0, 1000.0, 0.0, 1000.0); //vista ortogonal}

void dibuja(void) //funcion dibuja{

glClear(GL_COLOR_BUFFER_BIT);glColor3f(0.0 ,0.0 ,0.0 );glPointSize(50);

glBegin(GL_LINES);glVertex2i(350,300);glVertex2i(100,300);

glBegin(GL_LINES);glVertex2i(300,100);glVertex2i(200,400);

glBegin(GL_LINES);glVertex2i(200,400);glVertex2i(100,100);

glBegin(GL_LINES);glVertex2i(100,300);glVertex2i(300,100);

glBegin(GL_LINES);glVertex2i(350,300);glVertex2i(100,100);

glEnd();glFlush(); //forza dibujo}

int main (int argc, char** argv) //metodo main{glutInit(&argc, argv); //incializa GLUTglutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA); //establece el modo de visualizaciónglutInitWindowSize(475,475); //tamaño de la ventanaglutInitWindowPosition(0,0); //posicion inicial de la ventanaglutCreateWindow("ESTRELLA"); //nombre de la ventanainicializa();

glutDisplayFunc(dibuja); //Envia los graficos a la ventana de visualizaciónglutMainLoop(); //muestra todo y esperareturn 0;

Page 14: Proyecto de rene

GRUPO: 303 T/M ESPECIALIDAD: INFORMATICA

NOMBRE DE LA PRÁCTICA:

“SISTEMA SOLAR”

PRESENTACIÓN:

Page 15: Proyecto de rene

GRUPO: 303 T/M ESPECIALIDAD: INFORMATICA

CÓDIGO:#include <unistd.h>#include <GL/glut.h>#include <GL/gl.h>#include <math.h>int rad=100;double ang=0, a=0, l=0, d=0, o=0, t=0, e=0, q=0, m=0;void inicializa(void){glClearColor(0.3,0.0,0.0,0.0);glMatrixMode(GL_PROJECTION);glLoadIdentity();gluOrtho2D(0.0, 1000.0, 0.0, 1000.0);// el ancho y largo de nuestra pantalla}

void circulo(int x, int y, int radio){

int angulo=0; glBegin(GL_TRIANGLE_FAN); for (angulo=0;angulo<=360; angulo++){ glVertex2f(x + sin(angulo) * radio, y + cos(angulo) * radio);}

glEnd();}

void circuloc(int x, int y, int t, int radio){

int angulo=0;glPointSize(t);

glBegin(GL_POINTS); //glColor3f (0.4, 0.3, 0.6); glVertex2f(x,y);

//glColor3f(0,0.0,0.0); for (angulo=0;angulo<=360; angulo+=1){ glVertex2f(x + sin(angulo) * radio, y + cos(angulo) * radio);}

glEnd();}void dibuja(void)

{glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);//estoglColor3f (1.0, 1.0, 0.0);circulo( 500,500,30); //funcion circulo //funcion circulocirculoc (500,500,1,50);glColor3f (1.5, 0.8, 0.7);circulo( 500+ sin(a) * 50,500 - cos(a) * 50,10);circuloc (500,500,1,50);glColor3f (1.0, 0.0, 0.6);circulo( 500+ sin(l) * 100,500 + cos(l) * 100,20);circuloc (500,500,1,100);glColor3f (0.6, 0.4, 0.5);circulo( 500+ sin(d) * 150,500 - cos(d) * 150,15);circuloc (500,500,1,150);glColor3f (0.8, 1.0, 0.5);circulo( 500+ sin(o) * 200,500 + cos(o) * 200,30);circuloc (500,500,1,200);glColor3f (0.5, 0.5, 0.5);circulo( 500+ sin(t) * 250,500 - cos(t) * 250,25);circuloc (500,500,1,250);glColor3f (1.0, 0.3, 0.7);circulo( 500+ sin(e) * 300,500 + cos(e) * 300,30);circuloc (500,500,1,300);glColor3f (0.5, 0.2, 1.0);circulo( 500+ sin(q) * 350,500 - cos(q) * 350,20);circuloc (500,500,1,350);glColor3f (0.5, 1.0, 0.8);circulo( 500+ sin(m) * 400,500 + cos(m) * 400,15);circuloc (500,500,1,400);glColor3f (0.0, 0.0, 1.0);

Page 16: Proyecto de rene

GRUPO: 303 T/M ESPECIALIDAD: INFORMATICA

circulo( 500+ sin(ang) * 450,500 + cos(ang) * 450,30);circuloc (500,500,1,450);glColor3f (0.0, 0.0, 1.0);a=a+0.02;l=l+0.03;d=d+0.04;o=o+0.05;t=t+0.06;e=t+0.07;q=q+0.08;m=m+0.09;ang=ang+0.01; //velocidad entre mas grande mas rapido y entre menos mas lentofor(int j=1;j<=10000000;j++){}//pausaif(ang==360){ang=0;}// se repite idefinidamenteglFlush(); //forzar dibujado

glutSwapBuffers(); //y esto}

int main (int argc, char** argv){glutInit(&argc, argv);glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGBA| GLUT_DEPTH);//esto tambienglutInitWindowSize(1000,1000);glutInitWindowPosition(10,10);glutCreateWindow("Ventana");inicializa();glutDisplayFunc(dibuja);glutIdleFunc(dibuja);//esto es lo que cambiaglutMainLoop();return 0;}

Page 17: Proyecto de rene

GRUPO: 303 T/M ESPECIALIDAD: INFORMATICA

NOMBRE DE LA PRÁCTICA:

“MOVIMIENTO EN 8”

PRESENTACIÓN:

Page 18: Proyecto de rene

GRUPO: 303 T/M ESPECIALIDAD: INFORMATICA

CODIGO:#include <unistd.h>#include <GL/glut.h>#include <GL/gl.h>#include <math.h>

int x=1, x2=1,y=1;double a=6.15, b=6.15;void inicializa(void){glClearColor(0.5,0.6,1.0,0.9);

Page 19: Proyecto de rene

GRUPO: 303 T/M ESPECIALIDAD: INFORMATICA

glMatrixMode(GL_PROJECTION);glLoadIdentity();gluOrtho2D(0.0, 700.0, 0.0, 700.0);// el ancho y largo de nuestra pantalla}

void circulo(int x, int y, int radio){ int angulo=0;

glBegin(GL_TRIANGLE_FAN); glVertex2f(x,y); for (angulo=0;angulo<=360; angulo+=6){ glVertex2f(x + sin(angulo) * radio, y + cos(angulo) * radio);}

glEnd();}void dibuja(void)

{glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);glColor3f(0.5, 0.0, 1.0);circulo(300, 300, 70);

circulo(300,180,70); glColor3f(1.0, 0.0, 0.8);

circulo(300,300,50);

circulo(300,180,50);

glColor3f(1.0,0.9,2.0);

if(a>=6.15 && a<=12.41){circulo(300+ sin (a)*60,300- cos(a)*60,10);a=a+0.02; }else{circulo(300 + sin (b) *60,180-cos(b)*-60,10);b=b + 0.2;if(b>12.4){a=6.15;b=6.15;}for(int j=0; j<=10000000; j++) {}}

glFlush(); glutSwapBuffers();}

int main (int argc, char** argv){glutInit(&argc, argv);glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGBA| GLUT_DEPTH);glutInitWindowSize(700,700);glutInitWindowPosition(10,10);glutCreateWindow("Ventana");inicializa();glutDisplayFunc(dibuja);glutIdleFunc(dibuja);glutMainLoop();return 0;}

Page 20: Proyecto de rene

GRUPO: 303 T/M ESPECIALIDAD: INFORMATICA

NOMBRE DE LA PRÁCTICA:

“CUBO RELLENO”

PRESENTACIÓN:

Page 21: Proyecto de rene

GRUPO: 303 T/M ESPECIALIDAD: INFORMATICA

CÓDIGO://mi primer ventana#include <GL/glut.h>#include <GL/gl.h>void inicializa(void){glClearColor(1.0,1.0,1.0,0.0); //color de fondoglMatrixMode(GL_PROJECTION); //Modo de proyeccion glLoadIdentity(); //Establece los parametros de proyecciongluOrtho2D(0.0, 500.0, 0.0, 500.0); //vista ortogonal}

void cubo (int x, int y,int t,int l){ double a=.8,b=.6;glColor3f(1.0 , 1.0 , 0.0); glBegin(GL_QUADS);glVertex2f(x,y);glVertex2f(x+t,y);glVertex2f(x+t,y+t);glVertex2f(x,y+t);glColor3f(1.0 , 0.0 , 1.0);glVertex2f(x,y+t);glVertex2f(x+t,y+t);glVertex2f(x+t+(t*a),y+t+(t*b));glVertex2f(x+(t*a),y+t+(t*b));glColor3f(1.0 , 0.0 , 0.0);glVertex2f(x+t,y+t);glVertex2f(x+t+(t*a),y+t+(t*b));glVertex2f(x+t+(t*a),y+(t*b));glVertex2f(x+t,y);glEnd();

glColor3f(0.0 , 0.0 , 0.0);glLineWidth(l);glBegin(GL_LINES);glVertex2f(x,y);

glVertex2f(x+t,y);glVertex2f(x+t,y);glVertex2f(x+t,y+t);glVertex2f(x+t,y+t);glVertex2f(x,y+t);glVertex2f(x,y);

glVertex2f(x,y+t);glVertex2f(x+t,y+t);glVertex2f(x+t,y+t);glVertex2f(x+t+(t*a),y+t+(t*b));glVertex2f(x+t+(t*a),y+t+(t*b));glVertex2f(x+(t*a),y+t+(t*b));glVertex2f(x,y+t);glVertex2f(x+t+(t*a),y+t+(t*b));glVertex2f(x+(t*a),y+t+(t*b));

glVertex2f(x+t,y+t);glVertex2f(x+t+(t*a),y+t+(t*b));glVertex2f(x+t+(t*a),y+t+(t*b));glVertex2f(x+t+(t*a),y+(t*b));glVertex2f(x+t+(t*a),y+(t*b));glVertex2f(x+t,y);glVertex2f(x+t,y+t);glEnd(); } void dibuja(void) //funcion dibuja{glClear(GL_COLOR_BUFFER_BIT); //borra pantallaglColor3f(1.0 , 0.0 , 0.0);

// cubo de atras

Page 22: Proyecto de rene

GRUPO: 303 T/M ESPECIALIDAD: INFORMATICA

for(int i=0;i<=10;i++){//linea derecha, izquierdacubo(200,200+20*i,20,5);}for(int j=0;j<=9;j++){//lineas acostadas//linea acostada, abajocubo(220+20*j,200,20,4);//linea acostada, cubo(220+20*j,400,20,5);//linea derecha, derecha

}for(int i=0;i<=10;i++){cubo(420,200+20*i,20,5);}//diagonales//diagonal izquierdafor(int i=0;i<=5;i++){//lineas derechascubo(185-16*i,185-16*i,20,5);}//diagonal derechafor(int i=0;i<=5;i++){//lineas derechascubo(185-16*i,185-16*i,20,5);}//diagonal derechafor(int i=0;i<=5;i++){//lineas derechascubo(405-16*i,387-16*i,20,5);}//diagonal derechafor(int i=0;i<=5;i++){//lineas derechascubo(185-16*i,387-16*i,20,5);}

//diagonal derechafor(int i=0;i<=5;i++){//lineas derechascubo(405-16*i,185-16*i,20,5);

}

/////////////////////////////////////////////////////////////////////////////////// cubo de adelantefor(int i=0;i<=10;i++){//lineas derechascubo(100,100+20*i,20,5);

}for(int j=0;j<=9;j++){//lineas acostadascubo(120+20*j,100,20,4);//dcubo(120+20*j,300,20,5);//diagonales

}for(int i=0;i<=10;i++){cubo(320,100+20*i,20,5);}

glFlush(); //forza dibujo}

int main (int argc, char** argv) //metodo main{glutInit(&argc, argv); //incializa GLUTglutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA); //establece el modo de visualizaciónglutInitWindowSize(500,500); //tamaño de la ventanaglutInitWindowPosition(100,100); //posicion inicial de la ventanaglutCreateWindow("Ventana"); //nombre de la ventanainicializa();glutDisplayFunc(dibuja); //Envia los graficos a la ventana de visualización

Page 23: Proyecto de rene

GRUPO: 303 T/M ESPECIALIDAD: INFORMATICA

glutMainLoop(); //muestra todo y espera

return 0; //retorna un valor de cero

NOMBRE DE LA PRÁCTICA:

“AJEDREZ”

PRESENTACIÓN:

Page 24: Proyecto de rene

GRUPO: 303 T/M ESPECIALIDAD: INFORMATICA

CÓDIGO:

//mi primer ventana#include <GL/glut.h>#include <GL/gl.h>#include <GL/glu.h>

void inicializa(void){glClearColor(1.0,0.8,1.0,0.0); //color de fondoglMatrixMode(GL_PROJECTION); //Modo de proyeccion glLoadIdentity(); //Establece los parametros de proyecciongluOrtho2D(0.0, 1000.0, 0.0, 1000.0); //vista ortogonal}

void dibuja(void) //funcion dibuja{

glClear(GL_COLOR_BUFFER_BIT);glColor3f(1.0 ,1.0 ,1.0 );glPointSize(50);glBegin(GL_POINTS);glVertex2i(100,100);glVertex2i(200,200);glVertex2i(300,100);glVertex2i(400,200);glVertex2i(500,100);glVertex2i(600,200);glVertex2i(700,100);

glVertex2i(800,200);glVertex2i(100,300);glVertex2i(200,400);glVertex2i(300,300);glVertex2i(400,400);glVertex2i(500,300);glVertex2i(600,400);glVertex2i(700,300);glVertex2i(800,400); glVertex2i(100,500);glVertex2i(200,600);glVertex2i(300,500);glVertex2i(400,600);glVertex2i(500,500);glVertex2i(600,600);glVertex2i(700,500);glVertex2i(800,600); glVertex2i(100,700);glVertex2i(200,800);glVertex2i(300,700);glVertex2i(400,800);glVertex2i(500,700);glVertex2i(600,800);glVertex2i(700,700);glVertex2i(800,800); glEnd();glColor3f(0.0 ,0.0 ,0.0 );glPointSize(50);glBegin(GL_POINTS);glVertex2i(200,100);glVertex2i(300,200);glVertex2i(400,100);

Page 25: Proyecto de rene

GRUPO: 303 T/M ESPECIALIDAD: INFORMATICA

glVertex2i(500,200);glVertex2i(600,100);glVertex2i(700,200);glVertex2i(800,100);glVertex2i(100,200);glVertex2i(200,300);glVertex2i(300,400);glVertex2i(400,300);glVertex2i(500,400);glVertex2i(600,300);glVertex2i(700,400);glVertex2i(800,300);glVertex2i(100,400);glVertex2i(200,500);glVertex2i(300,600);glVertex2i(400,500);glVertex2i(500,600);glVertex2i(600,500);glVertex2i(700,600);glVertex2i(800,500);glVertex2i(100,600);glVertex2i(200,700);glVertex2i(300,800);glVertex2i(400,700);glVertex2i(500,800);glVertex2i(600,700);glVertex2i(700,800);glVertex2i(800,700);glVertex2i(100,800);

glEnd();glColor3f(1.0 ,1.0 ,1.0 );

glPointSize(50);glBegin(GL_LINE);glVertex2i(500,900);glVertex2i(500,100);glEnd(); glFlush(); //forza dibujo}

int main (int argc, char** argv) //metodo main{glutInit(&argc, argv); //incializa GLUTglutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA); //establece el modo de visualizaciónglutInitWindowSize(475,475); //tamaño de la ventanaglutInitWindowPosition(0,0); //posicion inicial de la ventanaglutCreateWindow("ajedrez"); //nombre de la ventanainicializa();

glutDisplayFunc(dibuja); //Envia los graficos a la ventana de visualizaciónglutMainLoop(); //muestra todo y esperareturn 0; //retorna un valor de cero}

Page 26: Proyecto de rene

GRUPO: 303 T/M ESPECIALIDAD: INFORMATICA

NOMBRE DE LA PRÁCTICA:

“CUBO CON CUBITOS”

PRESENTACIÓN:

Page 27: Proyecto de rene

GRUPO: 303 T/M ESPECIALIDAD: INFORMATICA

CÓDIGO://mi primer ventana#include <GL/glut.h>#include <GL/gl.h>void inicializa(void){glClearColor(1.0,1.0,1.0,0.0); //color de fondoglMatrixMode(GL_PROJECTION); //Modo de proyeccion glLoadIdentity(); //Establece los parametros de proyecciongluOrtho2D(0.0, 500.0, 0.0, 500.0); //vista ortogonal}

void cubo (int x, int y,int t,int l){ double a=.8,b=.6;glColor3f(1.0 , 1.0 , 0.0); glBegin(GL_QUADS);glVertex2f(x,y);glVertex2f(x+t,y);glVertex2f(x+t,y+t);glVertex2f(x,y+t);glColor3f(1.0 , 0.0 , 1.0);glVertex2f(x,y+t);glVertex2f(x+t,y+t);glVertex2f(x+t+(t*a),y+t+(t*b));glVertex2f(x+(t*a),y+t+(t*b));glColor3f(1.0 , 0.0 , 0.0);glVertex2f(x+t,y+t);glVertex2f(x+t+(t*a),y+t+(t*b));glVertex2f(x+t+(t*a),y+(t*b));glVertex2f(x+t,y);glEnd();

glColor3f(0.0 , 0.0 , 0.0);

glLineWidth(l);glBegin(GL_LINES);glVertex2f(x,y);glVertex2f(x+t,y);glVertex2f(x+t,y);glVertex2f(x+t,y+t);glVertex2f(x+t,y+t);glVertex2f(x,y+t);glVertex2f(x,y);

glVertex2f(x,y+t);glVertex2f(x+t,y+t);glVertex2f(x+t,y+t);glVertex2f(x+t+(t*a),y+t+(t*b));glVertex2f(x+t+(t*a),y+t+(t*b));glVertex2f(x+(t*a),y+t+(t*b));glVertex2f(x,y+t);glVertex2f(x+t+(t*a),y+t+(t*b));glVertex2f(x+(t*a),y+t+(t*b));

glVertex2f(x+t,y+t);glVertex2f(x+t+(t*a),y+t+(t*b));glVertex2f(x+t+(t*a),y+t+(t*b));glVertex2f(x+t+(t*a),y+(t*b));glVertex2f(x+t+(t*a),y+(t*b));glVertex2f(x+t,y);glVertex2f(x+t,y+t);glEnd(); } void dibuja(void) //funcion dibuja{

Page 28: Proyecto de rene

GRUPO: 303 T/M ESPECIALIDAD: INFORMATICA

glClear(GL_COLOR_BUFFER_BIT); //borra pantallaglColor3f(1.0 , 0.0 , 0.0);

// cubo de atras

for(int i=0;i<=10;i++){//linea derecha, izquierdacubo(200,200+20*i,20,5);}for(int j=0;j<=9;j++){//lineas acostadas//linea acostada, abajocubo(220+20*j,200,20,4);//linea acostada, cubo(220+20*j,400,20,5);//linea derecha, derecha

}for(int i=0;i<=10;i++){cubo(420,200+20*i,20,5);}//diagonales//diagonal izquierdafor(int i=0;i<=5;i++){//lineas derechascubo(185-16*i,185-16*i,20,5);}//diagonal derechafor(int i=0;i<=5;i++){//lineas derechascubo(185-16*i,185-16*i,20,5);}//diagonal derechafor(int i=0;i<=5;i++){//lineas derechascubo(405-16*i,387-16*i,20,5);}//diagonal derechafor(int i=0;i<=5;i++){//lineas derechascubo(185-16*i,387-16*i,20,5);

}

//diagonal derechafor(int i=0;i<=5;i++){//lineas derechascubo(405-16*i,185-16*i,20,5);}

/////////////////////////////////////////////////////////////////////////////////// cubo de adelantefor(int i=0;i<=10;i++){//lineas derechascubo(100,100+20*i,20,5);

}for(int j=0;j<=9;j++){//lineas acostadascubo(120+20*j,100,20,4);//dcubo(120+20*j,300,20,5);//diagonales

}for(int i=0;i<=10;i++){cubo(320,100+20*i,20,5);}

glFlush(); //forza dibujo}

int main (int argc, char** argv) //metodo main{glutInit(&argc, argv); //incializa GLUTglutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA); //establece el modo de visualizaciónglutInitWindowSize(500,500); //tamaño de la ventana

Page 29: Proyecto de rene

GRUPO: 303 T/M ESPECIALIDAD: INFORMATICA

glutInitWindowPosition(100,100); //posicion inicial de la ventanaglutCreateWindow("Ventana"); //nombre de la ventanainicializa();glutDisplayFunc(dibuja); //Envia los graficos a la ventana de visualización

glutMainLoop(); //muestra todo y esperareturn 0; //retorna un valor de cero}

NOMBRE DE LA PRÁCTICA:

“PIRAMIDE”

PRESENTACIÓN:

Page 30: Proyecto de rene

GRUPO: 303 T/M ESPECIALIDAD: INFORMATICA

Page 31: Proyecto de rene

GRUPO: 303 T/M ESPECIALIDAD: INFORMATICA

CÓDIGO:

//mi primer ventana#include <GL/glut.h>#include <GL/gl.h>#include <GL/glu.h>

void inicializa(void){glClearColor(1.0,1.9,0.2,1.0); //color de fondoglMatrixMode(GL_PROJECTION); //Modo de proyeccion glLoadIdentity(); //Establece los parametros de proyecciongluOrtho2D(0.0, 1050.0, 0.0, 1000.0); //vista ortogonal

}

void dibuja(void) //funcion dibuja{int i,a=20;glClear(GL_COLOR_BUFFER_BIT);glColor3f(1.0 ,1.0 ,1.0 );glLineWidth(4);glBegin(GL_LINES);for(i=0;i<=12;i++){glVertex2i(400-a*i,400-a*i);glVertex2i(600+a*i,400-a*i); glVertex2i(600+a*i,400-a*i);glVertex2i(600+a*i,600+a*i);glVertex2i(600+a*i,600+a*i);glVertex2i(400-a*i,600+a*i);glVertex2i(400-a*i,600+a*i);glVertex2i(400-a*i,400-a*i);//diagonalesglBegin(GL_LINES);glVertex2i(400,400);glVertex2i(850,850);

glBegin(GL_LINES);glVertex2i(400,400);glVertex2i(150,150);

glBegin(GL_LINES);glVertex2i(600,400);glVertex2i(150,850);

glBegin(GL_LINES);glVertex2i(600,400);glVertex2i(850,150);

}glEnd(); glFlush(); //forza dibujo

}int main (int argc, char** argv) //metodo main{glutInit(&argc, argv); //incializa GLUTglutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA); //establece el modo de visualizaciónglutInitWindowSize(450,450); //tamaño de la ventanaglutInitWindowPosition(0,0); //posicion inicial de la ventanaglutCreateWindow("piramide"); //nombre de la ventanainicializa();

glutDisplayFunc(dibuja); //Envia los graficos a la ventana de visualización

Page 32: Proyecto de rene

GRUPO: 303 T/M ESPECIALIDAD: INFORMATICA

glutMainLoop(); //muestra todo y espera

return 0; //retorna un valor de cero}

NOMBRE DE LA PRÁCTICA:

“SEMAFORO”

CODIGO://mi primer ventana#include <GL/glut.h>#include <GL/gl.h>#include <math.h>void inicializa(void){glClearColor(1.0,1.0,1.0,0.0); //color de fondoglMatrixMode(GL_PROJECTION); //Modo de proyeccion glLoadIdentity(); //Establece los parametros de proyecciongluOrtho2D(0.0, 500.0, 0.0, 500.0); //vista ortogonal}void circuloc(int x, int y, int t, int radio){

int angulo=0;glPointSize(t);

glBegin(GL_POINTS); //glColor3f (1.0, 0.0, 1.0); glVertex2f(x,y);

//glColor3f(0,0.0,0.0); for (angulo=0;angulo<=360; angulo+=1){ glVertex2f(x + sin(angulo) * radio, y + cos(angulo) * radio);}

glEnd();}

void circulo(int x, int y, int radio){

int angulo=0; glBegin(GL_TRIANGLE_FAN); // glColor3f (1.0, 0.0, 1.0); glVertex2f(x,y);

for (angulo=0;angulo<=360; angulo+=1){ glVertex2f(x + sin(angulo) * radio, y + cos(angulo) * radio);}

glEnd();}

void dibuja(void) //funcion dibuja{glClear(GL_COLOR_BUFFER_BIT); glColor3f(0.0,1.0,0.0); //borra pantalla

circuloc(250,250,5,80);glFlush(); //forza dibujo}

int main (int argc, char** argv) //metodo main{glutInit(&argc, argv); //incializa GLUT

Page 33: Proyecto de rene

GRUPO: 303 T/M ESPECIALIDAD: INFORMATICA

glutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA); //establece el modo de visualizaciónglutInitWindowSize(500,500); //tamaño de la ventanaglutInitWindowPosition(100,100); //posicion inicial de la ventana

glutCreateWindow("Ventana"); //nombre de la ventanainicializa();glutDisplayFunc(dibuja); //Envia los graficos a la ventana de visualizaciónglutMainLoop(); //muestra todo y esperareturn 0; //retorna

un valor de cero

}

Page 34: Proyecto de rene

GRUPO: 303 T/M ESPECIALIDAD: INFORMATICA

NOMBRE DE LA PRÁCTICA:

“MUÑECO”

PRESENTACIÓN:

Page 35: Proyecto de rene

GRUPO: 303 T/M ESPECIALIDAD: INFORMATICA

CÓDIGO://mi primer ventana#include <GL/glut.h>#include <GL/gl.h>#include <GL/glu.h>#include <math.h>void inicializa(void){glClearColor(0.5,0.3,1.0,0.0); //color de fondoglMatrixMode(GL_PROJECTION); //Modo de proyeccion glLoadIdentity(); //Establece los parametros de proyecciongluOrtho2D(0.0, 1000.0, 0.0, 1000.0); //vista ortogonal}void circuloc(int x, int y, int t, int radio){

int angulo=0;glPointSize(t);

glBegin(GL_POINTS); //glColor3f (1.0, 0.0, 1.0); glVertex2f(x,y);

//glColor3f(0,0.0,0.0); for (angulo=0;angulo<=360; angulo+=1){ glVertex2f(x + sin(angulo) * radio, y + cos(angulo) * radio);}

glEnd();}

void circulo(int x, int y, int radio){

int angulo=0; glBegin(GL_TRIANGLE_FAN); // glColor3f (1.0, 0.0, 1.0); glVertex2f(x,y);

for (angulo=0;angulo<=360; angulo+=1){ glVertex2f(x + sin(angulo) * radio, y + cos(angulo) * radio);}

}void dibuja(void) //funcion dibuja{glClear(GL_COLOR_BUFFER_BIT); //borra pantalla// pie izquierdoglBegin(GL_QUADS);glColor3f(0.0,0.0,0.0);glVertex2i(200,100);glVertex2i(300,100);glVertex2i(300,150);glVertex2i(250,150);// pie derechoglColor3f(0.0,0.0,0.0);glVertex2i(450,100);glVertex2i(450,150);glVertex2i(500,150);glVertex2i(550,100);// pantalonglColor3f(1.0,1.,1.0);glVertex2i(275,250);glVertex2i(300,325);glVertex2i(450,325);glVertex2i(475,250);

glColor3f(1.0,1.0,1.0);glVertex2i(250,150);glVertex2i(275,250);glVertex2i(375,250);

Page 36: Proyecto de rene

GRUPO: 303 T/M ESPECIALIDAD: INFORMATICA

glVertex2i(300,150);

glColor3f(1.0,1.0,1.0);glVertex2i(375,250);glVertex2i(475,250);glVertex2i(500,150);glVertex2i(450,150);// cinturonglColor3f(0.0,1.0,0.0);glVertex2i(300,325);glVertex2i(300,350);glVertex2i(450,350);glVertex2i(450,325);

glColor3f(1.0,0.0,0.0);glVertex2i(350,325);glVertex2i(350,350);glVertex2i(400,350);glVertex2i(400,325);// camisaglColor3f(0.0,1.0,1.0);glVertex2i(300,350);glVertex2i(300,600);glVertex2i(450,600);glVertex2i(450,350);// camisa toraxglVertex2i(225,550);glVertex2i(250,600);glVertex2i(500,600);glVertex2i(525,550);// manga izquierdaglVertex2i(200,450);glVertex2i(225,550);glVertex2i(300,550);glVertex2i(250,450);// manga derechaglVertex2i(500,450);glVertex2i(450,550);glVertex2i(525,550);glVertex2i(550,450);// mano izquierdaglColor3f(0.9,0.8,0.7);glVertex2i(200,375);

glVertex2i(210,450);glVertex2i(230,450);glVertex2i(220,375);// mano derechaglVertex2i(510,375);glVertex2i(510,450);glVertex2i(530,450);glVertex2i(530,375);// botones de la camisaglColor3f(0.5,0.2,0.0);glVertex2i(350,525);glVertex2i(350,550);glVertex2i(400,550);glVertex2i(400,525);

glVertex2i(350,475);glVertex2i(350,500);glVertex2i(400,500);glVertex2i(400,475);

glVertex2i(350,425);glVertex2i(350,450);glVertex2i(400,450);glVertex2i(400,425);

glVertex2i(350,375);glVertex2i(350,400);glVertex2i(400,400);glVertex2i(400,375);// cuelloglColor3f(0.9,0.8,0.7);glVertex2i(350,600);glVertex2i(350,650);glVertex2i(400,650);glVertex2i(400,600);glEnd();

glBegin(GL_TRIANGLES);glColor3f(0.9,0.8,0.7);glVertex2i(350,600);glVertex2i(400,600);glVertex2i(375,550);// cabeza circulo

Page 37: Proyecto de rene

GRUPO: 303 T/M ESPECIALIDAD: INFORMATICA

glColor3f(0.9,0.8,0.7);circulo(375,750,150);

glEnd(); //ojosglBegin(GL_QUADS);glColor3f(0.2,0.5,1.0);glVertex2i(300,750);glVertex2i(350,750);glVertex2i(350,800);glVertex2i(300,800);glColor3f(0.2,0.5,1.0);glVertex2i(400,750);glVertex2i(450,750);glVertex2i(450,800);glVertex2i(400,800);glEnd();//ojos centro// cabeza circuloglColor3f(0.0,0.0,0.0);circulo(340,780,10);glEnd();glColor3f(0.0,0.0,0.0);circulo(440,780,10);glEnd();//narizzglBegin(GL_POLYGON);glColor3f(1.0,0.3,0.5);glVertex2i(350,725);glVertex2i(375,700);glVertex2i(400,725);glEnd();//bocaglLineWidth(5);glBegin(GL_LINES);glColor3f(1.0,0.3,0.2);glVertex2i(300,650);glVertex2i(450,650);glEnd();//cabelloglBegin(GL_TRIANGLES);glColor3f(0.8,0.5,0.2);

glVertex2i(300,880);glVertex2i(375,950);

glVertex2i(435,890);glVertex2i(490,890);glVertex2i(510,820);

//manos en circuloglEnd();glBegin(GL_POLYGON);glColor3f(0.9,0.8,0.7);circulo(520,375,20);glEnd();glBegin(GL_POLYGON);glColor3f(0.9,0.8,0.7);circulo(210,375,20);

glEnd();glFlush(); //forza dibujo}

int main (int argc, char** argv) //metodo main{glutInit(&argc, argv); //incializa GLUTglutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA); //establece el modo de visualizaciónglutInitWindowSize(900,800); //tamaño de la ventanaglutInitWindowPosition(0,0); //posicion inicial de la ventanaglutCreateWindow("MI primer ventana"); //nombre de la ventanainicializa();glutDisplayFunc(dibuja); //Envia los graficos a la ventana de visualizaciónglutMainLoop(); //muestra todo y espera

Page 38: Proyecto de rene

GRUPO: 303 T/M ESPECIALIDAD: INFORMATICA

return 0; //retorna un valor de cero

}

Page 39: Proyecto de rene

GRUPO: 303 T/M ESPECIALIDAD: INFORMATICA

NOMBRE DE LA PRÁCTICA:

“OSO”

PRESENTACIÓN:

Page 40: Proyecto de rene

GRUPO: 303 T/M ESPECIALIDAD: INFORMATICA

CÓDIGO://mi primer ventana#include <GL/glut.h>#include <GL/gl.h>#include <math.h>void inicializa(void){glClearColor(1.0,1.0,1.0,0.0); //color de fondoglMatrixMode(GL_PROJECTION); //Modo de proyeccion glLoadIdentity(); //Establece los parametros de proyecciongluOrtho2D(0.0, 500.0, 0.0, 500.0); //vista ortogonal}void circuloc(int x, int y, int t, int radio){

int angulo=0;glPointSize(t);

glBegin(GL_POINTS); //glColor3f (1.0, 0.0, 1.0); glVertex2f(x,y);

//glColor3f(0,0.0,0.0); for (angulo=0;angulo<=360; angulo+=1){ glVertex2f(x + sin(angulo) * radio, y + cos(angulo) * radio);}

glEnd();}

void circulo(int x, int y, int radio){

int angulo=0; glBegin(GL_TRIANGLE_FAN); // glColor3f (1.0, 0.0, 1.0); glVertex2f(x,y);

for (angulo=0;angulo<=360; angulo+=1){ glVertex2f(x + sin(angulo) * radio, y + cos(angulo) * radio);}

glEnd();}

void dibuja(void) //funcion dibuja{glClear(GL_COLOR_BUFFER_BIT); glColor3f(0.6,0.4,0.2); //borra pantallacirculo(200,200,150);glColor3f(0.6,0.4,0.2);//circulo(300,300,50);glColor3f(0.6,0.4,0.2);//circulo(100,300,50);glColor3f(0.6,0.4,0.2);//circulo(100,100,50);glColor3f(0.6,0.4,0.2);//circulo(300,100,50);glColor3f(0.6,0.4,0.2);//circulo(200,400,90);glColor3f(0.6,0.4,0.2);//bocacirculo(200,400,10);glColor3f(1.0,0.0,0.0);//circulo(200,350,30);glColor3f(0.6,0.4,0.2);//circulo(259,480,30);

Page 41: Proyecto de rene

GRUPO: 303 T/M ESPECIALIDAD: INFORMATICA

glColor3f(0.6,0.4,0.2);//circulo(150,480,30);glColor3f(0.6,0.4,0.2);

//ojos blancoscirculo(150,425,25);glColor3f(0.0,0.0,0.0);circulo(250,425,25);glColor3f(0.0,0.0,0.0);circulo(150,425,25);glColor3f(0.0,0.0,0.0);circulo(150,425,25);glColor3f(0.0,0.0,0.0);

//ojos negroscirculo(150,425,10);glColor3f(1.0,1.0,1.0);circulo(250,425,10);glColor3f(1.0,1.0,1.0);circulo(150,425,10);glColor3f(1.0,1.0,1.0);circulo(150,425,10);glColor3f(1.0,1.0,1.0);

//ombligocirculo(200,170,10);glColor3f(0.6,0.5,0.2);

glFlush(); //forza dibujo}

int main (int argc, char** argv) //metodo main{glutInit(&argc, argv); //incializa GLUTglutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA); //establece el modo de visualizaciónglutInitWindowSize(500,500); //tamaño de la ventanaglutInitWindowPosition(100,100); //posicion inicial de la ventanaglutCreateWindow("ositha"); //nombre de la ventanainicializa();glutDisplayFunc(dibuja); //Envia los graficos a la ventana de visualizaciónglutMainLoop(); //muestra todo y esperareturn 0; //retorna un valor de cero}

Page 42: Proyecto de rene

GRUPO: 303 T/M ESPECIALIDAD: INFORMATICA

NOMBRE DE LA PRÁCTICA:

“SEÑOR TRIANGULOS”

PRESENTACIÓN:

Page 43: Proyecto de rene

GRUPO: 303 T/M ESPECIALIDAD: INFORMATICA

CÓDIGO://mi primer ventana#include <GL/glut.h>#include <GL/gl.h>#include <GL/glu.h>

void inicializa(void){glClearColor(0.0,1.0,1.0,0.0); //color de fondoglMatrixMode(GL_PROJECTION); //Modo de proyeccion glLoadIdentity(); //Establece los parametros de proyecciongluOrtho2D(0.0, 1000.0, 0.0, 1000.0); //vista ortogonal}

void dibuja(void) //funcion dibuja{glClear(GL_COLOR_BUFFER_BIT); //borra pantallaglColor3f(1.0 , 0.0 , 0.0);///pata derechaglBegin(GL_TRIANGLES);glVertex2i(160,40);glColor3f(1.0 , 0.8 , 1.0);glVertex2i(245,40);glColor3f(1.0 , 1.0 , 0.0);glVertex2i(200,80); glEnd(); //pata de arriba derecha

glColor3f(1.0 , 1.0 , 0.9);glBegin(GL_TRIANGLES);glVertex2i(245,40);

glColor3f(1.0 , 1.0 , 1.0);glVertex2i(245,360);glColor3f(1.0 , 0.9 , 0.0);glVertex2i(180,280); glEnd(); //pierna izquierda glColor3f(1.0 , 0.6 , 0.0);glBegin(GL_TRIANGLES);glVertex2i(320,360);glColor3f(1.8,0.6,1.0);glVertex2i(320,280);glColor3f(0.2 ,1.0,0.7);glVertex2i(420,280); glEnd(); //pata izquierda glColor3f(1.0 , 1.0 , 0.6);glBegin(GL_TRIANGLES);glVertex2i(420,280);glColor3f(1.0 , 0.0 , 0.0);glVertex2i(380,240);glColor3f(0.5 , 1.0 , 0.0);glVertex2i(420,180); glEnd(); //pata sobre el balon glColor3f(0.0 , 0.0 , 0.0);glBegin(GL_TRIANGLES);glVertex2i(420,180);glColor3f(0.0 , 0.0 , 1.0);glVertex2i(520,180);glColor3f(0.0 ,0.0 , 1.0);glVertex2i(440,220); glEnd(); //mano dercha(dedos)

Page 44: Proyecto de rene

GRUPO: 303 T/M ESPECIALIDAD: INFORMATICA

glColor3f(1.0 , 0.9 , 1.0);glBegin(GL_TRIANGLES);glVertex2i(60,360);glColor3f(1.0 , 0.0 , 1.0);glVertex2i(80,440);glColor3f(1.0 , 1.0 , 0.0);glVertex2i(100,400); glEnd(); glColor3f(0.9 , 9.0 , 0.1);glBegin(GL_TRIANGLES);glVertex2i(100,400);glColor3f(0.7 , 0.8 , 1.0);glVertex2i(200,520);glColor3f(1.0 , 1.0 , 0.5);glVertex2i(140,340); glEnd(); glColor3f(1.0 , 0.8 , 0.7);glBegin(GL_TRIANGLES);glVertex2i(260,520);glColor3f(1.0 , 0.2 , 1.0);glVertex2i(298,480);glColor3f(1.0 , 1.0 , 0.6);glVertex2i(320,520); glEnd(); glColor3f(1.0 , 0.7 , 0.4);glBegin(GL_TRIANGLES);glVertex2i(380,520);glColor3f(1.0 , 0.4 , 1.0);glVertex2i(440,360);glColor3f(1.0 , 1.0 , 0.1);glVertex2i(480,400); glEnd(); glColor3f(1.0 , 0.6 , 0.4);

glBegin(GL_TRIANGLES);glVertex2i(480,400);glColor3f(1.0 , 0.4 , 1.0);glVertex2i(500,460);glColor3f(1.0 , 1.0 , 0.8);glVertex2i(520,360); glEnd(); glColor3f(1.0 , 0.5 , 0.7);glBegin(GL_TRIANGLES);glVertex2i(298,520);glColor3f(1.0 , 0.4 , 1.0);glVertex2i(360,600);glColor3f(1.0 , 1.0 , 0.7);glVertex2i(220,600); glEnd(); glColor3f(1.0 , 0.2 , 0.8);glBegin(GL_TRIANGLES);glVertex2i(160,600);glColor3f(1.0 , 0.7 , 1.0);glVertex2i(298,720);glColor3f(1.0 , 1.0 , 0.1);glVertex2i(420,600); glEnd(); glColor3f(1.0 , 0.7 , 0.7);glBegin(GL_TRIANGLES);glVertex2i(540,320);glColor3f(1.0 , 0.6 , 1.6);glVertex2i(498,280);glColor3f(1.0 , 1.0 , 0.7);glVertex2i(560,280); glEnd(); glColor3f(1.0 , 0.7 , 0.5);glBegin(GL_TRIANGLES);glVertex2i(540,320);glColor3f(1.0 , 0.4 , 1.2);glVertex2i(580,540);

Page 45: Proyecto de rene

GRUPO: 303 T/M ESPECIALIDAD: INFORMATICA

glColor3f(1.0 , 1.0 , 0.7);glVertex2i(520,540); glEnd(); glColor3f(1.0 , 0.7 , 0.4);glBegin(GL_TRIANGLES);glVertex2i(540,320);glColor3f(1.0 , 0.8 , 1.0);glVertex2i(640,540);glColor3f(1.0 , 1.0 , 0.4);glVertex2i(620,540); glEnd(); glColor3f(1.0 , 1.0 , 0.0);glBegin(GL_TRIANGLES);glVertex2i(540,320);glColor3f(1.0 , 1.0 , 1.0);glVertex2i(498,540);glColor3f(1.0 , 0.0 , 0.0);glVertex2i(478,540); glEnd();//camiza glBegin(GL_QUADS);glColor3f(0.6 , 0.5 , 0.4);glVertex2i(200,520);glVertex2i(200,340);glVertex2i(380,340);glVertex2i(380,520);glEnd();

glColor3f(1.0 , 0.5 , 0.0);glBegin(GL_TRIANGLES);glVertex2i(260,520);glColor3f(1.0 , 1.0 , 1.0);glVertex2i(298,480);glColor3f(1.0 , 1.0 , 0.9);glVertex2i(320,520); glEnd(); //balon glBegin(GL_POLYGON);glVertex2i(520,100);glVertex2i(520,140);glVertex2i(480,180);

glVertex2i(440,180);glVertex2i(400,140);glVertex2i(400,100);glVertex2i(440,60);glVertex2i(480,60);glEnd();

glBegin(GL_POLYGON);glVertex2i(0,0);glVertex2i(0,40);glVertex2i(1440,40);glVertex2i(1440,0);

glEnd();

glFlush(); //forza dibujo}

int main (int argc, char** argv) //metodo main{glutInit(&argc, argv); //incializa GLUTglutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA); //establece el modo de visualizaciónglutInitWindowSize(500,500); //tamaño de la ventanaglutInitWindowPosition(0,0); //posicion inicial de la ventanaglutCreateWindow("MI primer ventana"); //nombre de la ventanainicializa();glutDisplayFunc(dibuja); //Envia los graficos a la ventana de visualizaciónglutMainLoop(); //muestra todo y esperareturn 0; //retorna un valor de cero}

Page 46: Proyecto de rene

GRUPO: 303 T/M ESPECIALIDAD: INFORMATICA