Colegio de Estudios Cientificos y Tecnológicos del Estado de México    Utilización de Software de diseño para el manejo de...
IntroducciónEn el presente trabajo podrás ver diversos ejercicios de open gl que es unaespecificación estándar que define ...
INDICE1. TABLERO DE AJEDREZ……………………………………………………………42. ESTRELLA………………………………………………………………………..103. CUBO CON LINEAS……………………………...
Tablero de AjedrezEn esta práctica deberás realizar un tablero en donde pondrás 8*8 de cuadro dedos diversos colores, no h...
glVertex2i(100,100);glVertex2i(200,200);glVertex2i(300,100);glVertex2i(400,200);glVertex2i(500,100);glVertex2i(600,200);gl...
glVertex2i(200,800);glVertex2i(300,700);glVertex2i(400,800);glVertex2i(500,700);glVertex2i(600,800);glVertex2i(700,700);gl...
glVertex2i(800,300);glVertex2i(100,400);glVertex2i(200,500);glVertex2i(300,600);glVertex2i(400,500);glVertex2i(500,600);gl...
glEnd();glFlush();                     //forza dibujo}int main (int argc, char** argv)      //metodo main{glutInit(&argc, ...
EstrellaEn esta práctica deberás realizar una estrella utilizando líneas como se puedeobservar en el código en este caso y...
glClearColor(0.0,0.0,1.0,0.0); //color de fondoglMatrixMode(GL_PROJECTION);               //Modo de proyeccionglLoadIdenti...
glClear(GL_COLOR_BUFFER_BIT);   //borra pantallaglColor3f(1.0 , 0.0 , 1.0);glBegin(GL_LINES);glVertex2i(150,250);glVertex2...
glVertex2i(800,300);glVertex2i(500,1000);glVertex2i(500,1000);glVertex2i(200,300);glEnd();glFlush();                     /...
SALIDA
CUBO CON LINEASEste cubo se realizara mediante líneas para que lo formaran en tresd.                                    CO...
// linea derecha de la derechaglBegin(GL_LINES);glVertex2i(200,200);glVertex2i(200,400);//linea de arribaglBegin(GL_LINES)...
glVertex2i(350,550);//linea de la izquierdaglBegin(GL_LINES);glVertex2i(550,550);glVertex2i(550,350);//diagonalesglBegin(G...
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA);           //establece el modo devisualizaciónglutInitWindowSize(475,475);   ...
CUBO DELINEADOEn este cubo deberás de rellenarlo y delinearlo en este caso yo utilizare   lafórmula del cuadrado y después...
glColor3f(1.0 , 0.0 , 0.14);glVertex2i(350,450);glColor3f(1.0 , 0.10 , 1.0);glVertex2i(350,200);glColor3f(1.0 , 0.0 , 1.0)...
glVertex2i(450,575);glColor3f(0.0 , 0.16 , 0.1);glVertex2i(450,325);glColor3f(0.0 , 0.17 , 0.143);glVertex2i(350,200);glCo...
glVertex2i(450,575);glVertex2i(350,450);glVertex2i(350,450);glVertex2i(350,200);glColor3f(1.0 , 0.0 , 1.0);glVertex2i(455,...
glutInitWindowPosition(0,0);       //posicion inicial de la ventanaglutCreateWindow("MI primer ventana");           //nomb...
MUÑECO CONTRIANGULOSEste muñeco será realizado con diversas figuras geométricas con las cuales seutilizarán códigos que id...
CODIGO//mi primer ventana#include <GL/glut.h>#include <GL/gl.h>#include <GL/glu.h>void inicializa(void){glClearColor(0.0,1...
gluOrtho2D(0.0, 1000.0, 0.0, 1000.0);    //vista ortogonal}void dibuja(void)             //funcion dibuja{glClear(GL_COLOR...
glColor3f(1.0 , 0.0 , 0.0);glBegin(GL_TRIANGLES);glVertex2i(320,360);glColor3f(1.0 , 0.0 , 1.0);glVertex2i(320,280);glColo...
glColor3f(1.0 , 1.0 , 0.0);glVertex2i(440,220);glEnd();glColor3f(1.0 , 0.0 , 0.0);glBegin(GL_TRIANGLES);glVertex2i(60,360)...
glColor3f(1.0 , 0.0 , 0.0);glBegin(GL_TRIANGLES);glVertex2i(260,520);glColor3f(1.0 , 0.0 , 1.0);glVertex2i(298,480);glColo...
glColor3f(1.0 , 0.0 , 1.0);glVertex2i(500,460);glColor3f(1.0 , 1.0 , 0.0);glVertex2i(520,360);glEnd();glColor3f(1.0 , 0.0 ...
glColor3f(1.0 , 0.0 , 0.0);glBegin(GL_TRIANGLES);glVertex2i(540,320);glColor3f(1.0 , 0.0 , 1.0);glVertex2i(498,280);glColo...
glColor3f(1.0 , 1.0 , 0.0);glVertex2i(620,540);glEnd();glColor3f(1.0 , 0.0 , 0.0);glBegin(GL_TRIANGLES);glVertex2i(540,320...
glVertex2i(298,480);glColor3f(1.0 , 1.0 , 0.0);glVertex2i(320,520);glEnd();glBegin(GL_POLYGON);glVertex2i(520,100);glVerte...
glFlush();                     //forza dibujo}int main (int argc, char** argv)      //metodo main{glutInit(&argc, argv);  ...
CASITAEsta casa será realizada con diversas figuras geométricas que la irán formandopara ello deberemos utilizar diversos ...
glClearColor(0.0,1.0,1.0,0.0); //color de fondoglMatrixMode(GL_PROJECTION);                //Modo de proyeccionglLoadIdent...
glVertex2i(998,140);glVertex2i(998,120);glEnd();//rallita grisglColor3f(0.66 , 0.66 , 0.66);glBegin(GL_POLYGON);glVertex2i...
glVertex2i(0,180);glVertex2i(0,300);glVertex2i(320,300);glVertex2i(320,180);glEnd();//cuadritosglColor3f(0.66 , 0.66 , 0.6...
glColor3f(0.66 , 0.66 , 0.66);glBegin(GL_POLYGON);glVertex2i(120,240);glVertex2i(120,260);glVertex2i(160,260);glVertex2i(1...
//cocheraglColor3f(0.74 , 0.69 , 0.65);glBegin(GL_POLYGON);glVertex2i(60,280);glVertex2i(60,440);glVertex2i(160,440);glVer...
glVertex2i(160,460);glEnd();// casaglColor3f(1.0 , 1.00 , 0.0);glBegin(GL_POLYGON);glVertex2i(160,280);glVertex2i(160,560)...
glVertex2i(360,520);glVertex2i(380,520);glVertex2i(380,280);glEnd();// 3 rallas de la casaglColor3f(0.854 , 0.509 , 0.113)...
glBegin(GL_POLYGON);glVertex2i(280,520);glVertex2i(340,560);glVertex2i(400,520);glEnd();//1 ventana de la casaglColor3f(0....
glColor3f(0.113 , 0.607 , 0.854);glBegin(GL_POLYGON);glVertex2i(420,480);glVertex2i(420,540);glVertex2i(480,540);glVertex2...
//relleno de la puertaglColor3f(0.113 , 0.607 , 0.854);glBegin(GL_POLYGON);glVertex2i(330,320);glVertex2i(330,380);glVerte...
glVertex2i(820,200);glEnd();//1 cercaglColor3f(1.0 , 0.0 , 0.0);glBegin(GL_POLYGON);glVertex2i(0,320);glVertex2i(0,340);gl...
glVertex2i(20,380);glVertex2i(35,380);glVertex2i(35,280);glEnd();//4 cercaglColor3f(1.0 , 0.0 , 0.0);glBegin(GL_POLYGON);g...
glColor3f(1.0 , 0.0 , 0.0);glBegin(GL_POLYGON);glVertex2i(900,280);glVertex2i(900,380);glVertex2i(920,380);glVertex2i(920,...
//1 arbol de troncoglColor3f(0.187 , 0.854 , 0.113);glBegin(GL_POLYGON);glVertex2i(560,260);glVertex2i(660,540);glVertex2i...
glEnd();//rallas de la calleglColor3f(1.0 , 1.0 , 1.0);glBegin(GL_POLYGON);glVertex2i(200,75);glVertex2i(200,85);glVertex2...
glVertex2i(640,85);glVertex2i(720,85);glVertex2i(720,75);glEnd();//rallas de la calleglColor3f(1.0 , 1.0 , 1.0);glBegin(GL...
//cuadros de las ventanasglColor3f(1.0 , 1.0 , 1.0);glBegin(GL_POLYGON);glVertex2i(200,480);glVertex2i(260,480);glVertex2i...
glEnd();//cuadros de las ventanasglColor3f(1.0 , 1.0 , 1.0);glBegin(GL_POLYGON);glVertex2i(420,340);glVertex2i(420,360);gl...
glutMainLoop();      //muestra todo y esperareturn 0;         //retorna un valor de cero}                       SALIDA
OSOEste oso se diseñara solo con círculos y para ello se agregara la biblioteca de matpara poder copilar nuestro código en...
{glClearColor(2.2,0.0,1.0,0.0); //color de fondoglMatrixMode(GL_PROJECTION);                        //Modo de proyecciongl...
for (angulo=0;angulo<=360; angulo+=1){ glVertex2f(x + sin(angulo) * radio,y + cos(angulo) * radio);}       glEnd();}void d...
glColor3f(1.10,0.1,0.1);circulo(150,425,20);glColor3f(1.10,0.1,0.1);circulo(350,425,20);//extremidadesglColor3f(0.560,0.36...
glColor3f(0.560,0.360,0.188);circulo(150,175,45);glColor3f(1.0,0.0,0.0);circulo(150,175,20);glColor3f(0.0,0.0,0.0);circulo...
}int main (int argc, char** argv)      //metodo main{glutInit(&argc, argv);                    //incializa GLUTglutInitDis...
CUBO CON CUBITOSEn esta imagen se realizara un cubo que lleve cubitos de colores cada uno deellos en una cara distinta y l...
CODIGO//mi primer ventana#include <GL/glut.h>#include <GL/gl.h>void inicializa(void){glClearColor(0.9,0.5,0.2,0.8);   //co...
}void cubo (int x, int y,int t,int l){    double a=.8,b=.6;glColor3f(0.0 , 1.1 , 0.0);glBegin(GL_QUADS);glVertex2f(x,y);gl...
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...
glVertex2f(x+t,y+t);glEnd();    }void dibuja(void)             //funcion dibuja{glClear(GL_COLOR_BUFFER_BIT);             ...
//los de enfrente//diagonales izquiercafor(int k=0;k<=8;k++){cubo(245-20*k*.8,407-20*k*.6,20,5);cubo(245-20*k*.8,207-20*k*...
}glFlush();                    //forza dibujo}int main (int argc, char** argv)      //metodo main{glutInit(&argc, argv);  ...
SALIDA
MUÑECO CON FORMASEn este personaje utilizaremos diversas figuras geométricas al igual que líneas,polígonos y colores diver...
#include <GL/glut.h>#include <GL/gl.h>#include <GL/glu.h>#include <math.h>void inicializa(void){glClearColor(2.2,0.0,1.0,0...
{       int angulo=0;       glBegin(GL_TRIANGLE_FAN);// glColor3f (1.0, 0.0, 1.0);       glVertex2f(x,y);       for (angul...
glBegin(GL_POLYGON);glVertex2i(220,140);glVertex2i(220,160);glVertex2i(240,160);glVertex2i(240,140);glEnd();glColor3f(0.0 ...
glBegin(GL_TRIANGLES);glVertex2i(60,10);glVertex2i(160,20);glVertex2i(100,40);glEnd();glColor3f(0.0 , 0.0 , 0.0);glBegin(G...
glBegin(GL_TRIANGLES);glVertex2i(200,320);glVertex2i(225,280);glVertex2i(260,320);glEnd();glColor3f(0.0 , 0.2 , 0.6);glBeg...
glVertex2i(380,200);glVertex2i(340,200);glVertex2i(300,280);glVertex2i(300,320);glEnd();glColor3f(0.8 , 0.5 , 0.4);glBegin...
glColor3f(0.0 , 0.0 , 0.0);glBegin(GL_QUADS);glVertex2i(220,225);glVertex2i(240,225);glVertex2i(240,250);glVertex2i(220,25...
glColor3f(0.8 , 0.5 , 0.4);glBegin(GL_POLYGON);glVertex2i(110,200);glVertex2i(100,160);glVertex2i(80,160);glVertex2i(90,20...
glEnd();//cabezaglColor3f(0.8,0.5,0.4);circulo(225,405,80);glColor3f(0.8,0.5,0.4);circulo(150,405,25);glColor3f(0.8,0.5,0....
glColor3f(0.0 , 0.0 , 0.0);glBegin(GL_TRIANGLES);glVertex2i(150,430);glVertex2i(140,450);glVertex2i(170,460);glEnd();glCol...
glColor3f(0.0 , 0.0 , 0.0);glBegin(GL_TRIANGLES);glVertex2i(220,480);glVertex2i(250,515);glVertex2i(260,475);glEnd();glCol...
glVertex2i(305,420);glEnd();//BOCAglColor3f(0.0 , 0.0 , 0.0);glBegin(GL_LINES);glVertex2i(200,360);glVertex2i(200,350);glV...
glBegin(GL_LINES);glVertex2i(80,160);glVertex2i(81,150);glVertex2i(81,150);glVertex2i(85,160);glColor3f(0.0 , 0.0 , 0.0);g...
glVertex2i(96,150);glVertex2i(96,150);glVertex2i(100,160);//DEDOGORDO ARREGLARglColor3f(0.0 , 0.0 , 0.0);glBegin(GL_LINES)...
glVertex2i(368,160);glVertex2i(369,150);glVertex2i(369,150);glVertex2i(374,160);glColor3f(0.0 , 0.0 , 0.0);glBegin(GL_LINE...
glEnd();glFlush();                     //forza dibujo}int main (int argc, char** argv)      //metodo main{glutInit(&argc, ...
ANIMACION DEL CÍRCULOEs esta animación simplemente aremos que el circulo gire con el siguiente códigoCODIGO#include <unist...
double ang=0;void inicializa(void){glClearColor(0.0,0.0,0.0,0.0);glMatrixMode(GL_PROJECTION);glLoadIdentity();gluOrtho2D(0...
if(ang==360){ang=0;}// se repite idefinidamenteglFlush(); //forzar dibujadoglutSwapBuffers(); //y esto}int main (int argc,...
SALIDA                            SISTEMA SOLAREn el siguiente trabajo podrás observar una simulación de los planetas cada...
#include <GL/gl.h>#include <math.h>int rad=100;double ang=0;void inicializa(void){glClearColor(0.0,0.0,1.0,0.0);glMatrixMo...
circulo( 500+ sin(ang) * rad,500 + cos(ang) * rad,10); //funcion circulocirculo( 500+ sin(ang) * 50,500 + cos(ang) * 50,10...
SALIDA                         MOVIMIENTO EN 8En esta práctica podrás ver a una bolita que Cruza en 8 esto a causa de laan...
#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){glCle...
circulo(300,180,70);glColor3f(0.0,0.0,0.0);circulo(300,300,50);circulo(300,180,50);glColor3f(1.0,0.3,1.0);if(a>=6.15 && a<...
glFlush();glutSwapBuffers();}int main (int argc, char** argv){glutInit(&argc, argv);glutInitDisplayMode(GLUT_DOUBLE | GLUT...
SEMAFORO
En este trabajo podrás hacer la simulación de un semáforo utilizando coloresdistintos , parecidos a los reales y se ara la...
glMatrixMode(GL_PROJECTION);glLoadIdentity();gluOrtho2D(0.0, 1000.0, 0.0, 800.0);// el ancho y largo de nuestra pantalla}v...
void dibuja(void){glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);glColor3f(0.8,1.0,0.0);glBegin(GL_QUADS);glVertex2i(4...
circulo(500,600,40);circulo(500,500,40);glColor3f (1.0, 0.0, 0.0);if(x>=1 && x<600){circulo(500,700,40);glFlush();x++;}glC...
}glColor3f(0.0,0.0,0.0);if(d>=1 && d<800 && y==800 && x==600 && w==600 && z==800){circulo(500,500,40);glFlush();d++;}glCol...
glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGBA| GLUT_DEPTH);glutInitWindowSize(800,600);glutInitWindowPosition(10,10);glutCre...
PIRAMIDEEn esta práctica se hará una pirámide utilizando solo líneas y colores que desees esto esuna práctica sencilla y f...
glBegin (GL_LINES);//Valor inicial--- Valor final o condicion--- incrementofor(i=1;i<=10; i++){//abajoglColor3f(1.0 , 1.0 ...
glVertex2i(42,20);glVertex2i(62,40);glVertex2i(82,60);glVertex2i(102,80);glVertex2i(122,100);glVertex2i(142,120);glVertex2...
glVertex2i(382,360);glVertex2i(402,380);glVertex2i(422,400);glVertex2i(442,420);glVertex2i(462,440);//derecha izquierdaglV...
glVertex2i(202,280);glVertex2i(222,255);glVertex2i(282,200);glVertex2i(302,180);glVertex2i(322,160);glVertex2i(342,140);gl...
glEnd();glFlush();                 //forza dibujo}int main (int argc, char** argv)    //metodo main{glutInit(&argc, argv);...
}    SALIDA
Open gl tutorial diana hernandez 303
Open gl tutorial diana hernandez 303
Próxima SlideShare
Cargando en…5
×

Open gl tutorial diana hernandez 303

494 visualizaciones

Publicado el

Publicado en: Tecnología
0 comentarios
2 recomendaciones
Estadísticas
Notas
  • Sé el primero en comentar

Sin descargas
Visualizaciones
Visualizaciones totales
494
En SlideShare
0
De insertados
0
Número de insertados
2
Acciones
Compartido
0
Descargas
34
Comentarios
0
Recomendaciones
2
Insertados 0
No insertados

No hay notas en la diapositiva.

Open gl tutorial diana hernandez 303

  1. 1. Colegio de Estudios Cientificos y Tecnológicos del Estado de México Utilización de Software de diseño para el manejo de gráficos Diana Becerra Hernández MANUAL DE PRACTICAS DE OPEN GL Prof.: Rene Domínguez Escalona Grupo: 303 Ciclo escolar 2012-2013
  2. 2. IntroducciónEn el presente trabajo podrás ver diversos ejercicios de open gl que es unaespecificación estándar que define una API multilenguaje y multiplataforma paraescribir aplicaciones que produzcan gráficos 2D y 3D. La interfaz consiste en másde 250 funciones diferentes que pueden usarse para dibujar escenastridimensionales complejas a partir de primitivas geométricas simples, tales comopuntos, líneas y triángulos. Fue desarrollada originalmente por Silicón (SGI)en 1992 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 desarrollode videojuegos, donde compite con Direct3D en plataformas Microsoft Windows.En el siguiente trabajo podrás observar diversas prácticas que se realizaron enopen gl y los resultados de las mismas, también podrás darte cuenta que enopen gl las figuras geométricas y los planos cartesianos son esenciales para poderrealizar una figura básica, que al paso del tiempo puede llegar a convertirse enuna figura o personaje con movimiento en 3d.En open gl los códigos son la principal fuente para poder realizar nuestrosdiseños estos códigos están basados generalmente en un plano cartesiano en elque ponemos nuestras coordenadas para poder formar una figura y de ello tedarás cuenta en el siguiente proyecto, en donde los números y las figurasgeométricas no han de faltar.Bueno en el siguiente proyecto notaras borradores los cuales son hechos parafacilitar realizar una figura ya que en ellos te vasas.
  3. 3. INDICE1. TABLERO DE AJEDREZ……………………………………………………………42. ESTRELLA………………………………………………………………………..103. CUBO CON LINEAS………………………………………………………………..154. CUBO DELINEADO…………………………………………………………….195. MUÑECO CON TRIANGULOS……………………………………………………246. CASITA………………………………………………………………………………..367. OSO…………………………………………………………………………………..568. CUBO CON CUBITOS……………………………………………………………..629. MUÑECO CON FORMAS…………………………………………………………..7010. ANIMACION CIRC ULO…………………………………………………………8711. ANIMACION SISTEMA SOLAR……………………………………………………9012. MOVIMIENTO EN 8…………………………………………………………………9313. SEMAFORO………………………………………………………………………….9814.PIRAMIDE……………………………………………………………………….104
  4. 4. Tablero de AjedrezEn esta práctica deberás realizar un tablero en donde pondrás 8*8 de cuadro dedos diversos colores, no hay problema si quieres agregar más cuadros si es quelo quieres hacer más grande, siempre y cuando sean pares. CODIGO//mi primer ventana#include <GL/glut.h>#include <GL/gl.h>#include <GL/glu.h>void inicializa(void){glClearColor(1.0,0.5,0.3); //color de fondoglMatrixMode(GL_PROJECTION); //Modo de proyeccionglLoadIdentity(); //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);
  5. 5. 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);
  6. 6. 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);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);
  7. 7. 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);
  8. 8. glEnd();glFlush(); //forza dibujo}int main (int argc, char** argv) //metodo main{glutInit(&argc, argv); //incializa GLUTglutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA); //establece el modo devisualizació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 devisualizaciónglutMainLoop(); //muestra todo y esperareturn 0; //retorna un valor de cero} SALIDA
  9. 9. EstrellaEn esta práctica deberás realizar una estrella utilizando líneas como se puedeobservar en el código en este caso yo pondré tres estrellas, las puedes realizar delcolor que desees. BORRADOR CODIGO//mi primer ventana#include <GL/glut.h>#include <GL/gl.h>#include <GL/glu.h>void inicializa(void){
  10. 10. glClearColor(0.0,0.0,1.0,0.0); //color de fondoglMatrixMode(GL_PROJECTION); //Modo de proyeccionglLoadIdentity(); //Establece los parametros de proyecciongluOrtho2D(0.0, 1000.0, 0.0, 1000.0); //vista ortogonal}void dibuja(void) //funcion dibuja{glLineWidth(5);glClear(GL_COLOR_BUFFER_BIT); //borra pantallaglColor3f(1.0 , 1.0 , 0.0);glBegin(GL_LINES);glVertex2i(100,200);glVertex2i(700,700);glVertex2i(700,700);glVertex2i(100,700);glVertex2i(100,700);glVertex2i(700,200);glVertex2i(700,200);glVertex2i(400,900);glVertex2i(400,900);glVertex2i(100,200);glLineWidth(10);
  11. 11. glClear(GL_COLOR_BUFFER_BIT); //borra pantallaglColor3f(1.0 , 0.0 , 1.0);glBegin(GL_LINES);glVertex2i(150,250);glVertex2i(750,750);glVertex2i(750,750);glVertex2i(150,750);glVertex2i(150,750);glVertex2i(750,250);glVertex2i(750,250);glVertex2i(450,950);glVertex2i(450,950);glVertex2i(150,250);glLineWidth(10);glClear(GL_COLOR_BUFFER_BIT); //borra pantallaglColor3f(0.0 , 1.0 , 0.0);glBegin(GL_LINES);glVertex2i(200,300);glVertex2i(800,800);glVertex2i(800,800);glVertex2i(200,800);glVertex2i(200,800);glVertex2i(800,300);
  12. 12. glVertex2i(800,300);glVertex2i(500,1000);glVertex2i(500,1000);glVertex2i(200,300);glEnd();glFlush(); //forza dibujo}int main (int argc, char** argv) //metodo main{glutInit(&argc, argv); //incializa GLUTglutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA); //establece el modo devisualizació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 devisualizaciónglutMainLoop(); //muestra todo y esperareturn 0; //retorna un valor de cero}
  13. 13. SALIDA
  14. 14. CUBO CON LINEASEste cubo se realizara mediante líneas para que lo formaran en tresd. CODIGO//mi primer ventana#include <GL/glut.h>#include <GL/gl.h>#include <GL/glu.h>void inicializa (void){glClearColor(0.0,1.0,0.0,3.0); //color de fondoglMatrixMode(GL_PROJECTION); //Modo de proyeccionglLoadIdentity(); //Establece los parametros de proyecciongluOrtho2D(0.0, 1000.0, 0.0, 1000.0); //vista ortogonal}void dibuja(void) //funcion dibuja{int i;glClear(GL_COLOR_BUFFER_BIT);glColor3f(0.0 ,0.0 ,0.0 );glPointSize(50);//linea de abajoglBegin(GL_LINES);glVertex2i(200,200);glVertex2i(400,200);
  15. 15. // linea derecha de la derechaglBegin(GL_LINES);glVertex2i(200,200);glVertex2i(200,400);//linea de arribaglBegin(GL_LINES);glVertex2i(400,400);glVertex2i(200,400);//linea de la izquierdaglBegin(GL_LINES);glVertex2i(400,400);glVertex2i(400,200);//otro cuadrado//linea de abajoglBegin(GL_LINES);glVertex2i(350,350);glVertex2i(550,350);// linea derecha de la derechaglBegin(GL_LINES);glVertex2i(350,350);glVertex2i(350,550);//linea de arribaglBegin(GL_LINES);glVertex2i(550,550);
  16. 16. glVertex2i(350,550);//linea de la izquierdaglBegin(GL_LINES);glVertex2i(550,550);glVertex2i(550,350);//diagonalesglBegin(GL_LINES);glVertex2i(400,400);glVertex2i(550,550);// diagonal 2glVertex2i(200,200);glVertex2i(350,350);// diagonal 3glVertex2i(200,400);glVertex2i(350,550);// diagonal 4glVertex2i(400,200);glVertex2i(550,350);glEnd();glFlush(); //forza dibujo}int main (int argc, char** argv) //metodo main{glutInit(&argc, argv); //incializa GLUT
  17. 17. glutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA); //establece el modo devisualizaciónglutInitWindowSize(475,475); //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 devisualizaciónglutMainLoop(); //muestra todo y esperareturn 0; //retorna un valor de cero} SALIDA
  18. 18. CUBO DELINEADOEn este cubo deberás de rellenarlo y delinearlo en este caso yo utilizare lafórmula del cuadrado y después de las líneas. CODIGO//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,1.0); //color de fondoglMatrixMode(GL_PROJECTION); //Modo de proyeccionglLoadIdentity(); //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);glBegin(GL_POLYGON);glVertex2i(100,200);glColor3f(1.0 , 0.0 , 1.0);glVertex2i(100,450);
  19. 19. glColor3f(1.0 , 0.0 , 0.14);glVertex2i(350,450);glColor3f(1.0 , 0.10 , 1.0);glVertex2i(350,200);glColor3f(1.0 , 0.0 , 1.0);glEnd(); //borra pantallaglColor3f(0.0 , 1.0 , 0.0);glBegin(GL_POLYGON);glVertex2i(100,450);glColor3f(1.0 , 1.0 , 0.0);glVertex2i(225,575);glColor3f(1.0 , 1.0 , 3.0);glVertex2i(450,575);glColor3f(1.0 , 5.0 , 0.0);glVertex2i(350,450);glColor3f(1.0 , 1.0 , 0.0);glEnd();glColor3f(0.0 , 0.0 , 1.0);glBegin(GL_POLYGON);glVertex2i(350,450);glColor3f(0.0 , 3.0 , 2.0);
  20. 20. glVertex2i(450,575);glColor3f(0.0 , 0.16 , 0.1);glVertex2i(450,325);glColor3f(0.0 , 0.17 , 0.143);glVertex2i(350,200);glColor3f(0.10 , 0.50 , 1.0);glEnd();glLineWidth(6);glBegin(GL_LINES);glColor3f(1.0 , 0.0 , 1.0);glVertex2i(100,200);glVertex2i(100,450);glVertex2i(95,450);glVertex2i(355,450);glVertex2i(350,450);glVertex2i(350,200);glVertex2i(355,200);glVertex2i(95,200);glColor3f(1.0 , 0.0 , 1.0);glVertex2i(350,200);glVertex2i(450,325);glVertex2i(450,325);glVertex2i(450,575);
  21. 21. glVertex2i(450,575);glVertex2i(350,450);glVertex2i(350,450);glVertex2i(350,200);glColor3f(1.0 , 0.0 , 1.0);glVertex2i(455,575);glVertex2i(215,575);glVertex2i(215,575);glVertex2i(95,455);glEnd();glFlush(); //forza dibujo}int main (int argc, char** argv) //metodo main{glutInit(&argc, argv); //incializa GLUTglutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA); //establece el modo devisualizaciónglutInitWindowSize(500,500); //tamaño de la ventana
  22. 22. glutInitWindowPosition(0,0); //posicion inicial de la ventanaglutCreateWindow("MI primer ventana"); //nombre de la ventanainicializa();glutDisplayFunc(dibuja); //Envia los graficos a la ventana devisualizaciónglutMainLoop(); //muestra todo y esperareturn 0; //retorna un valor de cero} SALIDA
  23. 23. MUÑECO CONTRIANGULOSEste muñeco será realizado con diversas figuras geométricas con las cuales seutilizarán códigos que identificaran a las mismas. BORRADOR
  24. 24. CODIGO//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 proyeccionglLoadIdentity(); //Establece los parametros de proyeccion
  25. 25. gluOrtho2D(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);glBegin(GL_TRIANGLES);glVertex2i(160,40);glColor3f(1.0 , 0.0 , 1.0);glVertex2i(245,40);glColor3f(1.0 , 1.0 , 0.0);glVertex2i(200,80);glEnd();glColor3f(1.0 , 0.0 , 0.0);glBegin(GL_TRIANGLES);glVertex2i(245,40);glColor3f(1.0 , 0.0 , 1.0);glVertex2i(245,360);glColor3f(1.0 , 1.0 , 0.0);glVertex2i(180,280);glEnd();
  26. 26. glColor3f(1.0 , 0.0 , 0.0);glBegin(GL_TRIANGLES);glVertex2i(320,360);glColor3f(1.0 , 0.0 , 1.0);glVertex2i(320,280);glColor3f(1.0 , 1.0 , 0.0);glVertex2i(420,280);glEnd();glColor3f(1.0 , 0.0 , 0.0);glBegin(GL_TRIANGLES);glVertex2i(420,280);glColor3f(1.0 , 0.0 , 1.0);glVertex2i(380,240);glColor3f(1.0 , 1.0 , 0.0);glVertex2i(420,180);glEnd();glColor3f(1.0 , 0.0 , 0.0);glBegin(GL_TRIANGLES);glVertex2i(420,180);glColor3f(1.0 , 0.0 , 1.0);glVertex2i(520,180);
  27. 27. glColor3f(1.0 , 1.0 , 0.0);glVertex2i(440,220);glEnd();glColor3f(1.0 , 0.0 , 0.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(1.0 , 0.0 , 0.0);glBegin(GL_TRIANGLES);glVertex2i(100,400);glColor3f(1.0 , 0.0 , 1.0);glVertex2i(200,520);glColor3f(1.0 , 1.0 , 0.0);glVertex2i(140,340);glEnd();
  28. 28. glColor3f(1.0 , 0.0 , 0.0);glBegin(GL_TRIANGLES);glVertex2i(260,520);glColor3f(1.0 , 0.0 , 1.0);glVertex2i(298,480);glColor3f(1.0 , 1.0 , 0.0);glVertex2i(320,520);glEnd();glColor3f(1.0 , 0.0 , 0.0);glBegin(GL_TRIANGLES);glVertex2i(380,520);glColor3f(1.0 , 0.0 , 1.0);glVertex2i(440,360);glColor3f(1.0 , 1.0 , 0.0);glVertex2i(480,400);glEnd();glColor3f(1.0 , 0.0 , 0.0);glBegin(GL_TRIANGLES);glVertex2i(480,400);
  29. 29. glColor3f(1.0 , 0.0 , 1.0);glVertex2i(500,460);glColor3f(1.0 , 1.0 , 0.0);glVertex2i(520,360);glEnd();glColor3f(1.0 , 0.0 , 0.0);glBegin(GL_TRIANGLES);glVertex2i(298,520);glColor3f(1.0 , 0.0 , 1.0);glVertex2i(360,600);glColor3f(1.0 , 1.0 , 0.0);glVertex2i(220,600);glEnd(); glColor3f(1.0 , 0.0 , 0.0);glBegin(GL_TRIANGLES);glVertex2i(160,600);glColor3f(1.0 , 0.0 , 1.0);glVertex2i(298,720);glColor3f(1.0 , 1.0 , 0.0);glVertex2i(420,600);glEnd();
  30. 30. glColor3f(1.0 , 0.0 , 0.0);glBegin(GL_TRIANGLES);glVertex2i(540,320);glColor3f(1.0 , 0.0 , 1.0);glVertex2i(498,280);glColor3f(1.0 , 1.0 , 0.0);glVertex2i(560,280);glEnd();glColor3f(1.0 , 0.0 , 0.0);glBegin(GL_TRIANGLES);glVertex2i(540,320);glColor3f(1.0 , 0.0 , 1.0);glVertex2i(580,540);glColor3f(1.0 , 1.0 , 0.0);glVertex2i(520,540);glEnd();glColor3f(1.0 , 0.0 , 0.0);glBegin(GL_TRIANGLES);glVertex2i(540,320);glColor3f(1.0 , 0.0 , 1.0);glVertex2i(640,540);
  31. 31. glColor3f(1.0 , 1.0 , 0.0);glVertex2i(620,540);glEnd();glColor3f(1.0 , 0.0 , 0.0);glBegin(GL_TRIANGLES);glVertex2i(540,320);glColor3f(1.0 , 0.0 , 1.0);glVertex2i(498,540);glColor3f(1.0 , 1.0 , 0.0);glVertex2i(478,540);glEnd();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.0 , 0.0);glBegin(GL_TRIANGLES);glVertex2i(260,520);glColor3f(1.0 , 0.0 , 1.0);
  32. 32. glVertex2i(298,480);glColor3f(1.0 , 1.0 , 0.0);glVertex2i(320,520);glEnd();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();
  33. 33. glFlush(); //forza dibujo}int main (int argc, char** argv) //metodo main{glutInit(&argc, argv); //incializa GLUTglutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA); //establece el modo devisualizació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 devisualizaciónglutMainLoop(); //muestra todo y esperareturn 0; //retorna un valor de cero} SALIDA
  34. 34. CASITAEsta casa será realizada con diversas figuras geométricas que la irán formandopara ello deberemos utilizar diversos códigos de figuras geométricas como(TRIANGLES) entre otras.BORRADOR CODIGO#include <GL/glut.h>#include <GL/gl.h>#include <GL/glu.h>void inicializa(void){
  35. 35. glClearColor(0.0,1.0,1.0,0.0); //color de fondoglMatrixMode(GL_PROJECTION); //Modo de proyeccionglLoadIdentity(); //Establece los parametros de proyecciongluOrtho2D(0.0, 1000.0, 0.0, 1000.0); //vista ortogonal}void dibuja(void) //funcion dibuja{//calleglClear(GL_COLOR_BUFFER_BIT); //borra pantallaglColor3f(0.0 , 0.0 , 0.0);glBegin(GL_POLYGON);glVertex2i(0,0);glVertex2i(0,120);glVertex2i(998,120);glVertex2i(998,0);glEnd();//raya amarillaglColor3f(1.0 , 0.96 , 0.49);glBegin(GL_POLYGON);glVertex2i(0,120);glVertex2i(0,140);
  36. 36. glVertex2i(998,140);glVertex2i(998,120);glEnd();//rallita grisglColor3f(0.66 , 0.66 , 0.66);glBegin(GL_POLYGON);glVertex2i(0,140);glVertex2i(0,180);glVertex2i(998,180);glVertex2i(998,140);glEnd();//rallita grisglColor3f(0.66 , 0.66 , 0.66);glBegin(GL_POLYGON);glVertex2i(320,180);glVertex2i(320,300);glVertex2i(360,300);glVertex2i(360,180);glEnd();//pasto derechaglColor3f(0.0 , 1.0 , 0.0);glBegin(GL_POLYGON);
  37. 37. glVertex2i(0,180);glVertex2i(0,300);glVertex2i(320,300);glVertex2i(320,180);glEnd();//cuadritosglColor3f(0.66 , 0.66 , 0.66);glBegin(GL_POLYGON);glVertex2i(60,200);glVertex2i(60,220);glVertex2i(100,220);glVertex2i(100,200);glEnd();//2 cuadritosglColor3f(0.66 , 0.66 , 0.66);glBegin(GL_POLYGON);glVertex2i(60,240);glVertex2i(60,260);glVertex2i(100,260);glVertex2i(100,240);glEnd();//3 cuadritos
  38. 38. glColor3f(0.66 , 0.66 , 0.66);glBegin(GL_POLYGON);glVertex2i(120,240);glVertex2i(120,260);glVertex2i(160,260);glVertex2i(160,240);glEnd();//4 cuadritosglColor3f(0.66 , 0.66 , 0.66);glBegin(GL_POLYGON);glVertex2i(120,200);glVertex2i(120,220);glVertex2i(160,220);glVertex2i(160,200);glEnd();//pasto izquierdaglColor3f(0.0 , 1.0 , 0.0);glBegin(GL_POLYGON);glVertex2i(360,180);glVertex2i(360,300);glVertex2i(998,300);glVertex2i(998,180);glEnd();
  39. 39. //cocheraglColor3f(0.74 , 0.69 , 0.65);glBegin(GL_POLYGON);glVertex2i(60,280);glVertex2i(60,440);glVertex2i(160,440);glVertex2i(160,280);glEnd();// rallita de la cocheraglColor3f(0.85 , 0.50 , 0.11);glBegin(GL_POLYGON);glVertex2i(40,280);glVertex2i(40,440);glVertex2i(60,440);glVertex2i(60,280);glEnd();// techito de la cocheraglColor3f(0.85 , 0.14 , 0.11);glBegin(GL_POLYGON);glVertex2i(160,440);glVertex2i(20,440);glVertex2i(40,460);
  40. 40. glVertex2i(160,460);glEnd();// casaglColor3f(1.0 , 1.00 , 0.0);glBegin(GL_POLYGON);glVertex2i(160,280);glVertex2i(160,560);glVertex2i(520,560);glVertex2i(520,280);glEnd();// rallas de la casaglColor3f(0.854 , 0.509 , 0.113);glBegin(GL_POLYGON);glVertex2i(300,280);glVertex2i(300,520);glVertex2i(320,520);glVertex2i(320,280);glEnd();// 2 rallas de la casaglColor3f(0.854 , 0.509 , 0.113);glBegin(GL_POLYGON);glVertex2i(360,280);
  41. 41. glVertex2i(360,520);glVertex2i(380,520);glVertex2i(380,280);glEnd();// 3 rallas de la casaglColor3f(0.854 , 0.509 , 0.113);glBegin(GL_POLYGON);glVertex2i(160,420);glVertex2i(160,440);glVertex2i(520,440);glVertex2i(520,420);glEnd();// techo grande de la casaglColor3f(0.854 , 0.145 , 0.113);glBegin(GL_POLYGON);glVertex2i(100,560);glVertex2i(160,600);glVertex2i(520,600);glVertex2i(580,560);glEnd();// techo chico de la casaglColor3f(1.0 , 0.0 , 0.0);
  42. 42. glBegin(GL_POLYGON);glVertex2i(280,520);glVertex2i(340,560);glVertex2i(400,520);glEnd();//1 ventana de la casaglColor3f(0.113 , 0.607 , 0.854);glBegin(GL_POLYGON);glVertex2i(200,340);glVertex2i(200,400);glVertex2i(260,400);glVertex2i(260,340);glEnd();//2 ventana de la casaglColor3f(0.113 , 0.607 , 0.854);glBegin(GL_POLYGON);glVertex2i(200,480);glVertex2i(200,540);glVertex2i(260,540);glVertex2i(260,480);glEnd();//3 ventana de la casa
  43. 43. glColor3f(0.113 , 0.607 , 0.854);glBegin(GL_POLYGON);glVertex2i(420,480);glVertex2i(420,540);glVertex2i(480,540);glVertex2i(480,480);glEnd();//4 ventana de la casaglColor3f(0.113 , 0.607 , 0.854);glBegin(GL_POLYGON);glVertex2i(420,340);glVertex2i(420,400);glVertex2i(480,400);glVertex2i(480,340);glEnd();//puertaglColor3f(1.0 , 1.0 , 1.0);glBegin(GL_POLYGON);glVertex2i(320,280);glVertex2i(320,400);glVertex2i(360,400);glVertex2i(360,280);glEnd();
  44. 44. //relleno de la puertaglColor3f(0.113 , 0.607 , 0.854);glBegin(GL_POLYGON);glVertex2i(330,320);glVertex2i(330,380);glVertex2i(350,380);glVertex2i(350,320);glEnd();//1 troncoglColor3f(0.560 , 0.360 , 0.188);glBegin(GL_POLYGON);glVertex2i(640,200);glVertex2i(640,260);glVertex2i(660,260);glVertex2i(660,200);glEnd();//2 troncoglColor3f(0.560 , 0.360 , 0.188);glBegin(GL_POLYGON);glVertex2i(800,200);glVertex2i(800,260);glVertex2i(820,260);
  45. 45. glVertex2i(820,200);glEnd();//1 cercaglColor3f(1.0 , 0.0 , 0.0);glBegin(GL_POLYGON);glVertex2i(0,320);glVertex2i(0,340);glVertex2i(40,340);glVertex2i(40,320);glEnd();//2 cercaglColor3f(1.0 , 0.0 , 0.0);glBegin(GL_POLYGON);glVertex2i(520,320);glVertex2i(520,340);glVertex2i(998,340);glVertex2i(998,320);glEnd();//3 cercaglColor3f(1.0 , 0.0 , 0.0);glBegin(GL_POLYGON);glVertex2i(20,280);
  46. 46. glVertex2i(20,380);glVertex2i(35,380);glVertex2i(35,280);glEnd();//4 cercaglColor3f(1.0 , 0.0 , 0.0);glBegin(GL_POLYGON);glVertex2i(540,280);glVertex2i(540,380);glVertex2i(560,380);glVertex2i(560,280);glEnd();//5 cercaglColor3f(1.0 , 0.0 , 0.0);glBegin(GL_POLYGON);glVertex2i(740,280);glVertex2i(740,380);glVertex2i(760,380);glVertex2i(760,280);glEnd();//6 cerca
  47. 47. glColor3f(1.0 , 0.0 , 0.0);glBegin(GL_POLYGON);glVertex2i(900,280);glVertex2i(900,380);glVertex2i(920,380);glVertex2i(920,280);glEnd();//7 cercaglColor3f(1.0 , 0.0 , 0.0);glBegin(GL_POLYGON);glVertex2i(940,280);glVertex2i(940,380);glVertex2i(960,380);glVertex2i(960,280);glEnd();//7 cercaglColor3f(1.0 , 0.0 , 0.0);glBegin(GL_POLYGON);glVertex2i(980,280);glVertex2i(980,380);glVertex2i(998,380);glVertex2i(998,280);glEnd();
  48. 48. //1 arbol de troncoglColor3f(0.187 , 0.854 , 0.113);glBegin(GL_POLYGON);glVertex2i(560,260);glVertex2i(660,540);glVertex2i(740,260);glEnd();//2 arbol de troncoglColor3f(0.187 , 0.854 , 0.113);glBegin(GL_POLYGON);glVertex2i(750,260);glVertex2i(820,480);glVertex2i(900,260);glEnd();//rallas de la calleglColor3f(1.0 , 1.0 , 1.0);glBegin(GL_POLYGON);glVertex2i(40,75);glVertex2i(40,85);glVertex2i(120,85);glVertex2i(120,75);
  49. 49. glEnd();//rallas de la calleglColor3f(1.0 , 1.0 , 1.0);glBegin(GL_POLYGON);glVertex2i(200,75);glVertex2i(200,85);glVertex2i(280,85);glVertex2i(280,75);glEnd();//rallas de la calleglColor3f(1.0 , 1.0 , 1.0);glBegin(GL_POLYGON);glVertex2i(420,75);glVertex2i(420,85);glVertex2i(500,85);glVertex2i(500,75);glEnd();//rallas de la calleglColor3f(1.0 , 1.0 , 1.0);glBegin(GL_POLYGON);glVertex2i(640,75);
  50. 50. glVertex2i(640,85);glVertex2i(720,85);glVertex2i(720,75);glEnd();//rallas de la calleglColor3f(1.0 , 1.0 , 1.0);glBegin(GL_POLYGON);glVertex2i(840,75);glVertex2i(840,85);glVertex2i(900,85);glVertex2i(900,75);glEnd();//saguanglColor3f(1.0 , 1.0 , 1.0);glBegin(GL_POLYGON);glVertex2i(320,470);glVertex2i(360,470);glVertex2i(360,440);glVertex2i(320,440);glEnd();
  51. 51. //cuadros de las ventanasglColor3f(1.0 , 1.0 , 1.0);glBegin(GL_POLYGON);glVertex2i(200,480);glVertex2i(260,480);glVertex2i(260,500);glVertex2i(200,500);glEnd();//cuadros de las ventanasglColor3f(1.0 , 1.0 , 1.0);glBegin(GL_POLYGON);glVertex2i(200,340);glVertex2i(260,340);glVertex2i(260,360);glVertex2i(200,360);glEnd();//cuadros de las ventanasglColor3f(1.0 , 1.0 , 1.0);glBegin(GL_POLYGON);glVertex2i(420,480);glVertex2i(420,500);glVertex2i(480,500);glVertex2i(480,480);
  52. 52. glEnd();//cuadros de las ventanasglColor3f(1.0 , 1.0 , 1.0);glBegin(GL_POLYGON);glVertex2i(420,340);glVertex2i(420,360);glVertex2i(480,360);glVertex2i(480,340);glEnd();glFlush(); //forza dibujo}int main (int argc, char** argv) //metodo main{glutInit(&argc, argv); //incializa GLUTglutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA); //establece el modo devisualizació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 devisualización
  53. 53. glutMainLoop(); //muestra todo y esperareturn 0; //retorna un valor de cero} SALIDA
  54. 54. OSOEste oso se diseñara solo con círculos y para ello se agregara la biblioteca de matpara poder copilar nuestro código en él se mostraran colores cafés y ojosdestellantes.BORRADOR CODIGO//mi primer ventana#include <GL/glut.h>#include <GL/gl.h>#include <math.h>void inicializa(void)
  55. 55. {glClearColor(2.2,0.0,1.0,0.0); //color de fondoglMatrixMode(GL_PROJECTION); //Modo de proyeccionglLoadIdentity(); //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);
  56. 56. for (angulo=0;angulo<=360; angulo+=1){ glVertex2f(x + sin(angulo) * radio,y + cos(angulo) * radio);} glEnd();}void dibuja(void) //funcion dibuja{//cuerpoglClear(GL_COLOR_BUFFER_BIT);glColor3f(0.560,0.360,0.188);circulo(250,150,100);glColor3f(1.0,0.0,0.0);circuloc(250,150,5,40);//cabezaglColor3f(0.560,0.360,0.188);circulo(250,325,100);glColor3f(0.560,0.360,0.188);circulo(150,425,50);glColor3f(0.560,0.360,0.188);circulo(350,425,50);//relleno de orejas
  57. 57. glColor3f(1.10,0.1,0.1);circulo(150,425,20);glColor3f(1.10,0.1,0.1);circulo(350,425,20);//extremidadesglColor3f(0.560,0.360,0.188);circulo(325,75,45);glColor3f(1.0,0.0,0.0);circulo(325,75,20);glColor3f(0.560,0.360,0.188);circulo(175,75,45);glColor3f(1.0,0.0,0.0);circulo(175,75,20);glColor3f(0.0,0.0,0.0);circuloc(325,75,5,45);glColor3f(0.0,0.0,0.0);circuloc(175,75,5,45);// 2 extremidadesglColor3f(0.560,0.360,0.188);circulo(350,175,45);glColor3f(1.0,0.0,0.0);circulo(350,175,20);
  58. 58. glColor3f(0.560,0.360,0.188);circulo(150,175,45);glColor3f(1.0,0.0,0.0);circulo(150,175,20);glColor3f(0.0,0.0,0.0);circuloc(350,175,5,45);glColor3f(0.0,0.0,0.0);circuloc(150,175,5,45);// caraglColor3f(1.0,1.0,1.0);circulo(300,350,25);glColor3f(1.0,1.0,1.0);circulo(200,350,25);// caraglColor3f(0.0,0.0,0.0);circulo(300,350,10);glColor3f(0.0,0.0,0.0);circulo(200,350,10);//narizglColor3f(0.0,0.0,0.0);circulo(250,325,20);glFlush(); //forza dibujo
  59. 59. }int main (int argc, char** argv) //metodo main{glutInit(&argc, argv); //incializa GLUTglutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA); //establece el modo devisualizació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 devisualizaciónglutMainLoop(); //muestra todo y esperareturn 0; //retorna un valor de cero} SALIDA
  60. 60. CUBO CON CUBITOSEn esta imagen se realizara un cubo que lleve cubitos de colores cada uno deellos en una cara distinta y los cubitos,se pueden hacer del tamaño que desees eneste caso los haremos normales. BORRADOR
  61. 61. CODIGO//mi primer ventana#include <GL/glut.h>#include <GL/gl.h>void inicializa(void){glClearColor(0.9,0.5,0.2,0.8); //color de fondoglMatrixMode(GL_PROJECTION); //Modo de proyeccionglLoadIdentity(); //Establece los parametros de proyecciongluOrtho2D(0.0, 600.0, 0.0, 600.0); //vista ortogonal
  62. 62. }void cubo (int x, int y,int t,int l){ double a=.8,b=.6;glColor3f(0.0 , 1.1 , 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(0.0 , 0.0 , 0.9);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(4);glBegin(GL_LINES);
  63. 63. 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);
  64. 64. glVertex2f(x+t,y+t);glEnd(); }void dibuja(void) //funcion dibuja{glClear(GL_COLOR_BUFFER_BIT); //borra pantallaglColor3f(1.0 , 0.0 , 0.0);//columna izquierda atrasfor(int i=0;i<=10;i++){cubo(260,220+20*i,20,5);}//abajo atrasfor(int j=0;j<=9;j++){cubo(280+20*j,220,20,5);}//arriba de atrasfor(int j=0;j<=10;j++){cubo(260+20*j,420,20,5);}//columna derecha atrasfor(int i=0;i<=10;i++){cubo(480,220+20*i,20,5);}
  65. 65. //los de enfrente//diagonales izquiercafor(int k=0;k<=8;k++){cubo(245-20*k*.8,407-20*k*.6,20,5);cubo(245-20*k*.8,207-20*k*.6,20,5);}//columna izquierda frentefor(int i=0;i<=10;i++){cubo(100,100+20*i,20,5);}//abajo frentefor(int j=0;j<=10;j++){cubo(120+20*j,100,20,5);//arriba frentecubo(120+20*j,300,20,5);}//diagonales derechafor(int k=0;k<=8;k++){cubo(466-20*k*.8,408-20*k*.6,20,5);cubo(466-20*k*.8,208-20*k*.6,20,5);}//columna derecha frentefor(int i=0;i<=10;i++){cubo(320,100+20*i,20,5);
  66. 66. }glFlush(); //forza dibujo}int main (int argc, char** argv) //metodo main{glutInit(&argc, argv); //incializa GLUTglutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA); //establece el modo devisualizació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 devisualizaciónglutMainLoop(); //muestra todo y esperareturn 0; //retorna un valor de cero}
  67. 67. SALIDA
  68. 68. MUÑECO CON FORMASEn este personaje utilizaremos diversas figuras geométricas al igual que líneas,polígonos y colores diversos. BORRADOR CODIGO//mi primer ventana
  69. 69. #include <GL/glut.h>#include <GL/gl.h>#include <GL/glu.h>#include <math.h>void inicializa(void){glClearColor(2.2,0.0,1.0,0.0); //color de fondoglMatrixMode(GL_PROJECTION); //Modo de proyeccionglLoadIdentity(); //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)
  70. 70. { 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); //borra pantallaglColor3f(1.0 , 1.0 , 0.0);glBegin(GL_POLYGON);glVertex2i(160,140);glVertex2i(160,160);glVertex2i(300,160);glVertex2i(300,140);glEnd();glColor3f(0.0 , 0.0 , 0.0);
  71. 71. glBegin(GL_POLYGON);glVertex2i(220,140);glVertex2i(220,160);glVertex2i(240,160);glVertex2i(240,140);glEnd();glColor3f(0.0 , 0.2 , 0.6);glBegin(GL_POLYGON);glVertex2i(160,140);glVertex2i(100,40);glVertex2i(160,20);glVertex2i(225,140);glEnd();glColor3f(0.0 , 0.2 , 0.6);glBegin(GL_POLYGON);glVertex2i(225,140);glVertex2i(280,20);glVertex2i(340,40);glVertex2i(300,140);glEnd();glColor3f(0.0 , 0.0 , 0.0);
  72. 72. glBegin(GL_TRIANGLES);glVertex2i(60,10);glVertex2i(160,20);glVertex2i(100,40);glEnd();glColor3f(0.0 , 0.0 , 0.0);glBegin(GL_TRIANGLES);glVertex2i(275,20);glVertex2i(380,10);glVertex2i(340,40);glEnd();glColor3f(1.0 , 0.0 , 0.0);glBegin(GL_QUADS);glVertex2i(160,160);glVertex2i(160,320);glVertex2i(300,320);glVertex2i(300,160);glEnd();glColor3f(0.8 , 0.5 , 0.4);
  73. 73. glBegin(GL_TRIANGLES);glVertex2i(200,320);glVertex2i(225,280);glVertex2i(260,320);glEnd();glColor3f(0.0 , 0.2 , 0.6);glBegin(GL_POLYGON);glVertex2i(225,140);glVertex2i(280,20);glVertex2i(340,40);glVertex2i(300,140);glEnd();glColor3f(1.0 , 0.0 , 0.0);glBegin(GL_POLYGON);glVertex2i(120,200);glVertex2i(80,200);glVertex2i(160,320);glVertex2i(160,280);glEnd();glColor3f(1.0 , 0.0 , 0.0);glBegin(GL_POLYGON);
  74. 74. glVertex2i(380,200);glVertex2i(340,200);glVertex2i(300,280);glVertex2i(300,320);glEnd();glColor3f(0.8 , 0.5 , 0.4);glBegin(GL_POLYGON);glVertex2i(200,320);glVertex2i(200,340);glVertex2i(260,340);glVertex2i(260,320);glEnd();//CUADRITOSglColor3f(0.0 , 0.0 , 0.0);glBegin(GL_QUADS);glVertex2i(220,260);glVertex2i(240,260);glVertex2i(240,280);glVertex2i(220,280);glEnd();
  75. 75. glColor3f(0.0 , 0.0 , 0.0);glBegin(GL_QUADS);glVertex2i(220,225);glVertex2i(240,225);glVertex2i(240,250);glVertex2i(220,250);glEnd();glColor3f(0.0 , 0.0 , 0.0);glBegin(GL_QUADS);glVertex2i(220,170);glVertex2i(240,170);glVertex2i(240,190);glVertex2i(220,190);glEnd();glColor3f(0.0 , 0.0 , 0.0);glBegin(GL_QUADS);glVertex2i(220,200);glVertex2i(240,200);glVertex2i(240,220);glVertex2i(220,220);glEnd();
  76. 76. glColor3f(0.8 , 0.5 , 0.4);glBegin(GL_POLYGON);glVertex2i(110,200);glVertex2i(100,160);glVertex2i(80,160);glVertex2i(90,200);glEnd();glColor3f(0.8 , 0.5 , 0.4);glBegin(GL_POLYGON);glVertex2i(350,200);glVertex2i(360,160);glVertex2i(380,160);glVertex2i(370,200);glEnd();glColor3f(0.8 , 0.5 , 0.4);glBegin(GL_POLYGON);glVertex2i(350,200);glVertex2i(360,160);glVertex2i(380,160);glVertex2i(370,200);
  77. 77. glEnd();//cabezaglColor3f(0.8,0.5,0.4);circulo(225,405,80);glColor3f(0.8,0.5,0.4);circulo(150,405,25);glColor3f(0.8,0.5,0.4);circulo(300,405,25);glColor3f(1.0,1.0,1.0);circulo(200,415,20);glColor3f(1.0,1.0,1.0);circulo(260,415,20);glColor3f(0.0,0.0,0.0);circulo(200,415,10);glColor3f(0.0,0.0,0.0);circulo(260,415,10);
  78. 78. glColor3f(0.0 , 0.0 , 0.0);glBegin(GL_TRIANGLES);glVertex2i(150,430);glVertex2i(140,450);glVertex2i(170,460);glEnd();glColor3f(0.0 , 0.0 , 0.0);glBegin(GL_TRIANGLES);glVertex2i(170,460);glVertex2i(160,498);glVertex2i(200,480);glEnd();glColor3f(0.0 , 0.0 , 0.0);glBegin(GL_TRIANGLES);glVertex2i(200,480);glVertex2i(215,515);glVertex2i(240,480);glEnd();
  79. 79. glColor3f(0.0 , 0.0 , 0.0);glBegin(GL_TRIANGLES);glVertex2i(220,480);glVertex2i(250,515);glVertex2i(260,475);glEnd();glColor3f(0.0 , 0.0 , 0.0);glBegin(GL_TRIANGLES);glVertex2i(260,475);glVertex2i(300,490);glVertex2i(280,450);glEnd();glColor3f(0.0 , 0.0 , 0.0);glBegin(GL_TRIANGLES);glVertex2i(280,450);glVertex2i(330,480);
  80. 80. glVertex2i(305,420);glEnd();//BOCAglColor3f(0.0 , 0.0 , 0.0);glBegin(GL_LINES);glVertex2i(200,360);glVertex2i(200,350);glVertex2i(200,350);glVertex2i(260,350);glVertex2i(260,350);glVertex2i(260,360);//NARIZglColor3f(0.0 , 0.0 , 0.0);glBegin(GL_LINES);glVertex2i(220,400);glVertex2i(220,360);glVertex2i(220,360);glVertex2i(240,360);//DEDOSglColor3f(0.0 , 0.0 , 0.0);
  81. 81. glBegin(GL_LINES);glVertex2i(80,160);glVertex2i(81,150);glVertex2i(81,150);glVertex2i(85,160);glColor3f(0.0 , 0.0 , 0.0);glBegin(GL_LINES);glVertex2i(85,160);glVertex2i(86,150);glVertex2i(86,150);glVertex2i(90,160);glColor3f(0.0 , 0.0 , 0.0);glBegin(GL_LINES);glVertex2i(90,160);glVertex2i(91,150);glVertex2i(91,150);glVertex2i(95,160);glColor3f(0.0 , 0.0 , 0.0);glBegin(GL_LINES);glVertex2i(95,160);
  82. 82. glVertex2i(96,150);glVertex2i(96,150);glVertex2i(100,160);//DEDOGORDO ARREGLARglColor3f(0.0 , 0.0 , 0.0);glBegin(GL_LINES);glVertex2i(85,180);glVertex2i(75,180);glVertex2i(75,180);glVertex2i(85,170);//mano derechaglColor3f(0.0 , 0.0 , 0.0);glBegin(GL_LINES);glVertex2i(362,160);glVertex2i(363,150);glVertex2i(363,150);glVertex2i(368,160);glColor3f(0.0 , 0.0 , 0.0);glBegin(GL_LINES);
  83. 83. glVertex2i(368,160);glVertex2i(369,150);glVertex2i(369,150);glVertex2i(374,160);glColor3f(0.0 , 0.0 , 0.0);glBegin(GL_LINES);glVertex2i(374,160);glVertex2i(375,150);glVertex2i(375,150);glVertex2i(380,160);//dedo gordoglColor3f(0.0 , 0.0 , 0.0);glBegin(GL_LINES);glVertex2i(362,180);glVertex2i(342,160);glVertex2i(342,160);glVertex2i(362,160);glEnd();
  84. 84. glEnd();glFlush(); //forza dibujo}int main (int argc, char** argv) //metodo main{glutInit(&argc, argv); //incializa GLUTglutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA); //establece el modo devisualizació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 devisualizaciónglutMainLoop(); //muestra todo y esperareturn 0; //retorna un valor de cero} SALIDA
  85. 85. ANIMACION DEL CÍRCULOEs esta animación simplemente aremos que el circulo gire con el siguiente códigoCODIGO#include <unistd.h>#include <GL/glut.h>#include <GL/gl.h>#include <math.h>int rad=100;
  86. 86. double ang=0;void inicializa(void){glClearColor(0.0,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); glColor3f (1.0,0.0,0.0); glVertex2f(x,y); glColor3f(1.0,1.0,1.0); for (angulo=0;angulo<=360; angulo++){ glVertex2f(x + sin(angulo) * radio, y+ cos(angulo) * radio);} glEnd();}void dibuja(void){glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);//estocirculo( 500+ sin(ang) * rad,500 + cos(ang) * rad,50); //funcion circuloang=ang+0.01; //velocidad entre mas grande mas rapido y entre menos mas lentofor(int j=1;j<=1000000;j++){}//pausa
  87. 87. if(ang==360){ang=0;}// se repite idefinidamenteglFlush(); //forzar dibujadoglutSwapBuffers(); //y esto}int main (int argc, char** argv){glutInit(&argc, argv);glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGBA| GLUT_DEPTH);//estotambienglutInitWindowSize(500,500);glutInitWindowPosition(200,400);glutCreateWindow("Ventana");inicializa();glutDisplayFunc(dibuja);glutIdleFunc(dibuja);//esto es lo que cambiaglutMainLoop();return 0;}
  88. 88. SALIDA SISTEMA SOLAREn el siguiente trabajo podrás observar una simulación de los planetas cada unode ellos llevar diversos tamaños y colores, y giraran en una órbita simulando lagalaxia. CODIGO#include <unistd.h>#include <GL/glut.h>
  89. 89. #include <GL/gl.h>#include <math.h>int rad=100;double ang=0;void inicializa(void){glClearColor(0.0,0.0,1.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); glColor3f (0.5, 0.5, 0.5); glVertex2f(x,y); glColor3f(0,0.0,0.0); for (angulo=0;angulo<=360; angulo++){ glVertex2f(x + sin(angulo) * radio, y+ cos(angulo) * radio);} glEnd();}void dibuja(void){glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);//esto
  90. 90. circulo( 500+ sin(ang) * rad,500 + cos(ang) * rad,10); //funcion circulocirculo( 500+ sin(ang) * 50,500 + cos(ang) * 50,10);circulo( 500+ sin(ang) * 150,500 + cos(ang) * 150,10);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 dibujadoglutSwapBuffers(); //y esto}int main (int argc, char** argv){glutInit(&argc, argv);glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGBA| GLUT_DEPTH);//estotambienglutInitWindowSize(1000,1000);glutInitWindowPosition(10,10);glutCreateWindow("Ventana");inicializa();glutDisplayFunc(dibuja);glutIdleFunc(dibuja);//esto es lo que cambiaglutMainLoop();return 0;}
  91. 91. SALIDA MOVIMIENTO EN 8En esta práctica podrás ver a una bolita que Cruza en 8 esto a causa de laanimación dada. CODIGO#include <unistd.h>
  92. 92. #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(1.0,1.0,0.0,1.0);glMatrixMode(GL_PROJECTION);glLoadIdentity();gluOrtho2D(0.0, 400.0, 0.0, 400.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);
  93. 93. circulo(300,180,70);glColor3f(0.0,0.0,0.0);circulo(300,300,50);circulo(300,180,50);glColor3f(1.0,0.3,1.0);if(a>=6.15 && a<=12.41){circulo(300+ sin (a)*60,300- cos(a)*60,10);a=a +0.01;}else{circulo(300 + sin (b) *60,180+cos(b)*60,10);b=b + 0.01;if(b>12.4){a=6.15;b=6.15;}for(int j=0; j<=10; j++) {}}
  94. 94. 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;} SALIDA
  95. 95. SEMAFORO
  96. 96. En este trabajo podrás hacer la simulación de un semáforo utilizando coloresdistintos , parecidos a los reales y se ara la simulación del cambio de color. BORRADORCODIGO#include <unistd.h>#include <GL/glut.h>#include <GL/gl.h>#include <math.h>int x=1,d=1, e=1,z=1,w=1, y=1;void inicializa(void){glClearColor(0.0,0.0,0.0,0.0);
  97. 97. glMatrixMode(GL_PROJECTION);glLoadIdentity();gluOrtho2D(0.0, 1000.0, 0.0, 800.0);// el ancho y largo de nuestra pantalla}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 (0.5, 0.5, 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();}
  98. 98. void dibuja(void){glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);glColor3f(0.8,1.0,0.0);glBegin(GL_QUADS);glVertex2i(400,800);glVertex2i(600,800);glVertex2i(600,400);glVertex2i(400,400);glEnd();glColor3f(0.8,1.0,0.0);glBegin(GL_QUADS);glVertex2i(480,400);glVertex2i(530,400);glVertex2i(530,50);glVertex2i(480,50);glEnd();glColor3f(0,0.0,0.0);circuloc(500,700,4,40);circuloc(500,600,4,40);circuloc(500,500,4,40);glColor3f(0.0,0.0,0.0);circulo(500,700,40);
  99. 99. circulo(500,600,40);circulo(500,500,40);glColor3f (1.0, 0.0, 0.0);if(x>=1 && x<600){circulo(500,700,40);glFlush();x++;}glColor3f (0.0, 1.0, 0.0);if(y>=1 && y<800 && x==600){circulo(500,500,40);glFlush();y++;}glColor3f(0.0,0.0,0.0);if(w>=1 && w<600 && y==800 && x==600){circulo(500,600,40);glFlush();w++;}glColor3f (0.0, 1., 0.0);if(z>=1 && z<800 && y==800 && x==600 && w==600){circulo(500,500,40);glFlush();z++;
  100. 100. }glColor3f(0.0,0.0,0.0);if(d>=1 && d<800 && y==800 && x==600 && w==600 && z==800){circulo(500,500,40);glFlush();d++;}glColor3f (1.0, 1., 0.0);if(e>=1 && e<800 && y==800 && x==600 && w==600 && d==800){circulo(500,600,40);glFlush();e++;}if(e==800) {e=1;d=1;z=1;x=1;y=1;w=1;}glutSwapBuffers();}int main (int argc, char** argv){glutInit(&argc, argv);
  101. 101. glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGBA| GLUT_DEPTH);glutInitWindowSize(800,600);glutInitWindowPosition(10,10);glutCreateWindow("Ventana");inicializa();glutDisplayFunc(dibuja);glutIdleFunc(dibuja);glutMainLoop();return 0;}SALIDA
  102. 102. PIRAMIDEEn esta práctica se hará una pirámide utilizando solo líneas y colores que desees esto esuna práctica sencilla y fácil aunque un poco tediosa.CODIGO//mi primer ventana#include <GL/glut.h>#include <GL/gl.h>#include <GL/glu.h>void inicializa(void){glClearColor(0.0,0.1,4.0,0.0); //color de fondoglMatrixMode(GL_PROJECTION); //Modo de proyeccionglLoadIdentity(); //Establece los parametros de proyecciongluOrtho2D(0.0, 500.0, 0.0, 500.0); //vista ortogonal}void dibuja(void) //funcion dibuja{ glLineWidth(4); int i=0,a=20;glClear(GL_COLOR_BUFFER_BIT); //borra pantallaglColor3f(1.0 , 0.0 , 0.0);
  103. 103. glBegin (GL_LINES);//Valor inicial--- Valor final o condicion--- incrementofor(i=1;i<=10; i++){//abajoglColor3f(1.0 , 1.0 , 0.0);glVertex2i(240-a*i,240+a*i);glVertex2i(260+a*i,240+a*i);//derechaglColor3f(1.0 , 0.0 , 0.0);glVertex2i(240-a*i,240+a*i);glVertex2i(240-a*i,220-a*i);// izquierdaglColor3f(1.0 , 1.0 , 0.0);glVertex2i(260+a*i,240+a*i);glVertex2i(260+a*i,220-a*i);//arribaglColor3f(1.0 , 1.0 , 0.0);glVertex2i(240-a*i,220-a*i);glVertex2i(260+a*i,220-a*i);}glEnd();glBegin(GL_LINES);
  104. 104. glVertex2i(42,20);glVertex2i(62,40);glVertex2i(82,60);glVertex2i(102,80);glVertex2i(122,100);glVertex2i(142,120);glVertex2i(162,140);glVertex2i(182,160);glVertex2i(202,180);glVertex2i(222,200);glVertex2i(282,260);glVertex2i(302,280);glVertex2i(322,300);glVertex2i(342,320);glVertex2i(362,340);
  105. 105. glVertex2i(382,360);glVertex2i(402,380);glVertex2i(422,400);glVertex2i(442,420);glVertex2i(462,440);//derecha izquierdaglVertex2i(42,440);glVertex2i(62,415);glVertex2i(82,400);glVertex2i(102,375);glVertex2i(122,360);glVertex2i(142,335);glVertex2i(162,320);glVertex2i(182,295);
  106. 106. glVertex2i(202,280);glVertex2i(222,255);glVertex2i(282,200);glVertex2i(302,180);glVertex2i(322,160);glVertex2i(342,140);glVertex2i(362,120);glVertex2i(382,100);glVertex2i(402,80);glVertex2i(422,60);glVertex2i(442,40);glVertex2i(462,20);
  107. 107. 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
  108. 108. } SALIDA

×