Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Proyecto de rene

268 views

Published on

Published in: Education
  • Be the first to comment

Proyecto de rene

  1. 1. GRUPO: 303 T/M ESPECIALIDAD:INFORMATICA CECYTEMTECÁMACUTILIZACIÓN DE DISEÑO PARA EL MANEJO DE GRÁFICOALUMNAS:VERONICARODRIGUEZ VICENTE & AMANDA MARISOL MARTINEZ LUNAPROFESOR:RENE DOMINGUEZ ESCALONA
  2. 2. GRUPO: 303 T/M ESPECIALIDAD:INFORMATICAINTRODUCCIÓN:OpenGL (Open Graphics Library) es una especificación estándar que define una API multilenguajey multiplataforma para escribir aplicaciones que produzcan gráficos 2D y 3D. La interfaz consisteen más de 250 funciones diferentes que pueden usarse para dibujar escenas tridimensionalescomplejas a partir de primitivas geométricas simples, tales como puntos, líneas y triángulos. Fue 2desarrollada originalmente por Silicón Graphics Inc. (SGI) en 1992 y se usa ampliamenteen CAD, realidad virtual, representación científica, visualización de información y simulación devuelo. También se usa en desarrollo de videojuegos, donde compite con Direct3D enplataformas 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 ypolígonos, y convertirlas en píxeles. Este proceso es realizado por una pipeline gráfica conocida 8comoMáquina de estados de OpenGL. La mayor parte de los comandos de OpenGL bien emitenprimitivas a la pipeline gráfica o bien configuran cómo la pipeline procesa dichas primitivas. Hastala aparición de la versión 2.0 cada etapa de la pipeline ejecutaba una función prefijada, resultandopoco configurable. A partir de la versión 2.0 algunas etapas son programables usando un lenguajede programación llamadoGLSL.OpenGL es una API basada en procedimientos de bajo nivel que requiere que el programador dictelos 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 losdetalles para representarla. El diseño de bajo nivel de OpenGL requiere que los programadoresconozcan en profundidad la pipeline gráfica, a cambio de darles libertad para implementaralgoritmos gráficos novedosos.OpenGL ha influido en el desarrollo de las tarjetas gráficas, promocionando un nivel básico defuncionalidad que actualmente es común en el hardware comercial; algunas de esascontribuciones 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.
  3. 3. 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
  4. 4. GRUPO: 303 T/M ESPECIALIDAD:INFORMATICA
  5. 5. GRUPO: 303 T/M ESPECIALIDAD:INFORMATICANOMBRE DE LA PRÁCTICA: “ANIMACIÓN”PRESENTACIÓN:
  6. 6. GRUPO: 303 T/M ESPECIALIDAD:INFORMATICACÓDIGO:#include <unistd.h>#include <GL/glut.h> //arriba#include <GL/gl.h> if(x==500 && y==500 && a>=1 && a<500){#include <math.h> circulo (600-1*a,600,40);int x=1, y=1, a=1, h=1; glFlush();void inicializa(void) a++;{ }glClearColor(1.0,0.6,0.5,0.0);glMatrixMode(GL_PROJECTION); //izquierdaglLoadIdentity(); if(x==500 && y==500 && a==500 && h>=1gluOrtho2D(0.0, 800.0, 0.0, 800.0);// el ancho y && h<500){largo de nuestra pantalla circulo(100,600-1*h,40);} glFlush(); h++;void circulo(int x, int y, int radio) }{ //Reptir int angulo=0; if(h==500){ glBegin(GL_TRIANGLE_FAN); x=1;glColor3f (1.0, 0.3, 0.5); y=1; glVertex2f(x,y); a=1; glColor3f(0,0.0,0.0); h=1; for (angulo=0;angulo<=360; }angulo+=6){ glVertex2f(x + sin(angulo) * radio, y+ cos(angulo) * radio);} glEnd(); glutSwapBuffers();} }void dibuja(void){glClear(GL_COLOR_BUFFER_BIT | int main (int argc, char** argv)GL_DEPTH_BUFFER_BIT); {//abajo glutInit(&argc, argv);if(x>=1 && x<500){ glutInitDisplayMode(GLUT_DOUBLE | circulo(100+1*x,100,40); GLUT_RGBA| GLUT_DEPTH); glFlush(); glutInitWindowSize(800,800); x++; glutInitWindowPosition(10,10); } glutCreateWindow("Ventana"); inicializa();//derecha glutDisplayFunc(dibuja);if(x==500 && y>=1 && y<500){ glutIdleFunc(dibuja); circulo (600,100+1*y,40); glutMainLoop(); glFlush(); return 0; y++; } }
  7. 7. GRUPO: 303 T/M ESPECIALIDAD:INFORMATICANOMBRE DE LA PRÁCTICA: “CASA”CÓDIGO://Los puntos en toda la pantalla glVertex2i(0,289);#include <GL/glut.h> glVertex2i(1000,289);#include <GL/gl.h> glVertex2i(1000,280); glVertex2i(0,280);void inicializa(void){ //pastoglClearColor (3.0, 1.0, 1.0, 1.0); glColor3f (0.3, 0.5, 0.2);glMatrixMode(GL_PROJECTION); glVertex2i(0,240);glLoadIdentity(); glVertex2i(1000,240);gluOrtho2D(0.0,1000.0,0.0,600.0); glVertex2i(1000,120);} glVertex2i(0,120); //banquetavoid dibuja(void) glColor3f (0.5, 0.5, 0.5);{ glVertex2i(0,120); int i,j=0; glVertex2i(1000,120); glVertex2i(1000,90);/* borra la pantalla */ glVertex2i(0,90);glClear(GL_COLOR_BUFFER_BIT); glColor3f (1.0, 0.0, 0.0);// Cerca glVertex2i(0,90);for(i=0;i<50;i++){ glVertex2i(1000,90);glBegin(GL_POLYGON); glVertex2i(1000,82);glColor3f (2.0, 0.3, 1.0); glVertex2i(0,82);glVertex2f(0+20*i,292); //calleglVertex2f(5+20*i,300); glColor3f (0.3, 0.3, 0.3);glVertex2f(10+20*i,292); glVertex2i(0,82);glVertex2f(10+20*i,240); glVertex2i(1000,82);glVertex2f(0+20*i,240); glVertex2i(1000,0);glEnd(); glVertex2i(0,0);}glBegin(GL_QUADS); //piedras glColor3f (0.3, 0.6, 0.6);
  8. 8. GRUPO: 303 T/M ESPECIALIDAD:INFORMATICAglVertex2i(105,180); glColor3f (0.3, 0.5, 0.9);glVertex2i(135,180); glVertex2i(90,315);glVertex2i(135,165); glVertex2i(210,315);glVertex2i(105,165); glVertex2i(210,195); glVertex2i(90,195);glVertex2i(165,180);glVertex2i(195,180); //PuertaglVertex2i(195,165); glColor3f (1.0, 0.5, 1.0);glVertex2i(165,165); glVertex2i(345,300); glVertex2i(405,300);glVertex2i(105,150); glVertex2i(405,195);glVertex2i(135,150); glVertex2i(345,195);glVertex2i(135,135);glVertex2i(105,135); //ColumnasglVertex2i(165,150); glColor3f (0.0, 0.5, 0.3);glVertex2i(195,150); glVertex2i(75,315);glVertex2i(195,135); glVertex2i(90,315);glVertex2i(165,135); glVertex2i(90,195);//entrada glVertex2i(75,195);glVertex2i(345,195);glVertex2i(405,195); glVertex2i(210,330);glVertex2i(405,120); glVertex2i(540,330);glVertex2i(345,120); glVertex2i(540,315); glVertex2i(210,315);// CasaglColor3f (0.5, 0.0, 0.7);glVertex2i(210,450); glVertex2i(330,435);glVertex2i(540,450); glVertex2i(345,435);glVertex2i(540,195); glVertex2i(345,195);glVertex2i(210,195); glVertex2i(330,195);// Techo casaglColor3f (0.3, 0.5, 0.3); glVertex2i(405,435);glVertex2i(210,495); glVertex2i(420,435);glVertex2i(540,495); glVertex2i(420,195);glVertex2i(585,450); glVertex2i(405,195);glVertex2i(165,450);// Techo cochera //Ventanas iglVertex2i(75,345); glColor3f (0.5, 0.7, 1.0);glVertex2i(210,345); glVertex2i(240,435);glVertex2i(210,315); glVertex2i(300,435);glVertex2i(60,315); glVertex2i(300,375);//Cortina glVertex2i(240,375);
  9. 9. GRUPO: 303 T/M ESPECIALIDAD:INFORMATICA glBegin(GL_TRIANGLES);glVertex2i(240,300); // Techo balconglVertex2i(300,300); glColor3f (0.5, 1.0, 0.5);glVertex2i(300,240); glVertex2i(375,480);glVertex2i(240,240); glVertex2i(435,435); glVertex2i(315,435);//Ventanas d glEnd();glVertex2i(450,435); //arbolesglVertex2i(510,435); glLineWidth (4);glVertex2i(510,375); glBegin(GL_LINES);glVertex2i(450,375); glColor3f (0.0, 0.7, 0.0); for(i=0;i<32;i++){glVertex2i(450,300); glVertex2i(680-3*i,540-10*j);glVertex2i(510,300); glVertex2i(690+3*i,540-10*j);glVertex2i(510,240); glVertex2i(685-3*i,535-10*j);glVertex2i(450,240); glVertex2i(695+3*i,535-10*j);//Ventanas balconglVertex2i(345,435); glVertex2i(885-3*i,540-10*j);glVertex2i(405,435); glVertex2i(895+3*i,540-10*j);glVertex2i(405,330); glVertex2i(890-3*i,535-10*j);glVertex2i(345,330); glVertex2i(900+3*i,535-10*j); j=j+1;//Ventanas puerta }glVertex2i(360,285); glEnd();glVertex2i(390,285);glVertex2i(390,210); //Linea CalleglVertex2i(360,210); glLineWidth (4); glColor3f (0.0, 0.0, 0.0);//Tallos glBegin(GL_LINES);glColor3f (0.5, 1.0, 0.5);glVertex2i(670,225); for(i=0;i<50;i++){glVertex2i(700,225); glVertex2i(0+120*i,41);glVertex2i(700,150); glVertex2i(90+120*i,41);glVertex2i(670,150); }glVertex2i(875,225); //BarandalglVertex2i(905,225); glVertex2i(344,375);glVertex2i(905,150); glVertex2i(406,375);glVertex2i(875,150); for(i=0;i<7;i++){ glVertex2i(345+10*i,375); glVertex2i(345+10*i,330);glEnd(); } //Divicion Ventana
  10. 10. GRUPO: 303 T/M ESPECIALIDAD:INFORMATICAglVertex2i(240,262); glVertex2i(450,435);glVertex2i(300,262); glVertex2i(510,435);glVertex2i(240,397); glVertex2i(510,375);glVertex2i(300,397); glVertex2i(450,375);glVertex2i(450,397); glEnd();glVertex2i(510,397); glBegin(GL_LINE_LOOP);glVertex2i(450,262); glVertex2i(450,300);glVertex2i(510,262); glVertex2i(510,300);glVertex2i(375,434); glVertex2i(510,240);glVertex2i(375,375); glVertex2i(450,240);glVertex2i(270,397);glVertex2i(270,375); glEnd();glVertex2i(270,262); //ChapaglVertex2i(270,240); glPointSize(4); glColor3f (0.5, 1.0, 0.5);glVertex2i(480,397); glBegin(GL_POINTS);glVertex2i(480,375); glVertex2i(352,247);glVertex2i(480,262); glVertex2i(352,245);glVertex2i(480,240); glEnd();glEnd(); glFlush(); }//Contorno ventanas int main(int argc, char** argv)glBegin(GL_LINE_LOOP); {glVertex2i(240,435); glutInit(&argc, argv);glVertex2i(300,435); glutInitDisplayMode(GLUT_SINGLE |glVertex2i(300,375); GLUT_RGBA);glVertex2i(240,375); glutInitWindowSize(1000,600);glEnd(); glutInitWindowPosition(100,100);glBegin(GL_LINE_LOOP); glutCreateWindow("My Home");glVertex2i(240,300); inicializa();glVertex2i(300,300); glutDisplayFunc(dibuja);glVertex2i(300,240); glutMainLoop();glVertex2i(240,240); return 0;glEnd(); }glBegin(GL_LINE_LOOP);
  11. 11. GRUPO: 303 T/M ESPECIALIDAD:INFORMATICANOMBRE DE LA PRÁCTICA: “ESTRELLA”PRESENTACIÓN:
  12. 12. GRUPO: 303 T/M ESPECIALIDAD:INFORMATICACODIGO://mi primer ventana#include <GL/glut.h> glBegin(GL_LINES);#include <GL/gl.h> glVertex2i(100,300);#include <GL/glu.h> glVertex2i(300,100);void inicializa(void) glBegin(GL_LINES);{ glVertex2i(350,300);glClearColor(1.0,0.8,1.0,0.0); //color de glVertex2i(100,100);fondoglMatrixMode(GL_PROJECTION); glEnd();//Modo de proyeccion glFlush(); //forza dibujoglLoadIdentity(); //Establece los }parametros de proyecciongluOrtho2D(0.0, 1000.0, 0.0, 1000.0);//vista ortogonal int main (int argc, char** argv) //metodo} main {void dibuja(void) //funcion glutInit(&argc, argv);dibuja //incializa GLUT{ glutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA); //establece el modo deglClear(GL_COLOR_BUFFER_BIT); visualizaciónglColor3f(0.0 ,0.0 ,0.0 ); glutInitWindowSize(475,475);glPointSize(50); //tamaño de la ventana glutInitWindowPosition(0,0);glBegin(GL_LINES); //posicion inicial de la ventanaglVertex2i(350,300); glutCreateWindow("ESTRELLA");glVertex2i(100,300); //nombre de la ventana inicializa();glBegin(GL_LINES);glVertex2i(300,100); glutDisplayFunc(dibuja); //EnviaglVertex2i(200,400); los graficos a la ventana de visualización glutMainLoop(); //muestraglBegin(GL_LINES); todo y esperaglVertex2i(200,400); return 0;glVertex2i(100,100);
  13. 13. GRUPO: 303 T/M ESPECIALIDAD:INFORMATICANOMBRE DE LA PRÁCTICA: “SISTEMA SOLAR”PRESENTACIÓN:
  14. 14. GRUPO: 303 T/M ESPECIALIDAD:INFORMATICACÓDIGO:#include <unistd.h> {#include <GL/glut.h> glClear(GL_COLOR_BUFFER_BIT |#include <GL/gl.h> GL_DEPTH_BUFFER_BIT);//esto#include <math.h> glColor3f (1.0, 1.0, 0.0);int rad=100; circulo( 500,500,30); //funcion circulodouble ang=0, a=0, l=0, d=0, o=0, t=0, e=0, //funcion circuloq=0, m=0; circuloc (500,500,1,50);void inicializa(void) glColor3f (1.5, 0.8, 0.7);{ circulo( 500+ sin(a) * 50,500 - cos(a) * 50,10);glClearColor(0.3,0.0,0.0,0.0); circuloc (500,500,1,50);glMatrixMode(GL_PROJECTION); glColor3f (1.0, 0.0, 0.6);glLoadIdentity(); circulo( 500+ sin(l) * 100,500 + cos(l) *gluOrtho2D(0.0, 1000.0, 0.0, 1000.0);// el 100,20);ancho y largo de nuestra pantalla circuloc (500,500,1,100);} glColor3f (0.6, 0.4, 0.5); circulo( 500+ sin(d) * 150,500 - cos(d) *void circulo(int x, int y, int radio) 150,15);{ circuloc (500,500,1,150); int angulo=0; glColor3f (0.8, 1.0, 0.5); glBegin(GL_TRIANGLE_FAN); circulo( 500+ sin(o) * 200,500 + cos(o) * for (angulo=0;angulo<=360; 200,30);angulo++){ glVertex2f(x + sin(angulo) * radio, circuloc (500,500,1,200);y + cos(angulo) * radio);} glColor3f (0.5, 0.5, 0.5); glEnd(); circulo( 500+ sin(t) * 250,500 - cos(t) * } 250,25);void circuloc(int x, int y, int t, int radio) circuloc (500,500,1,250);{ glColor3f (1.0, 0.3, 0.7); int angulo=0; circulo( 500+ sin(e) * 300,500 + cos(e) * glPointSize(t); 300,30); glBegin(GL_POINTS); circuloc (500,500,1,300);//glColor3f (0.4, 0.3, 0.6); glColor3f (0.5, 0.2, 1.0); glVertex2f(x,y); circulo( 500+ sin(q) * 350,500 - cos(q) * //glColor3f(0,0.0,0.0); 350,20); for (angulo=0;angulo<=360; circuloc (500,500,1,350);angulo+=1){ glVertex2f(x + sin(angulo) * glColor3f (0.5, 1.0, 0.8);radio, y + cos(angulo) * radio);} circulo( 500+ sin(m) * 400,500 + cos(m) * glEnd(); 400,15);} circuloc (500,500,1,400);void dibuja(void) glColor3f (0.0, 0.0, 1.0);
  15. 15. GRUPO: 303 T/M ESPECIALIDAD:INFORMATICAcirculo( 500+ sin(ang) * 450,500 + cos(ang) * glutSwapBuffers(); //y esto450,30); }circuloc (500,500,1,450);glColor3f (0.0, 0.0, 1.0);a=a+0.02; int main (int argc, char** argv)l=l+0.03; {d=d+0.04; glutInit(&argc, argv);o=o+0.05; glutInitDisplayMode(GLUT_DOUBLE |t=t+0.06; GLUT_RGBA| GLUT_DEPTH);//esto tambiene=t+0.07; glutInitWindowSize(1000,1000);q=q+0.08; glutInitWindowPosition(10,10);m=m+0.09; glutCreateWindow("Ventana");ang=ang+0.01; //velocidad entre mas grande inicializa();mas rapido y entre menos mas lento glutDisplayFunc(dibuja);for(int j=1;j<=10000000;j++){}//pausa glutIdleFunc(dibuja);//esto es lo que cambiaif(ang==360){ang=0;}// se repite glutMainLoop();idefinidamente return 0;glFlush(); //forzar dibujado }
  16. 16. GRUPO: 303 T/M ESPECIALIDAD:INFORMATICANOMBRE DE LA PRÁCTICA: “MOVIMIENTO EN 8”PRESENTACIÓN:
  17. 17. GRUPO: 303 T/M ESPECIALIDAD:INFORMATICACODIGO:#include <unistd.h> int x=1, x2=1,y=1;#include <GL/glut.h> double a=6.15, b=6.15;#include <GL/gl.h> void inicializa(void){#include <math.h> glClearColor(0.5,0.6,1.0,0.9);
  18. 18. GRUPO: 303 T/M ESPECIALIDAD:INFORMATICAglMatrixMode(GL_PROJECTION); if(a>=6.15 && a<=12.41){glLoadIdentity(); circulo(300+ sin (a)*60,300- cos(a)*60,10);gluOrtho2D(0.0, 700.0, 0.0, 700.0);// el a=a+0.02;ancho y largo de nuestra pantalla }} else{ circulo(300 + sin (b) *60,180-cos(b)*-60,10);void circulo(int x, int y, int radio){ b=b + 0.2; int angulo=0; if(b>12.4){a=6.15;b=6.15;} glBegin(GL_TRIANGLE_FAN); for(int j=0; j<=10000000; j++) {} glVertex2f(x,y); } for (angulo=0;angulo<=360;angulo+=6){ glVertex2f(x + sin(angulo) * glFlush();radio, y + cos(angulo) * radio);} glutSwapBuffers(); glEnd();} } void dibuja(void){glClear(GL_COLOR_BUFFER_BIT | int main (int argc, char** argv)GL_DEPTH_BUFFER_BIT); {glColor3f(0.5, 0.0, 1.0); glutInit(&argc, argv);circulo(300, 300, 70); glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGBA| GLUT_DEPTH);circulo(300,180,70); glutInitWindowSize(700,700);glColor3f(1.0, 0.0, 0.8); glutInitWindowPosition(10,10); glutCreateWindow("Ventana");circulo(300,300,50); inicializa(); glutDisplayFunc(dibuja);circulo(300,180,50); glutIdleFunc(dibuja); glutMainLoop();glColor3f(1.0,0.9,2.0); return 0; }
  19. 19. GRUPO: 303 T/M ESPECIALIDAD:INFORMATICANOMBRE DE LA PRÁCTICA: “CUBO RELLENO”PRESENTACIÓN:
  20. 20. GRUPO: 303 T/M ESPECIALIDAD:INFORMATICACÓDIGO://mi primer ventana glLineWidth(l);#include <GL/glut.h> glBegin(GL_LINES);#include <GL/gl.h> glVertex2f(x,y);void inicializa(void) glVertex2f(x+t,y);{ glVertex2f(x+t,y);glClearColor(1.0,1.0,1.0,0.0); //color de glVertex2f(x+t,y+t);fondo glVertex2f(x+t,y+t);glMatrixMode(GL_PROJECTION); glVertex2f(x,y+t);//Modo de proyeccion glVertex2f(x,y);glLoadIdentity(); //Establece losparametros de proyecciongluOrtho2D(0.0, 500.0, 0.0, 500.0); //vista glVertex2f(x,y+t);ortogonal glVertex2f(x+t,y+t);} glVertex2f(x+t,y+t); glVertex2f(x+t+(t*a),y+t+(t*b));void cubo (int x, int y,int t,int l){ glVertex2f(x+t+(t*a),y+t+(t*b)); double a=.8,b=.6; glVertex2f(x+(t*a),y+t+(t*b));glColor3f(1.0 , 1.0 , 0.0); glVertex2f(x,y+t); glBegin(GL_QUADS); glVertex2f(x+t+(t*a),y+t+(t*b));glVertex2f(x,y); glVertex2f(x+(t*a),y+t+(t*b));glVertex2f(x+t,y);glVertex2f(x+t,y+t); glVertex2f(x+t,y+t);glVertex2f(x,y+t); glVertex2f(x+t+(t*a),y+t+(t*b));glColor3f(1.0 , 0.0 , 1.0); glVertex2f(x+t+(t*a),y+t+(t*b));glVertex2f(x,y+t); glVertex2f(x+t+(t*a),y+(t*b));glVertex2f(x+t,y+t); glVertex2f(x+t+(t*a),y+(t*b));glVertex2f(x+t+(t*a),y+t+(t*b)); glVertex2f(x+t,y);glVertex2f(x+(t*a),y+t+(t*b)); glVertex2f(x+t,y+t);glColor3f(1.0 , 0.0 , 0.0); glEnd();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); void dibuja(void) //funcionglEnd(); dibuja {glColor3f(0.0 , 0.0 , 0.0);
  21. 21. GRUPO: 303 T/M ESPECIALIDAD:INFORMATICAglClear(GL_COLOR_BUFFER_BIT); }//borra pantallaglColor3f(1.0 , 0.0 , 0.0); //diagonal derecha for(int i=0;i<=5;i++){// cubo de atras //lineas derechas cubo(405-16*i,185-16*i,20,5);for(int i=0;i<=10;i++){ }//linea derecha, izquierdacubo(200,200+20*i,20,5); ///////////////////////////////////////////////} //////////////////////////////////for(int j=0;j<=9;j++){ // cubo de adelante//lineas acostadas for(int i=0;i<=10;i++){//linea acostada, abajo //lineas derechascubo(220+20*j,200,20,4); cubo(100,100+20*i,20,5);//linea acostada,cubo(220+20*j,400,20,5); }//linea derecha, derecha for(int j=0;j<=9;j++){ //lineas acostadas} cubo(120+20*j,100,20,4);for(int i=0;i<=10;i++){ //dcubo(420,200+20*i,20,5); cubo(120+20*j,300,20,5);} //diagonales//diagonales//diagonal izquierda }for(int i=0;i<=5;i++){ for(int i=0;i<=10;i++){//lineas derechas cubo(320,100+20*i,20,5);cubo(185-16*i,185-16*i,20,5); }}//diagonal derecha glFlush(); //forza dibujofor(int i=0;i<=5;i++){ }//lineas derechascubo(185-16*i,185-16*i,20,5); int main (int argc, char** argv) //metodo} main//diagonal derecha {for(int i=0;i<=5;i++){ glutInit(&argc, argv);//lineas derechas //incializa GLUTcubo(405-16*i,387-16*i,20,5); glutInitDisplayMode(GLUT_SINGLE |} GLUT_RGBA); //establece el modo de//diagonal derecha visualizaciónfor(int i=0;i<=5;i++){ glutInitWindowSize(500,500);//lineas derechas //tamaño de la ventanacubo(185-16*i,387-16*i,20,5);
  22. 22. GRUPO: 303 T/M ESPECIALIDAD:INFORMATICAglutInitWindowPosition(100,100); glutDisplayFunc(dibuja); //Envia//posicion inicial de la ventana los graficos a la ventana de visualizaciónglutCreateWindow("Ventana"); glutMainLoop(); //muestra//nombre de la ventana todo y esperainicializa(); return 0; //retorna un valor de ceroNOMBRE DE LA PRÁCTICA: “AJEDREZ”PRESENTACIÓN:
  23. 23. GRUPO: 303 T/M ESPECIALIDAD:INFORMATICACÓDIGO://mi primer ventana #include <GL/gl.h>#include <GL/glut.h> #include <GL/glu.h>
  24. 24. GRUPO: 303 T/M ESPECIALIDAD:INFORMATICA glVertex2i(700,500);void inicializa(void) glVertex2i(800,600);{ glVertex2i(100,700);glClearColor(1.0,0.8,1.0,0.0); //color de glVertex2i(200,800);fondo glVertex2i(300,700);glMatrixMode(GL_PROJECTION); glVertex2i(400,800);//Modo de proyeccion glVertex2i(500,700);glLoadIdentity(); //Establece los glVertex2i(600,800);parametros de proyeccion glVertex2i(700,700);gluOrtho2D(0.0, 1000.0, 0.0, 1000.0); glVertex2i(800,800);//vista ortogonal glEnd();} glColor3f(0.0 ,0.0 ,0.0 ); glPointSize(50);void dibuja(void) //funcion glBegin(GL_POINTS);dibuja glVertex2i(200,100);{ glVertex2i(300,200); glVertex2i(400,100);glClear(GL_COLOR_BUFFER_BIT); glVertex2i(500,200);glColor3f(1.0 ,1.0 ,1.0 ); glVertex2i(600,100);glPointSize(50); glVertex2i(700,200);glBegin(GL_POINTS); glVertex2i(800,100);glVertex2i(100,100); glVertex2i(100,200);glVertex2i(200,200); glVertex2i(200,300);glVertex2i(300,100); glVertex2i(300,400);glVertex2i(400,200); glVertex2i(400,300);glVertex2i(500,100); glVertex2i(500,400);glVertex2i(600,200); glVertex2i(600,300);glVertex2i(700,100); glVertex2i(700,400);glVertex2i(800,200); glVertex2i(800,300);glVertex2i(100,300); glVertex2i(100,400);glVertex2i(200,400); glVertex2i(200,500);glVertex2i(300,300); glVertex2i(300,600);glVertex2i(400,400); glVertex2i(400,500);glVertex2i(500,300); glVertex2i(500,600);glVertex2i(600,400); glVertex2i(600,500);glVertex2i(700,300); glVertex2i(700,600);glVertex2i(800,400); glVertex2i(800,500);glVertex2i(100,500); glVertex2i(100,600);glVertex2i(200,600); glVertex2i(200,700);glVertex2i(300,500); glVertex2i(300,800);glVertex2i(400,600); glVertex2i(400,700);glVertex2i(500,500); glVertex2i(500,800);glVertex2i(600,600); glVertex2i(600,700);
  25. 25. GRUPO: 303 T/M ESPECIALIDAD:INFORMATICAglVertex2i(700,800); glutInitDisplayMode(GLUT_SINGLE |glVertex2i(800,700); GLUT_RGBA); //establece el modo deglVertex2i(100,800); visualización glutInitWindowSize(475,475);glEnd(); //tamaño de la ventanaglColor3f(1.0 ,1.0 ,1.0 ); glutInitWindowPosition(0,0);glPointSize(50); //posicion inicial de la ventanaglBegin(GL_LINE); glutCreateWindow("ajedrez");glVertex2i(500,900); //nombre de la ventanaglVertex2i(500,100); inicializa();glEnd();glFlush(); //forza dibujo glutDisplayFunc(dibuja); //Envia} los graficos a la ventana de visualización glutMainLoop(); //muestra todo y esperaint main (int argc, char** argv) //metodo return 0; //retorna unmain valor de cero{ }glutInit(&argc, argv);//incializa GLUT
  26. 26. GRUPO: 303 T/M ESPECIALIDAD:INFORMATICANOMBRE DE LA PRÁCTICA: “CUBO CON CUBITOS”PRESENTACIÓN:
  27. 27. GRUPO: 303 T/M ESPECIALIDAD:INFORMATICACÓDIGO://mi primer ventana glLineWidth(l);#include <GL/glut.h> glBegin(GL_LINES);#include <GL/gl.h> glVertex2f(x,y);void inicializa(void) glVertex2f(x+t,y);{ glVertex2f(x+t,y);glClearColor(1.0,1.0,1.0,0.0); //color de glVertex2f(x+t,y+t);fondo glVertex2f(x+t,y+t);glMatrixMode(GL_PROJECTION); glVertex2f(x,y+t);//Modo de proyeccion glVertex2f(x,y);glLoadIdentity(); //Establece losparametros de proyecciongluOrtho2D(0.0, 500.0, 0.0, 500.0); //vista glVertex2f(x,y+t);ortogonal glVertex2f(x+t,y+t);} glVertex2f(x+t,y+t); glVertex2f(x+t+(t*a),y+t+(t*b));void cubo (int x, int y,int t,int l){ glVertex2f(x+t+(t*a),y+t+(t*b)); double a=.8,b=.6; glVertex2f(x+(t*a),y+t+(t*b));glColor3f(1.0 , 1.0 , 0.0); glVertex2f(x,y+t); glBegin(GL_QUADS); glVertex2f(x+t+(t*a),y+t+(t*b));glVertex2f(x,y); glVertex2f(x+(t*a),y+t+(t*b));glVertex2f(x+t,y);glVertex2f(x+t,y+t); glVertex2f(x+t,y+t);glVertex2f(x,y+t); glVertex2f(x+t+(t*a),y+t+(t*b));glColor3f(1.0 , 0.0 , 1.0); glVertex2f(x+t+(t*a),y+t+(t*b));glVertex2f(x,y+t); glVertex2f(x+t+(t*a),y+(t*b));glVertex2f(x+t,y+t); glVertex2f(x+t+(t*a),y+(t*b));glVertex2f(x+t+(t*a),y+t+(t*b)); glVertex2f(x+t,y);glVertex2f(x+(t*a),y+t+(t*b)); glVertex2f(x+t,y+t);glColor3f(1.0 , 0.0 , 0.0); glEnd();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); void dibuja(void) //funcionglEnd(); dibuja {glColor3f(0.0 , 0.0 , 0.0);
  28. 28. GRUPO: 303 T/M ESPECIALIDAD:INFORMATICAglClear(GL_COLOR_BUFFER_BIT); }//borra pantallaglColor3f(1.0 , 0.0 , 0.0); //diagonal derecha for(int i=0;i<=5;i++){// cubo de atras //lineas derechas cubo(405-16*i,185-16*i,20,5);for(int i=0;i<=10;i++){ }//linea derecha, izquierdacubo(200,200+20*i,20,5); ///////////////////////////////////////////////} //////////////////////////////////for(int j=0;j<=9;j++){ // cubo de adelante//lineas acostadas for(int i=0;i<=10;i++){//linea acostada, abajo //lineas derechascubo(220+20*j,200,20,4); cubo(100,100+20*i,20,5);//linea acostada,cubo(220+20*j,400,20,5); }//linea derecha, derecha for(int j=0;j<=9;j++){ //lineas acostadas} cubo(120+20*j,100,20,4);for(int i=0;i<=10;i++){ //dcubo(420,200+20*i,20,5); cubo(120+20*j,300,20,5);} //diagonales//diagonales//diagonal izquierda }for(int i=0;i<=5;i++){ for(int i=0;i<=10;i++){//lineas derechas cubo(320,100+20*i,20,5);cubo(185-16*i,185-16*i,20,5); }}//diagonal derecha glFlush(); //forza dibujofor(int i=0;i<=5;i++){ }//lineas derechascubo(185-16*i,185-16*i,20,5); int main (int argc, char** argv) //metodo} main//diagonal derecha {for(int i=0;i<=5;i++){ glutInit(&argc, argv);//lineas derechas //incializa GLUTcubo(405-16*i,387-16*i,20,5); glutInitDisplayMode(GLUT_SINGLE |} GLUT_RGBA); //establece el modo de//diagonal derecha visualizaciónfor(int i=0;i<=5;i++){ glutInitWindowSize(500,500);//lineas derechas //tamaño de la ventanacubo(185-16*i,387-16*i,20,5);
  29. 29. GRUPO: 303 T/M ESPECIALIDAD:INFORMATICAglutInitWindowPosition(100,100); glutMainLoop(); //muestra//posicion inicial de la ventana todo y esperaglutCreateWindow("Ventana"); return 0; //retorna un//nombre de la ventana valor de ceroinicializa(); }glutDisplayFunc(dibuja); //Envialos graficos a la ventana de visualizaciónNOMBRE DE LA PRÁCTICA: “PIRAMIDE”PRESENTACIÓN:
  30. 30. GRUPO: 303 T/M ESPECIALIDAD:INFORMATICA
  31. 31. GRUPO: 303 T/M ESPECIALIDAD:INFORMATICACÓDIGO://mi primer ventana#include <GL/glut.h> glBegin(GL_LINES);#include <GL/gl.h> glVertex2i(400,400);#include <GL/glu.h> glVertex2i(150,150);void inicializa(void) glBegin(GL_LINES);{ glVertex2i(600,400);glClearColor(1.0,1.9,0.2,1.0); //color de glVertex2i(150,850);fondoglMatrixMode(GL_PROJECTION); glBegin(GL_LINES);//Modo de proyeccion glVertex2i(600,400);glLoadIdentity(); //Establece los glVertex2i(850,150);parametros de proyecciongluOrtho2D(0.0, 1050.0, 0.0, 1000.0);//vista ortogonal } glEnd();} glFlush(); //forza dibujovoid dibuja(void) //funciondibuja }{ int main (int argc, char** argv) //metodoint i,a=20; mainglClear(GL_COLOR_BUFFER_BIT); {glColor3f(1.0 ,1.0 ,1.0 ); glutInit(&argc, argv);glLineWidth(4); //incializa GLUTglBegin(GL_LINES); glutInitDisplayMode(GLUT_SINGLE |for(i=0;i<=12;i++){ GLUT_RGBA); //establece el modo deglVertex2i(400-a*i,400-a*i); visualizaciónglVertex2i(600+a*i,400-a*i); glutInitWindowSize(450,450);glVertex2i(600+a*i,400-a*i); //tamaño de la ventanaglVertex2i(600+a*i,600+a*i); glutInitWindowPosition(0,0);glVertex2i(600+a*i,600+a*i); //posicion inicial de la ventanaglVertex2i(400-a*i,600+a*i); glutCreateWindow("piramide");glVertex2i(400-a*i,600+a*i); //nombre de la ventanaglVertex2i(400-a*i,400-a*i); inicializa();//diagonalesglBegin(GL_LINES); glutDisplayFunc(dibuja); //EnviaglVertex2i(400,400); los graficos a la ventana de visualizaciónglVertex2i(850,850);
  32. 32. GRUPO: 303 T/M ESPECIALIDAD:INFORMATICAglutMainLoop(); //muestra return 0; //retorna untodo y espera valor de cero }NOMBRE DE LA PRÁCTICA: “SEMAFORO”CODIGO://mi primer ventana void circulo(int x, int y, int radio)#include <GL/glut.h> {#include <GL/gl.h> int angulo=0;#include <math.h> glBegin(GL_TRIANGLE_FAN);void inicializa(void) // glColor3f (1.0, 0.0, 1.0);{ glVertex2f(x,y);glClearColor(1.0,1.0,1.0,0.0); //color defondo for (angulo=0;angulo<=360;glMatrixMode(GL_PROJECTION); angulo+=1){ glVertex2f(x + sin(angulo) *//Modo de proyeccion radio, y + cos(angulo) * radio);}glLoadIdentity(); //Establece los glEnd();parametros de proyeccion }gluOrtho2D(0.0, 500.0, 0.0, 500.0); //vistaortogonal void dibuja(void) //funcion} dibujavoid circuloc(int x, int y, int t, int radio) {{ glClear(GL_COLOR_BUFFER_BIT); int angulo=0; glColor3f(0.0,1.0,0.0); //borra pantalla glPointSize(t); glBegin(GL_POINTS); circuloc(250,250,5,80);//glColor3f (1.0, 0.0, 1.0); glFlush(); //forza dibujo glVertex2f(x,y); } //glColor3f(0,0.0,0.0); for (angulo=0;angulo<=360;angulo+=1){ glVertex2f(x + sin(angulo) * int main (int argc, char** argv) //metodoradio, y + cos(angulo) * radio);} main glEnd(); {} glutInit(&argc, argv); //incializa GLUT
  33. 33. GRUPO: 303 T/M ESPECIALIDAD:INFORMATICAglutInitDisplayMode(GLUT_SINGLE | glutCreateWindow("Ventana");GLUT_RGBA); //establece el modo de //nombre de la ventanavisualización inicializa();glutInitWindowSize(500,500); glutDisplayFunc(dibuja); //Envia//tamaño de la ventana los graficos a la ventana de visualizaciónglutInitWindowPosition(100,100); glutMainLoop(); //muestra//posicion inicial de la ventana todo y espera return 0; //retornaun valor de cero}
  34. 34. GRUPO: 303 T/M ESPECIALIDAD:INFORMATICANOMBRE DE LA PRÁCTICA: “MUÑECO”PRESENTACIÓN:
  35. 35. GRUPO: 303 T/M ESPECIALIDAD:INFORMATICACÓDIGO://mi primer ventana#include <GL/glut.h> for (angulo=0;angulo<=360;#include <GL/gl.h> angulo+=1){ glVertex2f(x + sin(angulo) *#include <GL/glu.h> radio, y + cos(angulo) * radio);}#include <math.h>void inicializa(void){ }glClearColor(0.5,0.3,1.0,0.0); //color de void dibuja(void) //funcionfondo dibujaglMatrixMode(GL_PROJECTION); {//Modo de proyeccion glClear(GL_COLOR_BUFFER_BIT);glLoadIdentity(); //Establece los //borra pantallaparametros de proyeccion // pie izquierdogluOrtho2D(0.0, 1000.0, 0.0, 1000.0); glBegin(GL_QUADS);//vista ortogonal glColor3f(0.0,0.0,0.0);} glVertex2i(200,100);void circuloc(int x, int y, int t, int radio) glVertex2i(300,100);{ glVertex2i(300,150); int angulo=0; glVertex2i(250,150); glPointSize(t); // pie derecho glBegin(GL_POINTS); glColor3f(0.0,0.0,0.0);//glColor3f (1.0, 0.0, 1.0); glVertex2i(450,100); glVertex2f(x,y); glVertex2i(450,150); //glColor3f(0,0.0,0.0); glVertex2i(500,150); for (angulo=0;angulo<=360; glVertex2i(550,100);angulo+=1){ glVertex2f(x + sin(angulo) * // pantalonradio, y + cos(angulo) * radio);} glColor3f(1.0,1.,1.0); glEnd(); glVertex2i(275,250);} glVertex2i(300,325); glVertex2i(450,325);void circulo(int x, int y, int radio) glVertex2i(475,250);{ int angulo=0; glColor3f(1.0,1.0,1.0); glBegin(GL_TRIANGLE_FAN); glVertex2i(250,150);// glColor3f (1.0, 0.0, 1.0); glVertex2i(275,250); glVertex2f(x,y); glVertex2i(375,250);
  36. 36. GRUPO: 303 T/M ESPECIALIDAD:INFORMATICAglVertex2i(300,150); glVertex2i(210,450); glVertex2i(230,450);glColor3f(1.0,1.0,1.0); glVertex2i(220,375);glVertex2i(375,250); // mano derechaglVertex2i(475,250); glVertex2i(510,375);glVertex2i(500,150); glVertex2i(510,450);glVertex2i(450,150); glVertex2i(530,450);// cinturon glVertex2i(530,375);glColor3f(0.0,1.0,0.0); // botones de la camisaglVertex2i(300,325); glColor3f(0.5,0.2,0.0);glVertex2i(300,350); glVertex2i(350,525);glVertex2i(450,350); glVertex2i(350,550);glVertex2i(450,325); glVertex2i(400,550); glVertex2i(400,525);glColor3f(1.0,0.0,0.0);glVertex2i(350,325); glVertex2i(350,475);glVertex2i(350,350); glVertex2i(350,500);glVertex2i(400,350); glVertex2i(400,500);glVertex2i(400,325); glVertex2i(400,475);// camisaglColor3f(0.0,1.0,1.0); glVertex2i(350,425);glVertex2i(300,350); glVertex2i(350,450);glVertex2i(300,600); glVertex2i(400,450);glVertex2i(450,600); glVertex2i(400,425);glVertex2i(450,350);// camisa torax glVertex2i(350,375);glVertex2i(225,550); glVertex2i(350,400);glVertex2i(250,600); glVertex2i(400,400);glVertex2i(500,600); glVertex2i(400,375);glVertex2i(525,550); // cuello// manga izquierda glColor3f(0.9,0.8,0.7);glVertex2i(200,450); glVertex2i(350,600);glVertex2i(225,550); glVertex2i(350,650);glVertex2i(300,550); glVertex2i(400,650);glVertex2i(250,450); glVertex2i(400,600);// manga derecha glEnd();glVertex2i(500,450);glVertex2i(450,550); glBegin(GL_TRIANGLES);glVertex2i(525,550); glColor3f(0.9,0.8,0.7);glVertex2i(550,450); glVertex2i(350,600);// mano izquierda glVertex2i(400,600);glColor3f(0.9,0.8,0.7); glVertex2i(375,550);glVertex2i(200,375); // cabeza circulo
  37. 37. GRUPO: 303 T/M ESPECIALIDAD:INFORMATICAglColor3f(0.9,0.8,0.7); glVertex2i(300,880);circulo(375,750,150); glVertex2i(375,950); glVertex2i(435,890);glEnd(); glVertex2i(490,890);//ojos glVertex2i(510,820);glBegin(GL_QUADS);glColor3f(0.2,0.5,1.0);glVertex2i(300,750); //manos en circuloglVertex2i(350,750); glEnd();glVertex2i(350,800); glBegin(GL_POLYGON);glVertex2i(300,800); glColor3f(0.9,0.8,0.7);glColor3f(0.2,0.5,1.0); circulo(520,375,20);glVertex2i(400,750); glEnd();glVertex2i(450,750); glBegin(GL_POLYGON);glVertex2i(450,800); glColor3f(0.9,0.8,0.7);glVertex2i(400,800); circulo(210,375,20);glEnd();//ojos centro// cabeza circulo glEnd();glColor3f(0.0,0.0,0.0); glFlush(); //forza dibujocirculo(340,780,10); }glEnd();glColor3f(0.0,0.0,0.0);circulo(440,780,10); int main (int argc, char** argv) //metodoglEnd(); main//narizz {glBegin(GL_POLYGON); glutInit(&argc, argv);glColor3f(1.0,0.3,0.5); //incializa GLUTglVertex2i(350,725); glutInitDisplayMode(GLUT_SINGLE |glVertex2i(375,700); GLUT_RGBA); //establece el modo deglVertex2i(400,725); visualizaciónglEnd(); glutInitWindowSize(900,800);//boca //tamaño de la ventanaglLineWidth(5); glutInitWindowPosition(0,0);glBegin(GL_LINES); //posicion inicial de la ventanaglColor3f(1.0,0.3,0.2); glutCreateWindow("MI primer ventana");glVertex2i(300,650); //nombre de la ventanaglVertex2i(450,650); inicializa();glEnd(); glutDisplayFunc(dibuja); //Envia//cabello los graficos a la ventana de visualizaciónglBegin(GL_TRIANGLES); glutMainLoop(); //muestraglColor3f(0.8,0.5,0.2); todo y espera
  38. 38. GRUPO: 303 T/M ESPECIALIDAD:INFORMATICAreturn 0; //retorna un }valor de cero
  39. 39. GRUPO: 303 T/M ESPECIALIDAD:INFORMATICANOMBRE DE LA PRÁCTICA: “OSO”PRESENTACIÓN:
  40. 40. GRUPO: 303 T/M ESPECIALIDAD:INFORMATICACÓDIGO://mi primer ventana for (angulo=0;angulo<=360;#include <GL/glut.h> angulo+=1){ glVertex2f(x + sin(angulo) *#include <GL/gl.h> radio, y + cos(angulo) * radio);}#include <math.h> glEnd();void inicializa(void) }{glClearColor(1.0,1.0,1.0,0.0); //color de void dibuja(void) //funcionfondo dibujaglMatrixMode(GL_PROJECTION); {//Modo de proyeccion glClear(GL_COLOR_BUFFER_BIT);glLoadIdentity(); //Establece los glColor3f(0.6,0.4,0.2); //borra pantallaparametros de proyeccion circulo(200,200,150);gluOrtho2D(0.0, 500.0, 0.0, 500.0); //vista glColor3f(0.6,0.4,0.2);ortogonal //} circulo(300,300,50);void circuloc(int x, int y, int t, int radio) glColor3f(0.6,0.4,0.2);{ // int angulo=0; circulo(100,300,50); glPointSize(t); glColor3f(0.6,0.4,0.2); glBegin(GL_POINTS); ////glColor3f (1.0, 0.0, 1.0); circulo(100,100,50); glVertex2f(x,y); glColor3f(0.6,0.4,0.2); //glColor3f(0,0.0,0.0); // for (angulo=0;angulo<=360; circulo(300,100,50);angulo+=1){ glVertex2f(x + sin(angulo) * glColor3f(0.6,0.4,0.2);radio, y + cos(angulo) * radio);} // glEnd(); circulo(200,400,90);} glColor3f(0.6,0.4,0.2); //bocavoid circulo(int x, int y, int radio) circulo(200,400,10);{ glColor3f(1.0,0.0,0.0); int angulo=0; // glBegin(GL_TRIANGLE_FAN); circulo(200,350,30);// glColor3f (1.0, 0.0, 1.0); glColor3f(0.6,0.4,0.2); glVertex2f(x,y); // circulo(259,480,30);
  41. 41. GRUPO: 303 T/M ESPECIALIDAD:INFORMATICAglColor3f(0.6,0.4,0.2);// glFlush(); //forza dibujocirculo(150,480,30); }glColor3f(0.6,0.4,0.2);//ojos blancos int main (int argc, char** argv) //metodocirculo(150,425,25); mainglColor3f(0.0,0.0,0.0); {circulo(250,425,25); glutInit(&argc, argv);glColor3f(0.0,0.0,0.0); //incializa GLUTcirculo(150,425,25); glutInitDisplayMode(GLUT_SINGLE |glColor3f(0.0,0.0,0.0); GLUT_RGBA); //establece el modo decirculo(150,425,25); visualizaciónglColor3f(0.0,0.0,0.0); glutInitWindowSize(500,500); //tamaño de la ventana//ojos negros glutInitWindowPosition(100,100);circulo(150,425,10); //posicion inicial de la ventanaglColor3f(1.0,1.0,1.0); glutCreateWindow("ositha");circulo(250,425,10); //nombre de la ventanaglColor3f(1.0,1.0,1.0); inicializa();circulo(150,425,10); glutDisplayFunc(dibuja); //EnviaglColor3f(1.0,1.0,1.0); los graficos a la ventana de visualizacióncirculo(150,425,10); glutMainLoop(); //muestraglColor3f(1.0,1.0,1.0); todo y espera return 0; //retorna un//ombligo valor de cerocirculo(200,170,10); }glColor3f(0.6,0.5,0.2);
  42. 42. GRUPO: 303 T/M ESPECIALIDAD:INFORMATICANOMBRE DE LA PRÁCTICA: “SEÑOR TRIANGULOS”PRESENTACIÓN:
  43. 43. GRUPO: 303 T/M ESPECIALIDAD:INFORMATICACÓDIGO://mi primer ventana glColor3f(1.0 , 1.0 , 1.0);#include <GL/glut.h> glVertex2i(245,360);#include <GL/gl.h> glColor3f(1.0 , 0.9 , 0.0);#include <GL/glu.h> glVertex2i(180,280); glEnd();void inicializa(void) //pierna izquierda{glClearColor(0.0,1.0,1.0,0.0); //color de glColor3f(1.0 , 0.6 , 0.0);fondo glBegin(GL_TRIANGLES);glMatrixMode(GL_PROJECTION); glVertex2i(320,360);//Modo de proyeccion glColor3f(1.8,0.6,1.0);glLoadIdentity(); //Establece los glVertex2i(320,280);parametros de proyeccion glColor3f(0.2 ,1.0,0.7);gluOrtho2D(0.0, 1000.0, 0.0, 1000.0); glVertex2i(420,280);//vista ortogonal glEnd();} //pata izquierdavoid dibuja(void) //funcion glColor3f(1.0 , 1.0 , 0.6);dibuja glBegin(GL_TRIANGLES);{ glVertex2i(420,280);glClear(GL_COLOR_BUFFER_BIT); glColor3f(1.0 , 0.0 , 0.0);//borra pantalla glVertex2i(380,240);glColor3f(1.0 , 0.0 , 0.0); glColor3f(0.5 , 1.0 , 0.0);///pata derecha glVertex2i(420,180);glBegin(GL_TRIANGLES); glEnd();glVertex2i(160,40); //pata sobre el balonglColor3f(1.0 , 0.8 , 1.0); glColor3f(0.0 , 0.0 , 0.0);glVertex2i(245,40); glBegin(GL_TRIANGLES);glColor3f(1.0 , 1.0 , 0.0); glVertex2i(420,180);glVertex2i(200,80); glColor3f(0.0 , 0.0 , 1.0);glEnd(); glVertex2i(520,180); //pata de arriba derecha glColor3f(0.0 ,0.0 , 1.0); glVertex2i(440,220);glColor3f(1.0 , 1.0 , 0.9); glEnd();glBegin(GL_TRIANGLES);glVertex2i(245,40); //mano dercha(dedos)
  44. 44. GRUPO: 303 T/M ESPECIALIDAD:INFORMATICAglColor3f(1.0 , 0.9 , 1.0); glBegin(GL_TRIANGLES);glBegin(GL_TRIANGLES); glVertex2i(480,400);glVertex2i(60,360); glColor3f(1.0 , 0.4 , 1.0);glColor3f(1.0 , 0.0 , 1.0); glVertex2i(500,460);glVertex2i(80,440); glColor3f(1.0 , 1.0 , 0.8);glColor3f(1.0 , 1.0 , 0.0); glVertex2i(520,360);glVertex2i(100,400); glEnd();glEnd(); glColor3f(1.0 , 0.5 , 0.7); glBegin(GL_TRIANGLES); glVertex2i(298,520);glColor3f(0.9 , 9.0 , 0.1); glColor3f(1.0 , 0.4 , 1.0);glBegin(GL_TRIANGLES); glVertex2i(360,600);glVertex2i(100,400); glColor3f(1.0 , 1.0 , 0.7);glColor3f(0.7 , 0.8 , 1.0); glVertex2i(220,600);glVertex2i(200,520); glEnd();glColor3f(1.0 , 1.0 , 0.5);glVertex2i(140,340);glEnd(); glColor3f(1.0 , 0.2 , 0.8); glBegin(GL_TRIANGLES); glVertex2i(160,600);glColor3f(1.0 , 0.8 , 0.7); glColor3f(1.0 , 0.7 , 1.0);glBegin(GL_TRIANGLES); glVertex2i(298,720);glVertex2i(260,520); glColor3f(1.0 , 1.0 , 0.1);glColor3f(1.0 , 0.2 , 1.0); glVertex2i(420,600);glVertex2i(298,480); glEnd();glColor3f(1.0 , 1.0 , 0.6);glVertex2i(320,520);glEnd(); glColor3f(1.0 , 0.7 , 0.7); glBegin(GL_TRIANGLES); glVertex2i(540,320);glColor3f(1.0 , 0.7 , 0.4); glColor3f(1.0 , 0.6 , 1.6);glBegin(GL_TRIANGLES); glVertex2i(498,280);glVertex2i(380,520); glColor3f(1.0 , 1.0 , 0.7);glColor3f(1.0 , 0.4 , 1.0); glVertex2i(560,280);glVertex2i(440,360); glEnd();glColor3f(1.0 , 1.0 , 0.1);glVertex2i(480,400);glEnd(); glColor3f(1.0 , 0.7 , 0.5); glBegin(GL_TRIANGLES); glVertex2i(540,320); glColor3f(1.0 , 0.4 , 1.2);glColor3f(1.0 , 0.6 , 0.4); glVertex2i(580,540);
  45. 45. GRUPO: 303 T/M ESPECIALIDAD:INFORMATICAglColor3f(1.0 , 1.0 , 0.7); glVertex2i(440,180);glVertex2i(520,540); glVertex2i(400,140);glEnd(); glVertex2i(400,100); glVertex2i(440,60);glColor3f(1.0 , 0.7 , 0.4); glVertex2i(480,60);glBegin(GL_TRIANGLES); glEnd();glVertex2i(540,320);glColor3f(1.0 , 0.8 , 1.0);glVertex2i(640,540); glBegin(GL_POLYGON);glColor3f(1.0 , 1.0 , 0.4); glVertex2i(0,0);glVertex2i(620,540); glVertex2i(0,40);glEnd(); glVertex2i(1440,40); glVertex2i(1440,0); glColor3f(1.0 , 1.0 , 0.0);glBegin(GL_TRIANGLES); glEnd();glVertex2i(540,320);glColor3f(1.0 , 1.0 , 1.0);glVertex2i(498,540);glColor3f(1.0 , 0.0 , 0.0); glFlush(); //forza dibujoglVertex2i(478,540); } glEnd();//camiza int main (int argc, char** argv) //metodoglBegin(GL_QUADS); mainglColor3f(0.6 , 0.5 , 0.4); {glVertex2i(200,520); glutInit(&argc, argv);glVertex2i(200,340); //incializa GLUTglVertex2i(380,340); glutInitDisplayMode(GLUT_SINGLE |glVertex2i(380,520); GLUT_RGBA); //establece el modo deglEnd(); visualización glutInitWindowSize(500,500);glColor3f(1.0 , 0.5 , 0.0); //tamaño de la ventanaglBegin(GL_TRIANGLES); glutInitWindowPosition(0,0);glVertex2i(260,520); //posicion inicial de la ventanaglColor3f(1.0 , 1.0 , 1.0); glutCreateWindow("MI primer ventana");glVertex2i(298,480); //nombre de la ventanaglColor3f(1.0 , 1.0 , 0.9); inicializa();glVertex2i(320,520); glutDisplayFunc(dibuja); //EnviaglEnd(); los graficos a la ventana de visualización//balon glutMainLoop(); //muestraglBegin(GL_POLYGON); todo y esperaglVertex2i(520,100); return 0; //retorna unglVertex2i(520,140); valor de ceroglVertex2i(480,180); }
  46. 46. GRUPO: 303 T/M ESPECIALIDAD:INFORMATICA

×