manual open gl
TRANSCRIPT
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
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.
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)
{
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);
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);
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
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
}
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
{
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
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
}
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
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);
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();
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
}
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
}
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
}
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
}
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
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);
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);
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
}
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
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);
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);
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);
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);
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);
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);
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
}
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
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);
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);
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);
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);
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);
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);
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);
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);
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();
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);
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);
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);
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);
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
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
}
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);
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);
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);
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
}
COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO
Página 50
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
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
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);
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
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();
}
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
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();
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
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);
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
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);
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
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);
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
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);
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++){
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
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);
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
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));
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
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);
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 );
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);
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);
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));
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));
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));
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
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();
}
//////////////////////////////////////////////////////////////////////
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);
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);
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);
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
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);
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);
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);
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);
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);
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
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++){
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
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);
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);
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
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
}
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
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();
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);
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
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);
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);
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
}
COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO
Página 104
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)
{
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);
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);
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);
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);
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;
}
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();
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);
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();
COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO
Página 114
glutDisplayFunc(dibuja);
glutIdleFunc(dibuja);
glutMainLoop();
return 0;
}
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);
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();
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);
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++;
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");
COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO
Página 120
inicializa();
glutDisplayFunc(dibuja);
glutIdleFunc(dibuja);
glutMainLoop();
return 0;
}