manual open gl

120
COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO Página 1 UTILIZACION DE SOFTWARE DE DISEÑO MANUAL DE OPEN GL PROFESOR: RENE DOMINGUEZ ESCALONA ALUMNOS: EDUARDO TAPIA HERNANDEZ Y CESAR RAFAEL ESCOBAR SANCHEZ GRUPO: 303 TURNO: MATUTINO ESPECIALIDAD: INFORMATICA

Upload: eduardo-tapia-hernandez

Post on 12-Jul-2015

270 views

Category:

Self Improvement


0 download

TRANSCRIPT

Page 1: Manual open gl

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 1

UTILIZACION DE SOFTWARE DE

DISEÑO

MANUAL DE OPEN GL

PROFESOR: RENE DOMINGUEZ ESCALONA

ALUMNOS: EDUARDO TAPIA HERNANDEZ Y

CESAR RAFAEL ESCOBAR SANCHEZ

GRUPO: 303

TURNO: MATUTINO

ESPECIALIDAD: INFORMATICA

Page 2: Manual open gl

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 2

INTRODUCCION: En este manual podremos dibujar en Open GL

atravez de códigos en los cuales se apreciaran

desde los más sencillos como hacer formas

geométricas tales como el rectángulo, triangulo,

circulo, cuadrado etc. Hasta los más complicados

como hacer figuras en 3D con movimiento

Este manual será de gran ayuda para aquellos que

cursen la materia de informática ya que viene

mucha información acerca de este programa de

Open GL.

Page 3: Manual open gl

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 3

Tablero de ajedrez

En esta práctica tenemos que hacer un tablero de

ajedrez en el programa de Open GL Dev c++ no

olvidemos que cada tablero de ajedrez tiene 8

cuadrados x 8 cuadrados así que tenemos que ser

muy precisos con nuestras coordenadas y poner

un cuadrado de color negro y uno de color blanco

tal y como es un ajedrez real.

Borrador con coordenadas utilizadas:

glBegin(GL_POINTS)

glPointSize();

Código:

//mi primer ventana

#include <GL/glut.h>

#include <GL/gl.h>

#include <GL/glu.h>

void inicializa(void)

{

Page 4: Manual open gl

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 4

glClearColor(0.0,0.0,1.0,0.0); //color de fondo

glMatrixMode(GL_PROJECTION); //Modo de proyeccion

glLoadIdentity(); //Establece los parametros de proyeccion

gluOrtho2D(0.0, 1050.0, 0.0, 1000.0); //vista ortogonal

}

void dibuja(void) //funcion dibuja

{

glClear(GL_COLOR_BUFFER_BIT); //borra pantalla

glColor3f(0.0 , 0.0 , 0.0);

glPointSize(60);

glBegin(GL_POINTS);

glVertex2i(100,100);

glVertex2i(347,100);

glVertex2i(597,100);

glVertex2i(848,100);

glVertex2i(220,220);

glVertex2i(473,220);

glVertex2i(723,220);

glVertex2i(970,220);

glVertex2i(100,340);

glVertex2i(347,340);

glVertex2i(597,340);

glVertex2i(848,340);

glVertex2i(220,460);

glVertex2i(473,460);

Page 5: Manual open gl

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 5

glVertex2i(723,460);

glVertex2i(970,460);

glVertex2i(100,580);

glVertex2i(347,580);

glVertex2i(597,580);

glVertex2i(848,580);

glVertex2i(220,700);

glVertex2i(473,700);

glVertex2i(723,700);

glVertex2i(970,700);

glVertex2i(100,820);

glVertex2i(347,820);

glVertex2i(597,820);

glVertex2i(848,820);

glEnd();

glColor3f(1.0 , 1.0 , 1.0);

glPointSize(60);

glBegin(GL_POINTS);

glVertex2i(220,100);

glVertex2i(473,100);

glVertex2i(723,100);

glVertex2i(970,100);

glVertex2i(100,220);

glVertex2i(347,220);

glVertex2i(597,220);

glVertex2i(848,220);

Page 6: Manual open gl

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 6

glVertex2i(220,340);

glVertex2i(473,340);

glVertex2i(723,340);

glVertex2i(970,340);

glVertex2i(100,460);

glVertex2i(347,460);

glVertex2i(597,460);

glVertex2i(848,460);

glVertex2i(220,580);

glVertex2i(473,580);

glVertex2i(723,580);

glVertex2i(970,580);

glVertex2i(100,700);

glVertex2i(347,700);

glVertex2i(597,700);

glVertex2i(848,700);

glVertex2i(220,820);

glVertex2i(473,820);

glVertex2i(723,820);

glVertex2i(970,820);

glEnd();

glFlush(); //forza dibujo

}

int main (int argc, char** argv) //metodo main

Page 7: Manual open gl

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 7

{

glutInit(&argc, argv); //incializa GLUT

glutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA); //establece el modo de

visualización

glutInitWindowSize(500,500); //tamaño de la ventana

glutInitWindowPosition(0,0); //posicion inicial de la ventana

glutCreateWindow("MI primer ventana"); //nombre de la ventana

inicializa();

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

glutMainLoop(); //muestra todo y espera

return 0; //retorna un valor de cero

}

Page 8: Manual open gl

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 8

Estrella

En esta nueva práctica tenemos que hacer una

estrella de 5 picos utilizando la instrucción ya

antes mencionada gl lines.

Borrador con coordenadas utilizadas:

glBegin(Gl _LINES);

Código:

//mi primer ventana

#include <GL/glut.h>

#include <GL/gl.h>

#include <GL/glu.h>

void inicializa(void)

{

glClearColor(1.0,0.0,1.0,0.0); //color de fondo

glMatrixMode(GL_PROJECTION); //Modo de proyeccion

glLoadIdentity(); //Establece los parametros de proyeccion

gluOrtho2D(0.0, 1000.0, 0.0, 1000.0); //vista ortogonal

}

void dibuja(void) //funcion dibuja

{

Page 9: Manual open gl

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 9

glClear(GL_COLOR_BUFFER_BIT); //borra pantalla

glColor3f(0.0 , 0.0 , 0.0);

glBegin(GL_LINES);

glVertex2i(400,700);

glVertex2i(700,100);

glVertex2i(700,100);

glVertex2i(100,500);

glVertex2i(100,500);

glVertex2i(800,500);

glVertex2i(800,500);

glVertex2i(200,100);

glVertex2i(200,100);

glVertex2i(400,700);

glEnd();

glFlush(); //forza dibujo

}

int main (int argc, char** argv) //metodo main

{

glutInit(&argc, argv); //incializa GLUT

glutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA); //establece el modo de

visualización

glutInitWindowSize(500,500); //tamaño de la ventana

glutInitWindowPosition(0,0); //posicion inicial de la ventana

glutCreateWindow("MI primer ventana"); //nombre de la ventana

Page 10: Manual open gl

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 10

inicializa();

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

glutMainLoop(); //muestra todo y espera

return 0; //retorna un valor de cero

}

Page 11: Manual open gl

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 11

Cubo con líneas

En esta ocasión realizaremos un cubo como en

efecto 3D utilizando la misma función de la

actividad pasada.

Borrador con coordenadas utilizadas:

glBegin(GL_LINES)

Código

//mi primer ventana

#include <GL/glut.h>

#include <GL/gl.h>

#include <GL/glu.h>

void inicializa(void)

{

glClearColor(1.0,0.0,1.0,0.0); //color de fondo

glMatrixMode(GL_PROJECTION); //Modo de proyeccion

glLoadIdentity(); //Establece los parametros de proyeccion

gluOrtho2D(0.0, 1000.0, 0.0, 1000.0); //vista ortogonal

Page 12: Manual open gl

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 12

}

void dibuja(void) //funcion dibuja

{

glClear(GL_COLOR_BUFFER_BIT); //borra pantalla

glColor3f(0.0 , 0.0 , 0.0);

glBegin(GL_LINES);

glVertex2i(200,300);

glVertex2i(400,300);

glVertex2i(200,300);

glVertex2i(200,500);

glVertex2i(400,300);

glVertex2i(400,500);

glVertex2i(400,500);

glVertex2i(200,500);

glVertex2i(200,300);

glVertex2i(300,400);

glVertex2i(400,300);

glVertex2i(500,400);

glVertex2i(300,400);

glVertex2i(500,400);

glVertex2i(500,400);

glVertex2i(500,600);

glVertex2i(500,600);

glVertex2i(300,600);

glVertex2i(300,600);

Page 13: Manual open gl

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 13

glVertex2i(300,400);

glVertex2i(300,600);

glVertex2i(200,500);

glVertex2i(400,500);

glVertex2i(500,600);

glEnd();

glFlush(); //forza dibujo

}

int main (int argc, char** argv) //metodo main

{

glutInit(&argc, argv); //incializa GLUT

glutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA); //establece el modo de

visualización

glutInitWindowSize(500,500); //tamaño de la ventana

glutInitWindowPosition(0,0); //posicion inicial de la ventana

glutCreateWindow("MI primer ventana"); //nombre de la ventana

inicializa();

Page 14: Manual open gl

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 14

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

glutMainLoop(); //muestra todo y espera

return 0; //retorna un valor de cero

}

Page 15: Manual open gl

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 15

Pirámide

En esta nueva practica tenemos que hacer una

pirámide que se vea como si alguien la estuviera

viendo desde arriba pueden ser varios cuadrados

del más grande al más chico o al contrario pero

tienen que ser 10 cuadrados.

Borrador con coordenadas utilizadas:

glBegin(GL_LINES);

for(i=1;i<=11;i++)

Código

#include <GL/glut.h>

#include <GL/gl.h>

#include <GL/glu.h>

void inicializa(void)

{

glClearColor(1.0,0.0,0.0,0.0); //color de fondo

glMatrixMode(GL_PROJECTION); //Modo de proyeccion

glLoadIdentity(); //Establece los parametros de proyeccion

gluOrtho2D(0.0, 1000.0, 0.0, 1000.0); //vista ortogonal

}

Page 16: Manual open gl

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 16

void dibuja(void) //funcion dibuja

{

int i,a=25;

glClear(GL_COLOR_BUFFER_BIT); //borra pantalla

glColor3f(1.0 , 1.0 , 1.0);

glLineWidth(2);

glBegin(GL_LINES);

//valor inicial ---- valor final o condicion ---- incremento

for(i=1;i<=11;i++){

//abajo

glVertex2i (250-a*i,250-a*i);

glVertex2i (270+a*i,250-a*i);

//derecha

glVertex2i (270+a*i,250-a*i);

glVertex2i (270+a*i,270+a*i);

//izquierda

glVertex2i (250-a*i,250-a*i);

glVertex2i (250-a*i,270+a*i);

//arriba

glVertex2i (250-a*i,270+a*i);

glVertex2i (270+a*i,270+a*i);

}

glEnd();

glFlush(); //forza dibujo

}

Page 17: Manual open gl

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 17

int main (int argc, char** argv) //metodo main

{

glutInit(&argc, argv); //incializa GLUT

glutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA); //establece el modo de

visualización

glutInitWindowSize(400,400); //tamaño de la ventana

glutInitWindowPosition(0,0); //posicion inicial de la ventana

glutCreateWindow("Cuadros"); //nombre de la ventana

inicializa();

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

glutMainLoop(); //muestra todo y espera

return 0; //retorna un valor de cero

}

Page 18: Manual open gl

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 18

Cubo delineado

Esta vez haremos un cubo como ya lo habíamos

hecho antes pero esta vez cada una de sus caras

tendrá que ir de un color deferente y el grosor de

las líneas tendrá que cambiar.

Borrador con coordenadas utilizadas

glBegin(GL_QUADS);

glLineWidth();

glBegin(GL_LINES);

Código

//mi primer ventana

#include <GL/glut.h>

#include <GL/gl.h>

#include <GL/glu.h>

void inicializa(void)

{

glClearColor(0.0,1.0,0.0,0.0); //color de fondo

glMatrixMode(GL_PROJECTION); //Modo de proyeccion

glLoadIdentity(); //Establece los parametros de proyeccion

gluOrtho2D(0.0, 1000.0, 0.0, 1000.0); //vista ortogonal

Page 19: Manual open gl

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 19

}

void dibuja(void) //funcion dibuja

{

glClear(GL_COLOR_BUFFER_BIT); //borra pantalla

glBegin(GL_QUADS);

glColor3f(1.0 , 0.0 , 0.0);

glVertex2i(200,300);

glVertex2i(400,300);

glVertex2i(400,500);

glVertex2i(200,500);

glColor3f(0.0 , 0.0 , 1.0);

glVertex2i(400,300);

glVertex2i(500,400);

glVertex2i(500,600);

glVertex2i(400,500);

glColor3f(0.0 , 1.0 , 1.0);

glVertex2i(400,500);

glVertex2i(500,600);

glVertex2i(300,600);

glVertex2i(200,500);

glEnd();

glColor3f(0.0 , 0.0 , 0.0);

glLineWidth(6);

Page 20: Manual open gl

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 20

glBegin(GL_LINES);

glVertex2i(200,300);

glVertex2i(400,300);

glVertex2i(200,300);

glVertex2i(200,500);

glVertex2i(400,300);

glVertex2i(400,500);

glVertex2i(400,500);

glVertex2i(200,500);

glVertex2i(200,300);

glVertex2i(300,400);

glVertex2i(400,300);

glVertex2i(500,400);

glVertex2i(300,400);

glVertex2i(500,400);

glVertex2i(500,400);

glVertex2i(500,600);

glVertex2i(500,600);

glVertex2i(300,600);

glVertex2i(300,600);

glVertex2i(300,400);

glVertex2i(300,600);

glVertex2i(200,500);

glVertex2i(400,500);

glVertex2i(500,600);

Page 21: Manual open gl

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 21

glEnd();

glFlush(); //forza dibujo

}

int main (int argc, char** argv) //metodo main

{

glutInit(&argc, argv); //incializa GLUT

glutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA); //establece el modo de

visualización

glutInitWindowSize(500,500); //tamaño de la ventana

glutInitWindowPosition(0,0); //posicion inicial de la ventana

glutCreateWindow("MI primer ventana"); //nombre de la ventana

inicializa();

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

glutMainLoop(); //muestra todo y espera

return 0; //retorna un valor de cero

}

Page 22: Manual open gl

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 22

Muñeco con triángulos

Esta vez haremos un muñeco en forma de

humano pero de puros triángulos utilizaremos una

nueva instrucción.

Borrador con coordenadas utilizadas:

glBegin(GL_TRIANGLES);

glBegin(GL_LINES);

glBegin(GL_QUADS);

Código

//mi primer ventana

#include <GL/glut.h>

#include <GL/gl.h>

#include <GL/glu.h>

void inicializa(void)

{

glClearColor(0.0,0.0,1.0,0.0); //color de fondo

glMatrixMode(GL_PROJECTION); //Modo de proyeccion

glLoadIdentity(); //Establece los parametros de proyeccion

gluOrtho2D(0.0, 1000.0, 0.0, 1000.0); //vista ortogonal

Page 23: Manual open gl

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 23

}

void dibuja(void) //funcion dibuja

{

glClear(GL_COLOR_BUFFER_BIT); //borra pantalla

glColor3f(0.0 , 1.0 , 0.0);

glBegin(GL_QUADS);

glVertex2i(360,700);

glVertex2i(360,370);

glVertex2i(630,370);

glVertex2i(630,700);

glEnd();

glColor3f(1.0 , 1.0 , 0.0);

glBegin(GL_TRIANGLES);

glVertex2i(470,700);

glVertex2i(500,650);

glVertex2i(530,700);

glEnd();

glColor3f(1.0 , 1.0 , 0.0);

glBegin(GL_TRIANGLES);

glVertex2i(400,900);

glVertex2i(500,700);

glVertex2i(600,900);

glEnd();

glColor3f(1.0 , 0.0 , 0.0);

glBegin(GL_TRIANGLES);

Page 24: Manual open gl

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 24

glVertex2i(310,900);

glVertex2i(500,990);

glVertex2i(690,900);

glEnd();

glColor3f(0.0 , 1.0 , 0.0);

glBegin(GL_QUADS);

glVertex2i(0,100);

glVertex2i(0,0);

glVertex2i(1000,0);

glVertex2i(1000,100);

glEnd();

glColor3f(1.0 , 1.0 , 0.0);

glBegin(GL_TRIANGLES);

glVertex2i(450,50);

glColor3f(1.0 ,1.0 ,1.0);

glVertex2i(450,370);

glVertex2i(380,300);

glEnd();

glColor3f(1.0 , 0.0 , 1.0);

glBegin(GL_TRIANGLES);

glVertex2i(450,50);

glVertex2i(370,110);

glVertex2i(290,50);

glEnd();

glColor3f(0.0 ,1.0 ,0.0);

glBegin(GL_TRIANGLES);

Page 25: Manual open gl

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 25

glVertex2i(360,700);

glColor3f(1.0 ,1.0 ,0.0);

glVertex2i(200,540);

glVertex2i(250,450);

glEnd();

glColor3f(0.0 ,1.0 ,0.0);

glBegin(GL_TRIANGLES);

glVertex2i(630,700);

glColor3f(1.0 ,1.0 ,0.0);

glVertex2i(800,530);

glVertex2i(750,440);

glEnd();

glColor3f(1.0 ,1.0 ,0.0);

glBegin(GL_TRIANGLES);

glVertex2i(190,600);

glVertex2i(200,540);

glVertex2i(130,500);

glEnd();

glColor3f(1.0 ,1.0 ,0.0);

glBegin(GL_TRIANGLES);

glVertex2i(820,600);

glVertex2i(800,530);

glVertex2i(860,470);

glEnd();

glColor3f(1.0 ,1.0 ,0.0);

glBegin(GL_TRIANGLES);

Page 26: Manual open gl

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 26

glVertex2i(710,270);

glColor3f(1.0 ,1.0 ,1.0);

glVertex2i(540,370);

glVertex2i(540,270);

glEnd();

glColor3f(1.0 ,1.0 ,0.0);

glBegin(GL_TRIANGLES);

glVertex2i(680,130);

glVertex2i(710,270);

glVertex2i(650,210);

glEnd();

glColor3f(1.0 ,0.0 ,1.0);

glBegin(GL_TRIANGLES);

glVertex2i(680,130);

glVertex2i(760,190);

glVertex2i(840,130);

glEnd();

glColor3f(0.0 ,0.0 ,0.0);

glBegin(GL_POLYGON);

glVertex2i(720,130);

glVertex2i(780,130);

glVertex2i(840,80);

glVertex2i(840,40);

glVertex2i(780,0);

glVertex2i(720,0);

glVertex2i(660,40);

Page 27: Manual open gl

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 27

glVertex2i(660,80);

glEnd();

glColor3f(0.0 ,1.0 ,1.0);

glBegin(GL_TRIANGLES);

glVertex2i(770,730);

glVertex2i(890,400);

glVertex2i(910,750);

glEnd();

glColor3f(0.0 ,1.0 ,1.0);

glBegin(GL_TRIANGLES);

glVertex2i(840,350);

glVertex2i(890,400);

glVertex2i(950,370);

glEnd();

glColor3f(0.0 ,0.0 ,0.0);

glBegin(GL_LINES);

glVertex2i(880,700);

glVertex2i(880,730);

glVertex2i(880,730);

glVertex2i(850,730);

glVertex2i(850,730);

glVertex2i(850,700);

glEnd();

glColor3f(0.0 ,0.0 ,0.0);

glBegin(GL_LINES);

glVertex2i(850,670);

Page 28: Manual open gl

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 28

glVertex2i(880,670);

glVertex2i(880,670);

glVertex2i(880,640);

glVertex2i(880,640);

glVertex2i(850,640);

glVertex2i(850,640);

glVertex2i(850,670);

glEnd();

glColor3f(0.0 ,0.0 ,0.0);

glBegin(GL_LINES);

glVertex2i(840,610);

glVertex2i(880,610);

glVertex2i(880,610);

glVertex2i(880,590);

glVertex2i(880,590);

glVertex2i(860,590);

glVertex2i(860,590);

glVertex2i(860,610);

glEnd();

glColor3f(0.0 ,0.0 ,0.0);

glBegin(GL_LINES);

glVertex2i(880,550);

glVertex2i(850,560);

glVertex2i(880,550);

glVertex2i(850,540);

glVertex2i(865,555);

Page 29: Manual open gl

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 29

glVertex2i(865,540);

glEnd();

glFlush(); //forza dibujo

}

int main (int argc, char** argv) //metodo main

{

glutInit(&argc, argv); //incializa GLUT

glutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA); //establece el modo de

visualización

glutInitWindowSize(500,500); //tamaño de la ventana

glutInitWindowPosition(0,0); //posicion inicial de la ventana

glutCreateWindow("MI primer ventana"); //nombre de la ventana

inicializa();

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

glutMainLoop(); //muestra todo y espera

return 0; //retorna un valor de cero

}

Page 30: Manual open gl

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 30

Casita

Ahora realizaremos una casa con todo lo

aprendido hasta ahora esta casa tiene que tener

cuadrados, carretera, triángulos, etc.

Borrador con coordenadas utilizadas:

glBegin(GL_QUADS);

glBegin(GL_LINES);

glBegin(GL_POLYGON);

glBegin(GL_TRIANGLES);

Código

//mi primer ventana

#include <GL/glut.h>

#include <GL/gl.h>

#include <GL/glu.h>

void inicializa(void)

{

glClearColor(0.0,1.0,1.0,0.0); //color de fondo

glMatrixMode(GL_PROJECTION); //Modo de proyeccion

glLoadIdentity(); //Establece los parametros de proyeccion

gluOrtho2D(0.0, 1000.0,0.0, 1000.0); //vista ortogonal

Page 31: Manual open gl

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 31

}

void dibuja(void) //funcion dibuja

{

glClear(GL_COLOR_BUFFER_BIT); //borra pantalla

glColor3f(0.0 , 0.0 , 0.0);

//carretera

glBegin(GL_QUADS);

glVertex2i(0,200);

glVertex2i(0,0);

glVertex2i(1000,0);

glVertex2i(1000,200);

glEnd();

glColor3f(1.0 , 1.0 , 1.0);

glLineWidth(2);

glBegin(GL_LINES);

glVertex2i(10,100);

glVertex2i(100,100);

glVertex2i(200,100);

glVertex2i(300,100);

glVertex2i(400,100);

glVertex2i(500,100);

glVertex2i(600,100);

glVertex2i(700,100);

glVertex2i(800,100);

Page 32: Manual open gl

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 32

glVertex2i(900,100);

glVertex2i(980,100);

glVertex2i(1000,100);

glEnd();

//pasto

glColor3f(0.0 , 1.0 , 0.0);

glBegin(GL_QUADS);

glVertex2i(0,500);

glVertex2i(0,200);

glVertex2i(1000,200);

glVertex2i(1000,500);

glEnd();

//linea amarilla

glColor3f(1.0 , 1.0 , 0.0);

glLineWidth(8);

glBegin(GL_LINES);

glVertex2i(0,200);

glVertex2i(1000,200);

glEnd();

//banqueta

glColor3f(0.5 , 0.5 , 0.5);

glLineWidth(50);

glBegin(GL_QUADS);

glVertex2i(0,208);

glVertex2i(0,300);

Page 33: Manual open gl

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 33

glVertex2i(1000,300);

glVertex2i(1000,208);

glVertex2i(440,300);

glVertex2i(440,450);

glVertex2i(560,450);

glVertex2i(560,300);

glEnd();

glColor3f(0.5 , 0.5 , 0.5);

glBegin(GL_QUADS);

glVertex2i(200,350);

glVertex2i(200,380);

glVertex2i(250,380);

glVertex2i(250,350);

glVertex2i(150,350);

glVertex2i(150,380);

glVertex2i(100,380);

glVertex2i(100,350);

glVertex2i(200,400);

glVertex2i(200,430);

glVertex2i(250,430);

glVertex2i(250,400);

glVertex2i(150,400);

Page 34: Manual open gl

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 34

glVertex2i(150,430);

glVertex2i(100,430);

glVertex2i(100,400);

glEnd();

//serca

glColor3f(1.0 , 1.0 , 0.0);

glBegin(GL_POLYGON);

glVertex2i(0,540);

glVertex2i(0,480);

glVertex2i(20,480);

glVertex2i(20,540);

glVertex2i(10,550);

glEnd();

glBegin(GL_POLYGON);

glVertex2i(40,540);

glVertex2i(40,480);

glVertex2i(60,480);

glVertex2i(60,540);

glVertex2i(50,550);

glEnd();

glBegin(GL_POLYGON);

glVertex2i(710,540);

glVertex2i(710,480);

glVertex2i(730,480);

glVertex2i(730,540);

glVertex2i(720,550);

Page 35: Manual open gl

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 35

glEnd();

glBegin(GL_POLYGON);

glVertex2i(750,540);

glVertex2i(750,480);

glVertex2i(770,480);

glVertex2i(770,540);

glVertex2i(760,550);

glEnd();

glBegin(GL_POLYGON);

glVertex2i(790,540);

glVertex2i(790,480);

glVertex2i(810,480);

glVertex2i(810,540);

glVertex2i(800,550);

glEnd();

glBegin(GL_POLYGON);

glVertex2i(830,540);

glVertex2i(830,480);

glVertex2i(850,480);

glVertex2i(850,540);

glVertex2i(840,550);

glEnd();

glBegin(GL_POLYGON);

glVertex2i(870,540);

glVertex2i(870,480);

glVertex2i(890,480);

Page 36: Manual open gl

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 36

glVertex2i(890,540);

glVertex2i(880,550);

glEnd();

glBegin(GL_POLYGON);

glVertex2i(910,540);

glVertex2i(910,480);

glVertex2i(930,480);

glVertex2i(930,540);

glVertex2i(920,550);

glEnd();

glBegin(GL_POLYGON);

glVertex2i(950,540);

glVertex2i(950,480);

glVertex2i(970,480);

glVertex2i(970,540);

glVertex2i(960,550);

glEnd();

glBegin(GL_POLYGON);

glVertex2i(990,540);

glVertex2i(990,480);

glVertex2i(1010,480);

glVertex2i(1010,540);

glVertex2i(1000,550);

glEnd();

glColor3f(1.0 , 1.0 , 0.0);

glLineWidth(10);

Page 37: Manual open gl

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 37

glBegin(GL_LINES);

glVertex2i(0,520);

glVertex2i(1000,520);

glEnd();

//casa

glColor3f(1.0 , 1.0 , 0.0);

glBegin(GL_QUADS);

glVertex2i(300,750);

glVertex2i(300,450);

glVertex2i(700,450);

glVertex2i(700,750);

glEnd();

glColor3f(0.0 , 0.0 , 1.0);

glLineWidth(14);

glBegin(GL_LINES);

glVertex2i(300,600);

glVertex2i(700,600);

glVertex2i(440,450);

glVertex2i(440,750);

glVertex2i(560,450);

glVertex2i(560,750);

glEnd();

//techo casa

glColor3f(1.0 , 0.0 , 0.0);

glBegin(GL_POLYGON);

glVertex2i(300,820);

Page 38: Manual open gl

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 38

glVertex2i(240,750);

glVertex2i(760,750);

glVertex2i(700,820);

glEnd();

//triangulo techo casa

glColor3f(0.7 , 0.2 , 0.2);

glBegin(GL_TRIANGLES);

glVertex2i(600,720);

glVertex2i(500,800);

glVertex2i(400,720);

glEnd();

//puerta casa

glColor3f(1.0 , 1.0 , 1.0);

glBegin(GL_QUADS);

glVertex2i(454,450);

glVertex2i(454,570);

glVertex2i(546,570);

glVertex2i(546,450);

glColor3f(1.0 , 0.0 , 1.0);

glVertex2i(474,470);

glVertex2i(474,550);

glVertex2i(526,550);

glVertex2i(526,470);

glEnd();

glColor3f(0.0 ,0.0 , 0.0);

glPointSize(3);

Page 39: Manual open gl

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 39

glBegin(GL_POINTS);

glVertex2i(464,505);

glEnd();

//ventanas casa

glColor3f(1.0 , 0.0 , 1.0);

glBegin(GL_QUADS);

glVertex2i(320,570);

glVertex2i(320,510);

glVertex2i(400,510);

glVertex2i(400,570);

glVertex2i(595,570);

glVertex2i(595,510);

glVertex2i(675,510);

glVertex2i(675,570);

glVertex2i(320,730);

glVertex2i(320,660);

glVertex2i(400,660);

glVertex2i(400,730);

glVertex2i(595,730);

glVertex2i(595,660);

glVertex2i(675,660);

glVertex2i(675,730);

glEnd();

Page 40: Manual open gl

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 40

glColor3f(1.0 , 1.0 , 1.0);

glLineWidth(4);

glBegin(GL_LINES);

glVertex2i(320,570);

glVertex2i(320,510);

glVertex2i(320,510);

glVertex2i(400,510);

glVertex2i(400,510);

glVertex2i(400,570);

glVertex2i(400,570);

glVertex2i(320,570);

glVertex2i(320,530);

glVertex2i(400,530);

glVertex2i(360,530);

glVertex2i(360,510);

glVertex2i(595,570);

glVertex2i(595,510);

glVertex2i(595,510);

glVertex2i(675,510);

glVertex2i(675,510);

glVertex2i(675,570);

glVertex2i(675,570);

glVertex2i(595,570);

glVertex2i(595,530);

glVertex2i(675,530);

Page 41: Manual open gl

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 41

glVertex2i(635,530);

glVertex2i(635,510);

glVertex2i(320,730);

glVertex2i(320,660);

glVertex2i(320,660);

glVertex2i(400,660);

glVertex2i(400,660);

glVertex2i(400,730);

glVertex2i(400,730);

glVertex2i(320,730);

glVertex2i(320,680);

glVertex2i(400,680);

glVertex2i(360,680);

glVertex2i(360,660);

glVertex2i(595,730);

glVertex2i(595,660);

glVertex2i(595,660);

glVertex2i(675,660);

glVertex2i(675,660);

glVertex2i(675,730);

glVertex2i(675,730);

glVertex2i(595,730);

glVertex2i(595,680);

glVertex2i(675,680);

Page 42: Manual open gl

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 42

glVertex2i(635,680);

glVertex2i(635,660);

glEnd();

//balcon casa

glColor3f(1.0 , 0.0 , 1.0);

glBegin(GL_QUADS);

glVertex2i(454,720);

glVertex2i(454,600);

glVertex2i(546,600);

glVertex2i(546,720);

glEnd();

glColor3f(1.0 , 1.0, 1.0);

glLineWidth(3);

glBegin(GL_LINES);

glVertex2i(455,640);

glVertex2i(455,600);

glVertex2i(467,640);

glVertex2i(467,600);

glVertex2i(479,640);

glVertex2i(479,600);

glVertex2i(491,640);

glVertex2i(491,600);

glVertex2i(503,640);

glVertex2i(503,600);

glVertex2i(515,640);

Page 43: Manual open gl

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 43

glVertex2i(515,600);

glVertex2i(527,640);

glVertex2i(527,600);

glVertex2i(539,640);

glVertex2i(539,600);

glVertex2i(455,640);

glVertex2i(546,640);

glVertex2i(505,640);

glVertex2i(505,720);

glEnd();

//cochera

glColor3f(0.8 , 0.8 , 0.8);

glBegin(GL_QUADS);

glVertex2i(90,450);

glVertex2i(90,600);

glVertex2i(300,600);

glVertex2i(300,450);

glEnd();

glColor3f(0.0 , 0.0, 1.0);

glLineWidth(12);

glBegin(GL_LINES);

glVertex2i(90,450);

glVertex2i(90,600);

glEnd();

//techo cochera

glColor3f(1.0 , 0.0 , 0.0);

Page 44: Manual open gl

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 44

glBegin(GL_POLYGON);

glVertex2i(90,660);

glVertex2i(60,600);

glVertex2i(300,600);

glVertex2i(300,660);

glEnd();

//pinos

glColor3f(0.5 , 0.3 , 0.3);

glBegin(GL_QUADS);

glVertex2i(850,450);

glVertex2i(900,450);

glVertex2i(900,530);

glVertex2i(850,530);

glEnd();

int i,a=9;

glColor3f(0.1 , 0.3 , 0.2);

glLineWidth(3);

glBegin(GL_LINES);

for(i=0;i<=14;i++){

glVertex2i(1000-a*i,530+a*i);

glVertex2i(740+a*i,530+a*i);

}

glEnd();

glFlush(); //forza dibujo

Page 45: Manual open gl

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 45

}

int main (int argc, char** argv) //metodo main

{

glutInit(&argc, argv); //incializa GLUT

glutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA); //establece el modo de

visualización

glutInitWindowSize(500,500); //tamaño de la ventana

glutInitWindowPosition(0,0); //posicion inicial de la ventana

glutCreateWindow("MI primer ventana"); //nombre de la ventana

inicializa();

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

glutMainLoop(); //muestra todo y espera

return 0; //retorna un valor de cero

}

Page 46: Manual open gl

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 46

Oso

En esta práctica haremos un la forma de un oso

aplicando un nuevo código.

Borrador con coordenadas utilizadas:

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

Código

//mi primer ventana

#include <GL/glut.h>

#include <GL/gl.h>

#include <math.h>

void inicializa(void)

{

glClearColor(1.0,1.0,1.0,0.0); //color de fondo

glMatrixMode(GL_PROJECTION); //Modo de proyeccion

glLoadIdentity(); //Establece los parametros de proyeccion

gluOrtho2D(0.0, 1000.0, 0.0, 1000.0); //vista ortogonal

}

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

{

int angulo=0;

glPointSize(t);

glBegin(GL_POINTS);

Page 47: Manual open gl

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 47

//glColor3f (1.0, 0.0, 1.0);

glVertex2f(x,y);

//glColor3f(0,0.0,0.0);

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

cos(angulo) * radio);}

glEnd();

}

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

{

int angulo=0;

glBegin(GL_TRIANGLE_FAN);

// glColor3f (1.0, 0.0, 1.0);

glVertex2f(x,y);

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

cos(angulo) * radio);}

glEnd();

}

void dibuja(void) //funcion dibuja

{

glClear(GL_COLOR_BUFFER_BIT); //borra pantalla

glColor3f(1.0,0.0,0.0);

circuloc(250,250,5,150);

circuloc(150,100,5,50);

Page 48: Manual open gl

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 48

circuloc(350,100,5,50);

circuloc(100,350,5,50);

circuloc(400,350,5,50);

circuloc(250,450,5,125);

circuloc(175,600,5,55);

circuloc(325,600,5,55);

glColor3f(0.0,0.0,0.0);

circuloc(200,500,5,25);

glColor3f(1.0,1.0,0.5);

circulo(250,250,150);

circulo(350,100,50);

circulo(150,100,50);

circulo(250,450,125);

circulo(400,350,50);

circulo(100,350,50);

circulo(325,600,55);

circulo(175,600,55);

///////////////////////////////////////////////////////////////////////////////

glColor3f(0.0,0.0,0.0);

circuloc(200,500,1,25);

circuloc(300,500,1,25);

glColor3f(1.0,1.0,1.0);

circulo(200,500,25);

glColor3f(0.0,0.0,0.0);

circulo(200,500,15);

Page 49: Manual open gl

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 49

glColor3f(1.0,1.0,1.0);

circulo(300,500,25);

circulo(325,600,40);

circulo(175,600,40);

glColor3f(0.0,0.0,0.0);

circulo(300,500,15);

glFlush(); //forza dibujo

}

int main (int argc, char** argv) //metodo main

{

glutInit(&argc, argv); //incializa GLUT

glutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA); //establece el modo de

visualización

glutInitWindowSize(500,500); //tamaño de la ventana

glutInitWindowPosition(100,100); //posicion inicial de la ventana

glutCreateWindow("Ventana"); //nombre de la ventana

inicializa();

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

glutMainLoop(); //muestra todo y espera

return 0; //retorna un valor de cero

}

Page 50: Manual open gl

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 50

Page 51: Manual open gl

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 51

Cubo con cubitos

En este ejercicio hacer un cubo como el que ya

hicimos anteriormente pero esta vez en vez de

líneas será hecho por puros cubitos chiquitos.

Borrador con coordenadas utilizadas:

glBegin(GL_LINES);

glBegin(GL_QUADS);

for(i=0;i<=10;i++){

for(i=0;i<=10;i++){

Código

//mi primer ventana

#include <GL/glut.h>

#include <GL/gl.h>

#include <GL/glu.h>

void inicializa(void)

{

glClearColor(0.0,0.0,0.0,0.0); //color de fondo

glMatrixMode(GL_PROJECTION); //Modo de proyeccion

glLoadIdentity(); //Establece los parametros de proyeccion

gluOrtho2D(0.0, 2000.0, 0.0, 2000.0); //vista ortogonal

Page 52: Manual open gl

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 52

}

void dibuja(void) //funcion dibuja

{

int i,a=100;

glClear(GL_COLOR_BUFFER_BIT);

////////////////////////////////////////////////////////////////////////////

///////////////////////////////////////////////////////////////////////////

for(i=0;i<=10;i++){

glColor3f(6.0 ,0.8 ,0.5 );

glLineWidth(8);

glBegin(GL_QUADS);

//izquierda

glVertex2i(700,600+a*i);

glVertex2i(700,700+a*i);

//arriva

glVertex2i(750,750+a*i);

//derecha

Page 53: Manual open gl

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 53

glVertex2i(750,650+a*i);

glEnd();

glColor3f(0.0 ,0.8 ,6.0 );

glLineWidth(8);

glBegin(GL_QUADS);

//cuadro

//izquierda

glVertex2i(600,600+a*i);

glVertex2i(600,700+a*i);

//arriva

glVertex2i(700,700+a*i);

//derecha

glVertex2i(700,600+a*i);

//abajo

glEnd();

glColor3f(0.0 ,6.0 ,0.5 );

glLineWidth(8);

glBegin(GL_QUADS);

Page 54: Manual open gl

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 54

//cuadro

//izquierda

glVertex2i(600,700+a*i);

glVertex2i(650,750+a*i);

//arriva

glVertex2i(750,750+a*i);

//derecha

glVertex2i(700,700+a*i);

//abajo

glEnd();

//cuadro

glColor3f(0.0 ,0.0 ,6.0 );

glLineWidth(4);

glBegin(GL_LINES);

//cuadro

//izquierda

glVertex2i(600,600+a*i);

glVertex2i(600,700+a*i);

//arriva

glVertex2i(600,700+a*i);

glVertex2i(700,700+a*i);

//derecha

glVertex2i(700,700+a*i);

glVertex2i(700,600+a*i);

//abajo

Page 55: Manual open gl

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 55

glVertex2i(700,600+a*i);

glVertex2i(600,600+a*i);

//diagonal derecha esquina arriva

glVertex2i(650,750+a*i);

glVertex2i(600,700+a*i);

//linea cuadro atras

//linea cuadro atras

glVertex2i(650,750+a*i);

glVertex2i(750,750+a*i);

//linea derecha atras

glVertex2i(750,750+a*i);

glVertex2i(750,650+a*i);

//linea abajo derecha diagonal

glVertex2i(700,600+a*i);

glVertex2i(750,650+a*i);

//linea arriva derecha diagonal

glVertex2i(700,700+a*i);

glVertex2i(750,750+a*i);

glEnd();

}

Page 56: Manual open gl

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 56

////////////////////////////////////////////////////////////////////////

for(i=0;i<=10;i++){

glColor3f(1.0 ,0.8 ,0.5 );

glLineWidth(8);

glBegin(GL_QUADS);

//izquierda

glVertex2i(1700,1600);

glVertex2i(1700,1700);

//arriva

glVertex2i(1750,1750);

//derecha

glVertex2i(1750,1650);

glEnd();

glColor3f(0.0 ,0.8 ,1.0 );

glLineWidth(8);

glBegin(GL_QUADS);

//cuadro

Page 57: Manual open gl

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 57

//izquierda

glVertex2i(1600-a*i,1600);

glVertex2i(1600-a*i,1700);

//arriva

glVertex2i(1700-a*i,1700);

//derecha

glVertex2i(1700-a*i,1600);

//abajo

glEnd();

glColor3f(0.0 ,1.0 ,0.5 );

glLineWidth(8);

glBegin(GL_QUADS);

//cuadro

//izquierda

glVertex2i(1600-a*i,1700);

glVertex2i(1650-a*i,1750);

//arriva

glVertex2i(1750-a*i,1750);

//derecha

glVertex2i(1700-a*i,1700);

//abajo

glEnd();

Page 58: Manual open gl

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 58

//cuadro

glColor3f(0.0 ,0.0 ,1.0 );

glLineWidth(4);

glBegin(GL_LINES);

//cuadro

//izquierda

glVertex2i(1600-a*i,1600);

glVertex2i(1600-a*i,1700);

//arriva

glVertex2i(1600-a*i,1700);

glVertex2i(1700-a*i,1700);

//derecha

glVertex2i(1700-a*i,1700);

glVertex2i(1700-a*i,1600);

//abajo

glVertex2i(1700-a*i,1600);

glVertex2i(1600-a*i,1600);

//diagonal derecha esquina arriva

glVertex2i(1650-a*i,1750);

glVertex2i(1600-a*i,1700);

//linea cuadro atras

//linea cuadro atras

glVertex2i(1650-a*i,1750);

glVertex2i(1750-a*i,1750);

//linea derecha atras

Page 59: Manual open gl

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 59

glVertex2i(1750,1750);

glVertex2i(1750,1650);

//linea abajo derecha diagonal

glVertex2i(1700,1600);

glVertex2i(1750,1650);

//linea arriva derecha diagonal

glVertex2i(1700-a*i,1700);

glVertex2i(1750-a*i,1750);

glEnd();

}

///////////////////////////////////////////////////////////////////////

for(i=0;i<=9;i++){

glColor3f(1.0 ,0.8 ,0.5 );

glLineWidth(8);

glBegin(GL_QUADS);

Page 60: Manual open gl

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 60

//izquierda

glVertex2i(1700,600);

glVertex2i(1700,700);

//arriva

glVertex2i(1750,750);

//derecha

glVertex2i(1750,650);

glEnd();

glColor3f(0.0 ,0.8 ,1.0 );

glLineWidth(8);

glBegin(GL_QUADS);

//cuadro

//izquierda

glVertex2i(1600-a*i,600);

glVertex2i(1600-a*i,700);

//arriva

glVertex2i(1700-a*i,700);

//derecha

glVertex2i(1700-a*i,600);

//abajo

Page 61: Manual open gl

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 61

glEnd();

glColor3f(0.0 ,1.0 ,0.5 );

glLineWidth(8);

glBegin(GL_QUADS);

//cuadro

//izquierda

glVertex2i(1600-a*i,700);

glVertex2i(1650-a*i,750);

//arriva

glVertex2i(1750-a*i,750);

//derecha

glVertex2i(1700-a*i,700);

//abajo

glEnd();

//cuadro

glColor3f(0.0 ,0.0 ,1.0 );

glLineWidth(4);

glBegin(GL_LINES);

//cuadro

//izquierda

glVertex2i(1600-a*i,600);

glVertex2i(1600-a*i,700);

Page 62: Manual open gl

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 62

//arriva

glVertex2i(1600-a*i,700);

glVertex2i(1700-a*i,700);

//derecha

glVertex2i(1700-a*i,700);

glVertex2i(1700-a*i,600);

//abajo

glVertex2i(1700-a*i,600);

glVertex2i(1600-a*i,600);

//diagonal derecha esquina arriva

glVertex2i(1650-a*i,750);

glVertex2i(1600-a*i,700);

//linea cuadro atras

//linea cuadro atras

glVertex2i(1650-a*i,750);

glVertex2i(1750-a*i,750);

//linea derecha atras

glVertex2i(1750,750);

glVertex2i(1750,650);

//linea abajo derecha diagonal

glVertex2i(1700,600);

glVertex2i(1750,650);

//linea arriva derecha diagonal

Page 63: Manual open gl

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 63

glVertex2i(1700-a*i,700);

glVertex2i(1750-a*i,750);

glEnd();

}

//////////////////////////////////////////////////////////////////////

for(i=0;i<=10;i++){

glColor3f(16.0 ,0.8 ,0.5 );

glLineWidth(8);

glBegin(GL_QUADS);

//izquierda

glVertex2i(1700,600+a*i);

glVertex2i(1700,700+a*i);

//arriva

glVertex2i(1750,750+a*i);

//derecha

glVertex2i(1750,650+a*i);

Page 64: Manual open gl

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 64

glEnd();

glColor3f(0.0 ,0.8 ,6.0 );

glLineWidth(8);

glBegin(GL_QUADS);

//cuadro

//izquierda

glVertex2i(1600,600+a*i);

glVertex2i(1600,700+a*i);

//arriva

glVertex2i(1700,700+a*i);

//derecha

glVertex2i(1700,600+a*i);

//abajo

glEnd();

glColor3f(0.0 ,6.0 ,0.5 );

glLineWidth(8);

glBegin(GL_QUADS);

//cuadro

//izquierda

Page 65: Manual open gl

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 65

glVertex2i(1600,700+a*i);

glVertex2i(1650,750+a*i);

//arriva

glVertex2i(1750,750+a*i);

//derecha

glVertex2i(1700,700+a*i);

//abajo

glEnd();

//cuadro

glColor3f(0.0 ,0.0 ,6.0 );

glLineWidth(4);

glBegin(GL_LINES);

//cuadro

//izquierda

glVertex2i(1600,600+a*i);

glVertex2i(1600,700+a*i);

//arriva

glVertex2i(1600,700+a*i);

glVertex2i(1700,700+a*i);

//derecha

glVertex2i(1700,700+a*i);

glVertex2i(1700,600+a*i);

//abajo

glVertex2i(1700,600+a*i);

glVertex2i(1600,600+a*i);

Page 66: Manual open gl

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 66

//diagonal derecha esquina arriva

glVertex2i(1650,750+a*i);

glVertex2i(1600,700+a*i);

//linea cuadro atras

//linea cuadro atras

glVertex2i(1650,750+a*i);

glVertex2i(1750,750+a*i);

//linea derecha atras

glVertex2i(1750,750+a*i);

glVertex2i(1750,650+a*i);

//linea abajo derecha diagonal

glVertex2i(1700,600+a*i);

glVertex2i(1750,650+a*i);

//linea arriva derecha diagonal

glVertex2i(1700,700+a*i);

glVertex2i(1750,750+a*i);

glEnd();

}

//////////////////////////////////////////////////////////////////////

for(i=0;i<=9;i++){

Page 67: Manual open gl

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 67

glColor3f(1.0 ,0.8 ,0.5 );

glLineWidth(8);

glBegin(GL_QUADS);

//izquierda

glVertex2i(200+(50*i),100+(50*i));

glVertex2i(200+(50*i),200+(50*i));

//arriva

glVertex2i(250+(50*i),250+(50*i));

//derecha

glVertex2i(250+(50*i),150+(50*i));

glEnd();

glColor3f(0.0 ,0.8 ,1.0 );

glLineWidth(8);

glBegin(GL_QUADS);

//cuadro

//izquierda

glVertex2i(100,100);

glVertex2i(100,200);

//arriva

Page 68: Manual open gl

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 68

glVertex2i(200,200);

//derecha

glVertex2i(200,100);

//abajo

glEnd();

glColor3f(0.0 ,1.0 ,0.5 );

glLineWidth(8);

glBegin(GL_QUADS);

//cuadro

//izquierda

glVertex2i(100+(50*i),200+(50*i));

glVertex2i(150+(50*i),250+(50*i));

//arriva

glVertex2i(250+(50*i),250+(50*i));

//derecha

glVertex2i(200+(50*i),200+(50*i));

//abajo

glEnd();

//cuadro

glColor3f(0.0 ,0.0 ,1.0 );

glLineWidth(4);

glBegin(GL_LINES);

Page 69: Manual open gl

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 69

//cuadro

//izquierda

glVertex2i(100,100);

glVertex2i(100,200);

//arriva

glVertex2i(100+(50*i),200+(50*i));

glVertex2i(200+(50*i),200+(50*i));

//derecha

glVertex2i(200+(50*i),200+(50*i));

glVertex2i(200+(50*i),100+(50*i));

//abajo

glVertex2i(200,100);

glVertex2i(100,100);

//diagonal derecha esquina arriva

glVertex2i(150+(50*i),250+(50*i));

glVertex2i(100+(50*i),200+(50*i));

//linea cuadro atras

//linea cuadro atras

glVertex2i(150+(50*i),250+(50*i));

glVertex2i(250+(50*i),250+(50*i));

//linea derecha atras

glVertex2i(250+(50*i),250+(50*i));

glVertex2i(250+(50*i),150+(50*i));

//linea abajo derecha diagonal

Page 70: Manual open gl

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 70

glVertex2i(200+(50*i),100+(50*i));

glVertex2i(250+(50*i),150+(50*i));

//linea arriva derecha diagonal

glVertex2i(200+(50*i),200+(50*i));

glVertex2i(250+(50*i),250+(50*i));

glEnd();

}

///////////////////////////////////////////////////////

for(i=0;i<=9;i++){

glColor3f(1.0 ,0.8 ,0.5 );

glLineWidth(8);

glBegin(GL_QUADS);

//izquierda

glVertex2i(1200+(50*i),100+(50*i));

glVertex2i(1200+(50*i),200+(50*i));

//arriva

glVertex2i(1250+(50*i),250+(50*i));

//derecha

glVertex2i(1250+(50*i),150+(50*i));

Page 71: Manual open gl

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 71

glEnd();

glColor3f(0.0 ,0.8 ,1.0 );

glLineWidth(8);

glBegin(GL_QUADS);

//cuadro

//izquierda

glVertex2i(1100,100);

glVertex2i(1100,200);

//arriva

glVertex2i(1200,200);

//derecha

glVertex2i(1200,100);

//abajo

glEnd();

glColor3f(0.0 ,1.0 ,0.5 );

glLineWidth(8);

glBegin(GL_QUADS);

//cuadro

//izquierda

Page 72: Manual open gl

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 72

glVertex2i(1100+(50*i),200+(50*i));

glVertex2i(1150+(50*i),250+(50*i));

//arriva

glVertex2i(1250+(50*i),250+(50*i));

//derecha

glVertex2i(1200+(50*i),200+(50*i));

//abajo

glEnd();

//cuadro

glColor3f(0.0 ,0.0 ,1.0 );

glLineWidth(4);

glBegin(GL_LINES);

//cuadro

//izquierda

glVertex2i(1100,100);

glVertex2i(1100,200);

//arriva

glVertex2i(1100+(50*i),200+(50*i));

glVertex2i(1200+(50*i),200+(50*i));

//derecha

glVertex2i(1200+(50*i),200+(50*i));

glVertex2i(1200+(50*i),100+(50*i));

//abajo

glVertex2i(1200,100);

glVertex2i(1100,100);

Page 73: Manual open gl

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 73

//diagonal derecha esquina arriva

glVertex2i(1150+(50*i),250+(50*i));

glVertex2i(1100+(50*i),200+(50*i));

//linea cuadro atras

//linea cuadro atras

glVertex2i(1150+(50*i),250+(50*i));

glVertex2i(1250+(50*i),250+(50*i));

//linea derecha atras

glVertex2i(1250+(50*i),250+(50*i));

glVertex2i(1250+(50*i),150+(50*i));

//linea abajo derecha diagonal

glVertex2i(1200+(50*i),100+(50*i));

glVertex2i(1250+(50*i),150+(50*i));

//linea arriva derecha diagonal

glVertex2i(1200+(50*i),200+(50*i));

glVertex2i(1250+(50*i),250+(50*i));

glEnd();

}

////////////////////////////////////////////////////////

for(i=0;i<=9;i++){

glColor3f(1.0 ,0.8 ,0.5 );

Page 74: Manual open gl

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 74

glLineWidth(8);

glBegin(GL_QUADS);

//izquierda

glVertex2i(200+(50*i),1100+(50*i));

glVertex2i(200+(50*i),1200+(50*i));

//arriva

glVertex2i(250+(50*i),1250+(50*i));

//derecha

glVertex2i(250+(50*i),1150+(50*i));

glEnd();

glColor3f(0.0 ,0.8 ,11.0 );

glLineWidth(8);

glBegin(GL_QUADS);

//cuadro

//izquierda

glVertex2i(100,1100);

glVertex2i(100,1200);

//arriva

glVertex2i(200,1200);

Page 75: Manual open gl

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 75

//derecha

glVertex2i(200,1100);

//abajo

glEnd();

glColor3f(0.0 ,11.0 ,0.5 );

glLineWidth(8);

glBegin(GL_QUADS);

//cuadro

//izquierda

glVertex2i(100+(50*i),1200+(50*i));

glVertex2i(150+(50*i),1250+(50*i));

//arriva

glVertex2i(250+(50*i),1250+(50*i));

//derecha

glVertex2i(200+(50*i),1200+(50*i));

//abajo

glEnd();

//cuadro

glColor3f(0.0 ,0.0 ,11.0 );

glLineWidth(4);

glBegin(GL_LINES);

Page 76: Manual open gl

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 76

//cuadro

//izquierda

glVertex2i(100,1100);

glVertex2i(100,1200);

//arriva

glVertex2i(100+(50*i),1200+(50*i));

glVertex2i(200+(50*i),1200+(50*i));

//derecha

glVertex2i(200+(50*i),1200+(50*i));

glVertex2i(200+(50*i),1100+(50*i));

//abajo

glVertex2i(200,1100);

glVertex2i(100,1100);

//diagonal derecha esquina arriva

glVertex2i(150+(50*i),1250+(50*i));

glVertex2i(100+(50*i),1200+(50*i));

//linea cuadro atras

//linea cuadro atras

glVertex2i(150+(50*i),1250+(50*i));

glVertex2i(250+(50*i),1250+(50*i));

//linea derecha atras

glVertex2i(250+(50*i),1250+(50*i));

glVertex2i(250+(50*i),1150+(50*i));

//linea abajo derecha diagonal

glVertex2i(200+(50*i),1100+(50*i));

Page 77: Manual open gl

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 77

glVertex2i(250+(50*i),1150+(50*i));

//linea arriva derecha diagonal

glVertex2i(200+(50*i),1200+(50*i));

glVertex2i(250+(50*i),1250+(50*i));

glEnd();

}

////////////////////////////////////////////////////////////

for(i=0;i<=9;i++){

glColor3f(11.0 ,0.8 ,0.5 );

glLineWidth(8);

glBegin(GL_QUADS);

//izquierda

glVertex2i(1200+(50*i),1100+(50*i));

glVertex2i(1200+(50*i),1200+(50*i));

//arriva

glVertex2i(1250+(50*i),1250+(50*i));

//derecha

glVertex2i(1250+(50*i),1150+(50*i));

Page 78: Manual open gl

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 78

glEnd();

glColor3f(0.0 ,0.8 ,11.0 );

glLineWidth(8);

glBegin(GL_QUADS);

//cuadro

//izquierda

glVertex2i(1100,1100);

glVertex2i(1100,1200);

//arriva

glVertex2i(1200,1200);

//derecha

glVertex2i(1200,1100);

//abajo

glEnd();

glColor3f(0.0 ,11.0 ,0.5 );

glLineWidth(8);

glBegin(GL_QUADS);

//cuadro

//izquierda

glVertex2i(1100+(50*i),1200+(50*i));

Page 79: Manual open gl

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 79

glVertex2i(1150+(50*i),1250+(50*i));

//arriva

glVertex2i(1250+(50*i),1250+(50*i));

//derecha

glVertex2i(1200+(50*i),1200+(50*i));

//abajo

glEnd();

//cuadro

glColor3f(0.0 ,0.0 ,11.0 );

glLineWidth(4);

glBegin(GL_LINES);

//cuadro

//izquierda

glVertex2i(1100,1100);

glVertex2i(1100,1200);

//arriva

glVertex2i(1100+(50*i),1200+(50*i));

glVertex2i(1200+(50*i),1200+(50*i));

//derecha

glVertex2i(1200+(50*i),1200+(50*i));

glVertex2i(1200+(50*i),1100+(50*i));

//abajo

glVertex2i(1200,1100);

glVertex2i(1100,1100);

//diagonal derecha esquina arriva

Page 80: Manual open gl

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 80

glVertex2i(1150+(50*i),1250+(50*i));

glVertex2i(1100+(50*i),1200+(50*i));

//linea cuadro atras

//linea cuadro atras

glVertex2i(1150+(50*i),1250+(50*i));

glVertex2i(1250+(50*i),1250+(50*i));

//linea derecha atras

glVertex2i(1250+(50*i),1250+(50*i));

glVertex2i(1250+(50*i),1150+(50*i));

//linea abajo derecha diagonal

glVertex2i(1200+(50*i),1100+(50*i));

glVertex2i(1250+(50*i),1150+(50*i));

//linea arriva derecha diagonal

glVertex2i(1200+(50*i),1200+(50*i));

glVertex2i(1250+(50*i),1250+(50*i));

glEnd();

}

//////////////////////////////////////////////////////////////////////

Page 81: Manual open gl

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 81

for(i=0;i<=10;i++){

glColor3f(1.0 ,0.8 ,0.5 );

glLineWidth(8);

glBegin(GL_QUADS);

//izquierda

glVertex2i(200,100+a*i);

glVertex2i(200,200+a*i);

//arriva

glVertex2i(250,250+a*i);

//derecha

glVertex2i(250,150+a*i);

glEnd();

glColor3f(0.0 ,0.8 ,1.0 );

glLineWidth(8);

glBegin(GL_QUADS);

//cuadro

//izquierda

glVertex2i(100,100+a*i);

glVertex2i(100,200+a*i);

Page 82: Manual open gl

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 82

//arriva

glVertex2i(200,200+a*i);

//derecha

glVertex2i(200,100+a*i);

//abajo

glEnd();

glColor3f(0.0 ,1.0 ,0.5 );

glLineWidth(8);

glBegin(GL_QUADS);

//cuadro

//izquierda

glVertex2i(100,200+a*i);

glVertex2i(150,250+a*i);

//arriva

glVertex2i(250,250+a*i);

//derecha

glVertex2i(200,200+a*i);

//abajo

glEnd();

//cuadro

glColor3f(0.0 ,0.0 ,1.0 );

glLineWidth(4);

Page 83: Manual open gl

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 83

glBegin(GL_LINES);

//cuadro

//izquierda

glVertex2i(100,100+a*i);

glVertex2i(100,200+a*i);

//arriva

glVertex2i(100,200+a*i);

glVertex2i(200,200+a*i);

//derecha

glVertex2i(200,200+a*i);

glVertex2i(200,100+a*i);

//abajo

glVertex2i(200,100+a*i);

glVertex2i(100,100+a*i);

//diagonal derecha esquina arriva

glVertex2i(150,250+a*i);

glVertex2i(100,200+a*i);

//linea cuadro atras

//linea cuadro atras

glVertex2i(150,250+a*i);

glVertex2i(250,250+a*i);

//linea derecha atras

glVertex2i(250,250+a*i);

glVertex2i(250,150+a*i);

Page 84: Manual open gl

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 84

//linea abajo derecha diagonal

glVertex2i(200,100+a*i);

glVertex2i(250,150+a*i);

//linea arriva derecha diagonal

glVertex2i(200,200+a*i);

glVertex2i(250,250+a*i);

glEnd();

}

//////////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////////

for(i=0;i<=9;i++){

glColor3f(1.0 ,0.8 ,0.5 );

glLineWidth(8);

glBegin(GL_QUADS);

//izquierda

glVertex2i(1200,1100);

glVertex2i(1200,1200);

//arriva

Page 85: Manual open gl

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 85

glVertex2i(1250,1250);

//derecha

glVertex2i(1250,1150);

glEnd();

glColor3f(0.0 ,0.8 ,1.0 );

glLineWidth(8);

glBegin(GL_QUADS);

//cuadro

//izquierda

glVertex2i(1100-a*i,1100);

glVertex2i(1100-a*i,1200);

//arriva

glVertex2i(1200-a*i,1200);

//derecha

glVertex2i(1200-a*i,1100);

//abajo

glEnd();

glColor3f(0.0 ,1.0 ,0.5 );

glLineWidth(8);

Page 86: Manual open gl

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 86

glBegin(GL_QUADS);

//cuadro

//izquierda

glVertex2i(1100-a*i,1200);

glVertex2i(1150-a*i,1250);

//arriva

glVertex2i(1250-a*i,1250);

//derecha

glVertex2i(1200-a*i,1200);

//abajo

glEnd();

//cuadro

glColor3f(0.0 ,0.0 ,1.0 );

glLineWidth(4);

glBegin(GL_LINES);

//cuadro

//izquierda

glVertex2i(1100-a*i,1100);

glVertex2i(1100-a*i,1200);

//arriva

glVertex2i(1100-a*i,1200);

glVertex2i(1200-a*i,1200);

//derecha

glVertex2i(1200-a*i,1200);

Page 87: Manual open gl

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 87

glVertex2i(1200-a*i,1100);

//abajo

glVertex2i(1200-a*i,1100);

glVertex2i(1100-a*i,1100);

//diagonal derecha esquina arriva

glVertex2i(1150-a*i,1250);

glVertex2i(1100-a*i,1200);

//linea cuadro atras

//linea cuadro atras

glVertex2i(1150-a*i,1250);

glVertex2i(1250-a*i,1250);

//linea derecha atras

glVertex2i(1250,1250);

glVertex2i(1250,1150);

//linea abajo derecha diagonal

glVertex2i(1200,1100);

glVertex2i(1250,1150);

//linea arriva derecha diagonal

glVertex2i(1200-a*i,1200);

glVertex2i(1250-a*i,1250);

Page 88: Manual open gl

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 88

glEnd();

}

//////////////////////////////////////////////////////////////////////////

//////////////////////////////////////////////////////////////////////////

for(i=0;i<=9;i++){

glColor3f(1.0 ,0.8 ,0.5 );

glLineWidth(8);

glBegin(GL_QUADS);

//izquierda

glVertex2i(1200,100);

glVertex2i(1200,200);

//arriva

glVertex2i(1250,250);

//derecha

glVertex2i(1250,150);

Page 89: Manual open gl

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 89

glEnd();

glColor3f(0.0 ,0.8 ,1.0 );

glLineWidth(8);

glBegin(GL_QUADS);

//cuadro

//izquierda

glVertex2i(1100-a*i,100);

glVertex2i(1100-a*i,200);

//arriva

glVertex2i(1200-a*i,200);

//derecha

glVertex2i(1200-a*i,100);

//abajo

glEnd();

glColor3f(0.0 ,1.0 ,0.5 );

glLineWidth(8);

glBegin(GL_QUADS);

//cuadro

//izquierda

glVertex2i(1100-a*i,200);

Page 90: Manual open gl

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 90

glVertex2i(1150-a*i,250);

//arriva

glVertex2i(1250-a*i,250);

//derecha

glVertex2i(1200-a*i,200);

//abajo

glEnd();

//cuadro

glColor3f(0.0 ,0.0 ,1.0 );

glLineWidth(4);

glBegin(GL_LINES);

//cuadro

//izquierda

glVertex2i(1100-a*i,100);

glVertex2i(1100-a*i,200);

//arriva

glVertex2i(1100-a*i,200);

glVertex2i(1200-a*i,200);

//derecha

glVertex2i(1200-a*i,200);

glVertex2i(1200-a*i,100);

//abajo

glVertex2i(1200-a*i,100);

glVertex2i(1100-a*i,100);

//diagonal derecha esquina arriva

Page 91: Manual open gl

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 91

glVertex2i(1150-a*i,250);

glVertex2i(1100-a*i,200);

//linea cuadro atras

//linea cuadro atras

glVertex2i(1150-a*i,250);

glVertex2i(1250-a*i,250);

//linea derecha atras

glVertex2i(1250,250);

glVertex2i(1250,150);

//linea abajo derecha diagonal

glVertex2i(1200,100);

glVertex2i(1250,150);

//linea arriva derecha diagonal

glVertex2i(1200-a*i,200);

glVertex2i(1250-a*i,250);

glEnd();

}

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////

for(i=0;i<=10;i++){

Page 92: Manual open gl

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 92

glColor3f(1.0 ,0.8 ,0.5 );

glLineWidth(8);

glBegin(GL_QUADS);

//izquierda

glVertex2i(1200,100+a*i);

glVertex2i(1200,200+a*i);

//arriva

glVertex2i(1250,250+a*i);

//derecha

glVertex2i(1250,150+a*i);

glEnd();

glColor3f(0.0 ,0.8 ,1.0 );

glLineWidth(8);

glBegin(GL_QUADS);

//cuadro

//izquierda

glVertex2i(1100,100+a*i);

glVertex2i(1100,200+a*i);

//arriva

Page 93: Manual open gl

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 93

glVertex2i(1200,200+a*i);

//derecha

glVertex2i(1200,100+a*i);

//abajo

glEnd();

glColor3f(0.0 ,1.0 ,0.5 );

glLineWidth(8);

glBegin(GL_QUADS);

//cuadro

//izquierda

glVertex2i(1100,200+a*i);

glVertex2i(1150,250+a*i);

//arriva

glVertex2i(1250,250+a*i);

//derecha

glVertex2i(1200,200+a*i);

//abajo

glEnd();

//cuadro

glColor3f(0.0 ,0.0 ,1.0 );

glLineWidth(4);

glBegin(GL_LINES);

Page 94: Manual open gl

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 94

//cuadro

//izquierda

glVertex2i(1100,100+a*i);

glVertex2i(1100,200+a*i);

//arriva

glVertex2i(1100,200+a*i);

glVertex2i(1200,200+a*i);

//derecha

glVertex2i(1200,200+a*i);

glVertex2i(1200,100+a*i);

//abajo

glVertex2i(1200,100+a*i);

glVertex2i(1100,100+a*i);

//diagonal derecha esquina arriva

glVertex2i(1150,250+a*i);

glVertex2i(1100,200+a*i);

//linea cuadro atras

//linea cuadro atras

glVertex2i(1150,250+a*i);

glVertex2i(1250,250+a*i);

//linea derecha atras

glVertex2i(1250,250+a*i);

glVertex2i(1250,150+a*i);

Page 95: Manual open gl

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 95

//linea abajo derecha diagonal

glVertex2i(1200,100+a*i);

glVertex2i(1250,150+a*i);

//linea arriva derecha diagonal

glVertex2i(1200,200+a*i);

glVertex2i(1250,250+a*i);

glEnd();

}

/////////////////////////////////////////////////////////////////////////

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////

glFlush(); //forza dibujo

}

int main (int argc, char** argv) //metodo main

{

glutInit(&argc, argv); //incializa GLUT

Page 96: Manual open gl

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 96

glutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA); //establece el modo de

visualización

glutInitWindowSize(500,500); //tamaño de la ventana

glutInitWindowPosition(0,0); //posicion inicial de la ventana

glutCreateWindow("cubo3d"); //nombre de la ventana

inicializa();

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

glutMainLoop(); //muestra todo y espera

return 0; //retorna un valor de cero

}

Page 97: Manual open gl

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 97

Muñeco con formas

En esta actividad realizaremos un muñeco con la

que ya hemos aprendido pero ahora más detallado

Borrador con coordenadas utilizadas:

glBegin(GL_POINTS);

glBegin(GL_TRIANGLE_FAN);

glBegin(GL_QUADS);

glBegin(GL_POLYGON);

glBegin(GL_TRIANGLES);

glBegin(GL_LINES);

Código

//mi primer ventana

#include <GL/glut.h>

#include <GL/gl.h>

#include <math.h>

void inicializa(void)

{

glClearColor(1.0,1.0,1.0,0.0); //color de fondo

glMatrixMode(GL_PROJECTION); //Modo de proyeccion

Page 98: Manual open gl

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 98

glLoadIdentity(); //Establece los parametros de proyeccion

gluOrtho2D(0.0, 800.0, 0.0, 800.0); //vista ortogonal

}

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

{

int angulo=0;

glPointSize(t);

glBegin(GL_POINTS);

//glColor3f (1.0, 0.0, 1.0);

glVertex2f(x,y);

//glColor3f(0,0.0,0.0);

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

cos(angulo) * radio);}

glEnd();

}

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

{

int angulo=0;

glBegin(GL_TRIANGLE_FAN);

// glColor3f (1.0, 0.0, 1.0);

glVertex2f(x,y);

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

cos(angulo) * radio);}

glEnd();

Page 99: Manual open gl

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 99

}

void dibuja(void) //funcion dibuja

{

glClear(GL_COLOR_BUFFER_BIT);

//brazo derecho

glColor3f(1.0 , 0.8 , 0.7);

glBegin(GL_QUADS);

glVertex2i(510,395);

glVertex2i(580,340);

glVertex2i(620,340);

glVertex2i(540,400);

glEnd();

//brazo izquierdo

glColor3f(1.0 , 0.8 , 0.7);

glBegin(GL_QUADS);

glVertex2i(190,395);

glVertex2i(140,340);

glVertex2i(100,340);

glVertex2i(250,480);

glEnd();

//cuerpo pecho

glColor3f(1.0 , 0.0 , 0.0);

glBegin(GL_QUADS);

glVertex2i(250,480);

glVertex2i(250,300);

Page 100: Manual open gl

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 100

glVertex2i(450,300);

glVertex2i(450,480);

//manos derecha

glVertex2i(450,420);

glVertex2i(500,390);

glVertex2i(560,400);

glVertex2i(450,480);

//mano izquierda

glVertex2i(250,420);

glVertex2i(200,390);

glVertex2i(150,400);

glVertex2i(250,480);

glEnd();

//cabeza con cuello

glColor3f(1.0 , 0.8 , 0.7);

glBegin(GL_POLYGON);

glVertex2i(330,520);

glVertex2i(330,470);

glVertex2i(350,440);

glVertex2i(370,470);

glVertex2i(370,520);

glEnd();

circulo(350,600,100);

circulo(350,560,30);

//pantalon

Page 101: Manual open gl

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 101

glColor3f(0.0 , 1.0 , 0.0);

glBegin(GL_POLYGON);

glVertex2i(250,300);

glVertex2i(220,100);

glVertex2i(280,70);

glVertex2i(420,300);

glVertex2i(410,70);

glVertex2i(470,100);

glVertex2i(450,300);

glEnd();

glColor3f(0.0 , 0.0 , 0.0);

glBegin(GL_TRIANGLES);

//Pie izquierdo

glVertex2i(220,100);

glVertex2i(280,70);

glVertex2i(140,70);

glEnd();

//Pie derecho

glColor3f(0.0 , 0.0 , 0.0);

glBegin(GL_TRIANGLES);

glVertex2i(470,100);

glVertex2i(410,70);

glVertex2i(560,70);

glEnd();

//ojos

glColor3f(1.0 , 1.0 , 1.0);

Page 102: Manual open gl

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 102

circulo(300,600,20);

circulo(400,600,20);

circulo(350,550,30);

glColor3f(0.0 , 0.0 , 0.0);

circulo(300,600,10);

circulo(400,600,10);

glColor3f(1.0 , 0.8 , 0.7);

circulo(350,560,30);

//nariz

glColor3f(0.0 , 0.0 , 0.0);

glBegin(GL_LINES);

glVertex2i(350,580);

glVertex2i(370,560);

glVertex2i(370,560);

glVertex2i(350,560);

glEnd();

//cabello

circulo(350,690,40);

circulo(310,690,40);

circulo(380,690,40);

circulo(430,670,40);

circulo(280,670,40);

circulo(250,630,35);

circulo(450,630,35);

glColor3f(1.0 , 0.8 , 0.7);

Page 103: Manual open gl

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 103

circulo(595,330,35);

circulo(110,330,35);

glFlush(); //forza dibujo

}

int main (int argc, char** argv) //metodo main

{

glutInit(&argc, argv); //incializa GLUT

glutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA); //establece el modo de

visualización

glutInitWindowSize(700,700); //tamaño de la ventana

glutInitWindowPosition(100,100); //posicion inicial de la ventana

glutCreateWindow("Ventana"); //nombre de la ventana

inicializa();

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

glutMainLoop(); //muestra todo y espera

return 0; //retorna un valor de cero

}

Page 104: Manual open gl

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 104

Page 105: Manual open gl

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 105

Sistema solar

En este ejercicio tenemos que hacer un sistema

solar con el sol y sus planetas girando alrededor

de este.

Borrador con coordenadas utilizadas

glBegin(GL_POINTS);

for (angulo=0;angulo<=360; angulo+=1){

glVertex2f(x + sin(angulo) * radio, y +

cos(angulo) * radio);}

glEnd();

glBegin(GL_TRIANGLE_FAN);

Código

#include <unistd.h>w

#include <GL/glut.h>

#include <GL/gl.h>

#include <math.h>

int rad=500;

double ang=0,a=0,b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0;

void inicializa(void)

{

Page 106: Manual open gl

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 106

glClearColor(0.0,0.0,0.0,0.0);

glMatrixMode(GL_PROJECTION);

glLoadIdentity();

gluOrtho2D(0.0, 1800.0, 0.0, 1800.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);

glVertex2f(x,y);

Page 107: Manual open gl

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 107

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

glColor3f(1.0,1.0,0.0);

circulo( 900,900,60); //funcion circulo

glColor3f(0.0,0.0,1.0);

circulo( 900+ sin(ang) * 120,900 + cos(ang) * 120,5);

circuloc(900,900,1,120);

glColor3f(0.0,1.0,0.1);

circulo( 900+ sin(a) * 250,900 + cos(a) * 250,10);

circuloc(900,900,2,250);

glColor3f(0.4,0.0,1.0);

circulo( 900+ sin(b) * 350,900 + cos(b) * 350,15);

circuloc(900,900,2,350);

Page 108: Manual open gl

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 108

glColor3f(3.0,5.0,1.0);

circulo( 900+ sin(c) * 450,900 + cos(c) * 450,20);

circuloc(900,900,2,450);

glColor3f(0.1,3.0,1.0);

circulo( 900+ sin(d) * 550,900 + cos(d) * 550,25);

circuloc(900,900,2,550);

glColor3f(0.2,0.0,1.0);

circulo( 900+ sin(e) * 680,900 + cos(e) * 680,30);

circuloc(900,900,2,680);

glColor3f(1.0,0.0,0.0);

circulo( 900+ sin(f) * 800,900 + cos(f) * 800,35);

circuloc(900,900,2,800);

glColor3f(0.0,1.0,0.0);

circulo( 900+ sin(i) * 890,900 + cos(i) * 890,40);

circuloc(900,900,2,890);

Page 109: Manual open gl

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 109

a=a+0.09;

b=b+0.08;

c=c+0.07;

d=d+0.06;

e=e+0.05;

f=f+0.04;

g=g+0.03;

h=h+0.02;

i=i+0.03;

ang=ang+0.01; //velocidad entre mas grande mas rapido y entre menos mas lento

for(int j=1;j<=10000000;j++){}//pausa

if(ang==360){ang=0;}// se repite idefinidamente

glFlush(); //forzar dibujado

glutSwapBuffers(); //y esto

}

int main (int argc, char** argv)

{

glutInit(&argc, argv);

glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGBA| GLUT_DEPTH);//esto

tambien

glutInitWindowSize(1000,1000);

glutInitWindowPosition(10,10);

Page 110: Manual open gl

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 110

glutCreateWindow("Ventana");

inicializa();

glutDisplayFunc(dibuja);

glutIdleFunc(dibuja);//esto es lo que cambia

glutMainLoop();

return 0;

}

Page 111: Manual open gl

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 111

Movimiento en 8

En esta actividad tenemos que hacer como una

pista de carreras en donde salga un circulo

moviéndose por todo el ocho son salirse se la

línea limite.

Borrador con coordenadas utilizadas:

glBegin(GL_TRIANGLE_FAN);

for (angulo=0;angulo<=360; angulo+=6){

glVertex2f(x + sin(angulo) * radio, y +

cos(angulo) * radio);}

Código

#include <unistd.h>

#include <GL/glut.h>

#include <GL/gl.h>

#include <math.h>

int x=1, x2=1,y=1;

double a=6.15, b=6.15;

void inicializa(void){

glClearColor(0.8,0.5,0.3,1.0);

glMatrixMode(GL_PROJECTION);

glLoadIdentity();

Page 112: Manual open gl

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 112

gluOrtho2D(0.0, 700.0, 0.0, 700.0);// el ancho y largo de nuestra pantalla

}

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

int angulo=0;

glBegin(GL_TRIANGLE_FAN);

glVertex2f(x,y);

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

cos(angulo) * radio);}

glEnd();}

void dibuja(void)

{

glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

glColor3f(0.0, 0.5, 0.1);

circulo(310, 310, 80);

circulo(310,190,80);

glColor3f(1.0,0.0,0.0);

circulo(310,310,40);

circulo(310,190,40);

glColor3f(0.0,0.0,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);

Page 113: Manual open gl

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 113

b=b + 0.25;

if(b>12.4){a=6.15;b=6.15;}

for(int j=0; j<=10000000; j++) {}

}

glFlush();

glutSwapBuffers();

}

int main (int argc, char** argv)

{

glutInit(&argc, argv);

glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGBA| GLUT_DEPTH);

glutInitWindowSize(700,700);

glutInitWindowPosition(10,10);

glutCreateWindow("Ventana");

inicializa();

Page 114: Manual open gl

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 114

glutDisplayFunc(dibuja);

glutIdleFunc(dibuja);

glutMainLoop();

return 0;

}

Page 115: Manual open gl

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 115

Semáforo

En esta práctica lo que tenemos que hacer es un

semáforo que cambie de color como si fuera un

semáforo real de verde, amarillo y rojo y asi

sucesivamente.

Borrador con coordenadas utilizadas;

glBegin(GL_TRIANGLE_FAN);

for (angulo=0;angulo<=360; angulo+=6){

glVertex2f(x + sin(angulo) * radio, y +

cos(angulo) * radio);}

glBegin(GL_QUADS);

Código

#include <unistd.h>

#include <GL/glut.h>

#include <GL/gl.h>

#include <math.h>

int x=1,z=1,w=1, y=1;

void inicializa(void)

{

glClearColor(0.0,0.0,0.0,0.0);

glMatrixMode(GL_PROJECTION);

Page 116: Manual open gl

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 116

glLoadIdentity();

gluOrtho2D(0.0, 1800.0, 0.0, 800.0);// el ancho y largo de nuestra pantalla

}

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

{

int angulo=0;

glBegin(GL_TRIANGLE_FAN);

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.0,0.0,0.0);

if(x>=1 && x<800){

circulo(100+1*x,700,20);

glFlush();

x++;

}

glColor3f(.0,0.0,0.0);

if(y>=1 && y<600 && x==800){

circulo(900,700-y,20);

glFlush();

Page 117: Manual open gl

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 117

y++;

}

glColor3f(.0,0.0,0.0);

if(w>=1 && w<800 && y==600 && x==800){

circulo(900-w,100,20);

glFlush();

w++;

}

glColor3f(.0,0.0,0.0);

if(z>=1 && z<600 && y==600 && x==800 && w==800){

circulo(100,100+z,20);

glFlush();

z++;

if(z==600) {z=1;x=1;y=1;w=1;}

}

glColor3f(1.0,0.0,1.0);

glBegin(GL_QUADS);

glVertex2i(690,690);

glVertex2i(690,250);

glVertex2i(1000,250);

glVertex2i(1000,690);

glEnd();

glBegin(GL_QUADS);

glVertex2i(800,290);

Page 118: Manual open gl

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 118

glVertex2i(800,0);

glVertex2i(900,0);

glVertex2i(900,290);

glEnd();

glFlush();

glColor3f(0.0,0.0,0.0);

circulo(850,600,50);

glColor3f(0.0,0.0,0.0);

circulo(850,480,50);

circulo(850,350,50);

glColor3f(1.0,0.0,0.0);

if(x>=1 && x<800){

circulo(850,600,50);

glFlush();

x++;

}

glColor3f(1.0,1.0,0.0);

if(y>=1 && y<600 && x==800){

circulo(850,480,50);

glFlush();

y++;

Page 119: Manual open gl

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 119

}

glColor3f(0.0,1.0,0.0);

if(w>=1 && w<800 && y==600 && x==800){

circulo(850,350,50);

glFlush();

w++;

}

glColor3f(0.0,1.0,0.0);

if(z>=1 && z<600 && y==600 && x==800 && w==800){

circulo(950,450,60);

glFlush();

z++;

{z=1;x=1;y=1;w=1;}

}

glutSwapBuffers();

}

int main (int argc, char** argv)

{

glutInit(&argc, argv);

glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGBA| GLUT_DEPTH);

glutInitWindowSize(1200,600);

glutInitWindowPosition(10,10);

glutCreateWindow("Ventana");

Page 120: Manual open gl

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 120

inicializa();

glutDisplayFunc(dibuja);

glutIdleFunc(dibuja);

glutMainLoop();

return 0;

}