122
Centro de estudios Científicos y Tecnológicos del Estado de México (CECYTEM)-Tecámac UTILIZACIÓN DEL SOFTWARE DE DISEÑO (MANUAL DE OPENGL) Cantero Morales Raúl Grupo: 303 Especialidad: Informática 1 28/10/2012

Utilización del software de diseño(C++)

Embed Size (px)

DESCRIPTION

En estemanual podras encontras varias actividades que puedes realizar en C++ como desde hacer dibujos hasta poder realizar movimientos

Citation preview

Page 1: Utilización del software de diseño(C++)

Centro de estudios Científicos y Tecnológicos del Estado de México (CECYTEM)-Tecámac

UTILIZACIÓN DEL SOFTWARE DE DISEÑO

(MANUAL DE OPENGL)

Cantero Morales Raúl

Grupo: 303

Especialidad: Informática

Profesor: Ing. Rene Domínguez Escalona

1 28/10/2012

Page 2: Utilización del software de diseño(C++)

Centro de estudios Científicos y Tecnológicos del Estado de México (CECYTEM)-Tecámac

INTRODUCCIONEn este documento podrás apreciar la estructura de los documentos realizados alrededor del 2° parcial del 3°sementre de la carera de técnico en informática del plantel CECYTEM Tecámac, en las cuales consisten en pequeños y simples ejercicios sobre los manejos de OpenGL y algunas instrucciones que pueden ser de ayuda para aquellos que cursan esta materia.

En este manual podrás apreciar trabajos desde lo básico con puntos hasta la realización de objetos 3D con movimiento.

2 28/10/2012

Page 3: Utilización del software de diseño(C++)

Centro de estudios Científicos y Tecnológicos del Estado de México (CECYTEM)-Tecámac

ÍNDICETablero de Ajedrez ………………………………………………………………………4

Estrella…………………………………………………………………………………….10

Cubo con líneas………………………………………………………………………….13

Piramide…………………………………………………………………………………..17

Cubo delineado…………………………………………………………………………..22

Muñeco con triángulos…………………………………………………………………..27

Casita……………………………………………………………………………………..34

Oso………………………………………………………………………………………..48

Cubo con Cubitos………………………………………………………………………..53

Muñeco con formas ……………………………………………………………………..59

Animación Círculos………………………………………………………………………68

Animación sistema solar………………………………………………………………..72

Movimiento en Ocho…………………………………………………………………….78

Semáforo………………………………………………………………………………….82

Objetos 3D Wire (9)……………………………………………………………………..88

Cubo 3D con líneas

3 28/10/2012

Page 4: Utilización del software de diseño(C++)

Centro de estudios Científicos y Tecnológicos del Estado de México (CECYTEM)-Tecámac

Tablero de Ajedrez

Descripción.- Realiza por medio de la instrucción glpoints un tablero de ajedrez con cuadros del mismo tamaño el tablero estará conformado por 8 cuadrados de base y 8 de altura, con los colores que lleva un tablero de ajedrez.

Borrador con coordenada utilizadas:------

Código:

#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, 500.0, 0.0, 500.0); //vista ortogonal

}

void dibuja(void) //funcion dibuja

{

glClear(GL_COLOR_BUFFER_BIT); //borra pantalla

glColor3f(0.0 , 0.0 , 0.0);

glPointSize(50);

glBegin(GL_POINTS);

4 28/10/2012

Page 5: Utilización del software de diseño(C++)

Centro de estudios Científicos y Tecnológicos del Estado de México (CECYTEM)-Tecámac

glVertex2f(50,50);

glVertex2f(50,150);

glVertex2f(50,250);

glVertex2f(50,350);

glVertex2f(100,100);

glVertex2f(100,200);

glVertex2f(100,300);

glVertex2f(100,400);

glVertex2f(150,50);

glVertex2f(150,150);

glVertex2f(150,250);

glVertex2f(150,350);

glVertex2f(200,100);

glVertex2f(200,200);

glVertex2f(200,300);

glVertex2f(200,400);

glVertex2f(250,50);

glVertex2f(250,150);

glVertex2f(250,250);

5 28/10/2012

Page 6: Utilización del software de diseño(C++)

Centro de estudios Científicos y Tecnológicos del Estado de México (CECYTEM)-Tecámac

glVertex2f(250,350);

glVertex2f(300,100);

glVertex2f(300,200);

glVertex2f(300,300);

glVertex2f(300,400);

glVertex2f(350,50);

glVertex2f(350,150);

glVertex2f(350,250);

glVertex2f(350,350);

glVertex2f(400,100);

glVertex2f(400,200);

glVertex2f(400,300);

glVertex2f(400,400);

{

glClear(GL_COLOR_BUFFER_BIT); //borra pantalla

glColor3f(1.0 , 1.0 , 1.0);

glPointSize(50);

glBegin(GL_POINTS);

glVertex2f(50,100);

6 28/10/2012

Page 7: Utilización del software de diseño(C++)

Centro de estudios Científicos y Tecnológicos del Estado de México (CECYTEM)-Tecámac

glVertex2f(50,200);

glVertex2f(50,300);

glVertex2f(50,400);

//forza dibujo

}

glVertex2f(100,50);

glVertex2f(100,150);

glVertex2f(100,250);

glVertex2f(100,350);

glVertex2f(150,100);

glVertex2f(150,200);

glVertex2f(150,300);

glVertex2f(150,400);

glVertex2f(200,50);

glVertex2f(200,150);

glVertex2f(200,250);

glVertex2f(200,350);

glVertex2f(250,100);

glVertex2f(250,200);

glVertex2f(250,300);

7 28/10/2012

Page 8: Utilización del software de diseño(C++)

Centro de estudios Científicos y Tecnológicos del Estado de México (CECYTEM)-Tecámac

glVertex2f(250,400);

glVertex2f(300,50);

glVertex2f(300,150);

glVertex2f(300,250);

glVertex2f(300,350);

glVertex2f(350,100);

glVertex2f(350,200);

glVertex2f(350,300);

glVertex2f(350,400);

glVertex2f(400,50);

glVertex2f(400,150);

glVertex2f(400,250);

glVertex2f(400,350);

glEnd();

glFlush(); //forza dibujo

}

8 28/10/2012

Page 9: Utilización del software de diseño(C++)

Centro de estudios Científicos y Tecnológicos del Estado de México (CECYTEM)-Tecámac

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 dfj"); //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

}

9 28/10/2012

Page 10: Utilización del software de diseño(C++)

Centro de estudios Científicos y Tecnológicos del Estado de México (CECYTEM)-Tecámac

Estrella

Descripción.- Realiza por medio de la instrucción gl lines una estrella

Borrador con coordenada utilizadas:------

Código:

#include <GL/glut.h>

#include <GL/gl.h>

#include <GL/glu.h>

void inicializa(void)

{

glClearColor(1.0,1.0,1.0,1.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

{

glClear(GL_COLOR_BUFFER_BIT); //borra pantalla

glColor3f(0.0 , 0.0 , 0.0);

glLineWidth(15);

glBegin(GL_LINES);

glVertex2i(450,400);

10 28/10/2012

Page 11: Utilización del software de diseño(C++)

Centro de estudios Científicos y Tecnológicos del Estado de México (CECYTEM)-Tecámac

glVertex2i(500,700);

glVertex2i(500,700);

glVertex2i(550,400);

glVertex2i(550,400);

glVertex2i(400,600);

glVertex2i(400,600);

glVertex2i(600,600);

glVertex2i(600,600);

glVertex2i(450,400);

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(700,700); //tamaño de la ventana

11 28/10/2012

Page 12: Utilización del software de diseño(C++)

Centro de estudios Científicos y Tecnológicos del Estado de México (CECYTEM)-Tecámac

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

}

12 28/10/2012

Page 13: Utilización del software de diseño(C++)

Centro de estudios Científicos y Tecnológicos del Estado de México (CECYTEM)-Tecámac

Cubo con líneas

Descripción.- Realiza por medio de la instrucción Gl Lines un cubo en el centro de la pantalla

Borrador con coordenada utilizadas:------

Código:

#include <GL/glut.h>

#include <GL/gl.h>

#include <GL/glu.h>

void inicializa(void)

{

glClearColor(1.0,1.0,1.0,1.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

{

glClear(GL_COLOR_BUFFER_BIT); //borra pantalla

glColor3f(0.0 , 0.0 , 0.0);

glLineWidth(4);

glBegin(GL_LINES);

glVertex2i(250,550);

13 28/10/2012

Page 14: Utilización del software de diseño(C++)

Centro de estudios Científicos y Tecnológicos del Estado de México (CECYTEM)-Tecámac

glVertex2i(550,550);

glVertex2i(250,550);

glVertex2i(250,250);

glVertex2i(250,250);

glVertex2i(550,250);

glVertex2i(250,250);

glVertex2i(400,400);

glVertex2i(550,550);

glVertex2i(550,250);

glVertex2i(400,400);

glVertex2i(400,700);

glVertex2i(250,550);

glVertex2i(400,700);

glVertex2i(400,400);

glVertex2i(700,400);

14 28/10/2012

Page 15: Utilización del software de diseño(C++)

Centro de estudios Científicos y Tecnológicos del Estado de México (CECYTEM)-Tecámac

glVertex2i(550,250);

glVertex2i(700,400);

glVertex2i(400,700);

glVertex2i(700,700);

glVertex2i(550,550);

glVertex2i(700,700);

glVertex2i(700,700);

glVertex2i(700,400);

glEnd();

glFlush(); //forza dibujo

}

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

{

15 28/10/2012

Page 16: Utilización del software de diseño(C++)

Centro de estudios Científicos y Tecnológicos del Estado de México (CECYTEM)-Tecámac

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("CUBO"); //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

}

16 28/10/2012

Page 17: Utilización del software de diseño(C++)

Centro de estudios Científicos y Tecnológicos del Estado de México (CECYTEM)-Tecámac

Piramide

Descripción.- Realiza por medio de la instrucción GL_LINES una pirámide apreciada desde arriba

Borrador con coordenada utilizadas:------

Código:

#include <GL/glut.h>

#include <GL/gl.h>

#include <GL/glu.h>

void inicializa(void)

{

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

glMatrixMode(GL_PROJECTION); //Modo de proyeccion

glLoadIdentity(); //Establece los parametros de proyeccion

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

}

void dibuja(void) //funcion dibuja

{

int i,a=10;

glClear(GL_COLOR_BUFFER_BIT); //borra pantalla

glColor3f(3.0 , 0.0 , 0.0);

glLineWidth(2);

glBegin(GL_LINES);

17 28/10/2012

Page 18: Utilización del software de diseño(C++)

Centro de estudios Científicos y Tecnológicos del Estado de México (CECYTEM)-Tecámac

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

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

//abajo

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

glVertex2i (260+a*i,240-a*i);

//derecha

glVertex2i (260+a*i,240-a*i);

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

//izquierda

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

glVertex2i (240-a*i,260+a*i);

//arriba

glVertex2i (240-a*i,260+a*i);

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

}

glEnd();

glColor3f(3.0 , 0.0 , 0.0);

glLineWidth(2);

glBegin(GL_LINES);

//punto superior izquierdo

glVertex2i (240,260);

glVertex2i (230,270);

glVertex2i (220,280);

18 28/10/2012

Page 19: Utilización del software de diseño(C++)

Centro de estudios Científicos y Tecnológicos del Estado de México (CECYTEM)-Tecámac

glVertex2i (210,290);

glVertex2i (200,300);

glVertex2i (190,310);

glVertex2i (180,320);

glVertex2i (170,330);

glVertex2i (160,340);

glVertex2i (150,350);

//punto superir derecho

glVertex2i (260,260);

glVertex2i (270,270);

glVertex2i (280,280);

glVertex2i (290,290);

glVertex2i (300,300);

glVertex2i (310,310);

glVertex2i (320,320);

glVertex2i (330,330);

glVertex2i (340,340);

glVertex2i (350,350);

//punto inferior derecho

glVertex2i (260,240);

glVertex2i (270,230);

glVertex2i (280,220);

19 28/10/2012

Page 20: Utilización del software de diseño(C++)

Centro de estudios Científicos y Tecnológicos del Estado de México (CECYTEM)-Tecámac

glVertex2i (290,210);

glVertex2i (300,200);

glVertex2i (310,190);

glVertex2i (320,180);

glVertex2i (330,170);

glVertex2i (340,160);

glVertex2i (350,150);

//punto inferior izquierdo

glVertex2i (240,240);

glVertex2i (230,230);

glVertex2i (220,220);

glVertex2i (210,210);

glVertex2i (200,200);

glVertex2i (190,190);

glVertex2i (180,180);

glVertex2i (170,170);

glVertex2i (160,160);

glVertex2i (150,150);

glEnd();

glFlush(); //forza dibujo

}

20 28/10/2012

Page 21: Utilización del software de diseño(C++)

Centro de estudios Científicos y Tecnológicos del Estado de México (CECYTEM)-Tecámac

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

}

Cubo Delineado

21 28/10/2012

Page 22: Utilización del software de diseño(C++)

Centro de estudios Científicos y Tecnológicos del Estado de México (CECYTEM)-Tecámac

Descripción.- Realiza por medio de la instrucción GL_QUADS un cubo con cada una de sus cara de diferentes colores y con la propiedad LineWidth para modificar el grosor de las lineas.

Borrador con coordenada utilizadas:------

Código:

#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, 500.0, 0.0, 500.0); //vista ortogonal

}

void dibuja(void) //funcion dibuja

{

glClear(GL_COLOR_BUFFER_BIT); //borra pantalla

glColor3f(1.0 , 0.0 , 0.0);

glBegin(GL_QUADS);

22 28/10/2012

Page 23: Utilización del software de diseño(C++)

Centro de estudios Científicos y Tecnológicos del Estado de México (CECYTEM)-Tecámac

glVertex2f(100,200);

glVertex2f(300,200);

glVertex2f(300,400);

glVertex2f(100,400);

glEnd();

glColor3f(0.0 , 1.0 , 0.0);

glBegin(GL_QUADS);

glVertex2f(300,200);

glVertex2f(300,400);

glVertex2f(400,480);

glVertex2f(400,300);

glEnd();

glColor3f(0.0 , 0.0 , 1.0);

glBegin(GL_QUADS);

glVertex2f(300,400);

glVertex2f(100,400);

glVertex2f(200,480);

glVertex2f(400,480);

glEnd();

glColor3f(0.0,0.0,0.0);

glLineWidth(10);

glBegin(GL_LINES);

23 28/10/2012

Page 24: Utilización del software de diseño(C++)

Centro de estudios Científicos y Tecnológicos del Estado de México (CECYTEM)-Tecámac

glVertex2f(100,200);

glVertex2f(100,400);

glVertex2f(100,400);

glVertex2f(300,400);

glVertex2f(300,400);

glVertex2f(300,200);

glVertex2f(300,200);

glVertex2f(100,200);

glEnd();

glColor3f(0.0,0.0,0.0);

glLineWidth(10);

glBegin(GL_LINE_STRIP);

glVertex2f(300,200);

glVertex2f(300,400);

glVertex2f(400,480);

glVertex2f(400,300);

glVertex2f(300,200);

glVertex2f(300,400);

glVertex2f(100,400);

glVertex2f(200,480);

glVertex2f(400,480);

24 28/10/2012

Page 25: Utilización del software de diseño(C++)

Centro de estudios Científicos y Tecnológicos del Estado de México (CECYTEM)-Tecámac

glVertex2f(300,400);

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

25 28/10/2012

Page 26: Utilización del software de diseño(C++)

Centro de estudios Científicos y Tecnológicos del Estado de México (CECYTEM)-Tecámac

}

Muñeco con triángulos

26 28/10/2012

Page 27: Utilización del software de diseño(C++)

Centro de estudios Científicos y Tecnológicos del Estado de México (CECYTEM)-Tecámac

Descripción.- Realiza por medio de la instrucción GL_TRIANGLES, GL_QUADS,GL LINES Y GL POLIGON un jugador de futbol

Borrador con coordenada utilizadas:------

Código:

#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, 500.0, 0.0, 500.0); //vista ortogonal

}

void dibuja(void) //funcion dibuja

{

glClear(GL_COLOR_BUFFER_BIT); //borra pantalla

glColor3f(0.0 , 1.0 , 0.0);

glLineWidth(3);

glBegin(GL_QUADS);

glVertex2f(0,0);

glVertex2f(500,0);

27 28/10/2012

Page 28: Utilización del software de diseño(C++)

Centro de estudios Científicos y Tecnológicos del Estado de México (CECYTEM)-Tecámac

glVertex2f(500,45);

glVertex2f(0,45);

glEnd();

glColor3f(1.0 , 1.0 , 0.0);

glLineWidth(3);

glBegin(GL_TRIANGLES);

glVertex2f(151,387);

glVertex2f(302,387);

glVertex2f(227,436);

glColor3f(0.99 , 0.8 , 0.4);

glVertex2f(188,387);

glVertex2f(265,387);

glVertex2f(227,317);

glEnd();

glColor3f(0.0 , 1.0 , 0.0);

glLineWidth(3);

glBegin(GL_QUADS);

glVertex2f(175,317);

glVertex2f(175,199);

glVertex2f(278,199);

glVertex2f(278,317);

28 28/10/2012

Page 29: Utilización del software de diseño(C++)

Centro de estudios Científicos y Tecnológicos del Estado de México (CECYTEM)-Tecámac

glEnd(); //forza dibujo //borra pantalla

glColor3f(0.99 , 0.8 , 0.4);

glLineWidth(3);

glBegin(GL_TRIANGLES);

glColor3f(1.0 , 1.0 , 0.0);

glVertex2f(364,330);

glVertex2f(416,330);

glVertex2f(390,202);

glVertex2f(355,188);

glVertex2f(390,202);

glVertex2f(425,188);

glVertex2f(339,330);

glVertex2f(352,324);

glVertex2f(364,330);

glVertex2f(339,330);

glVertex2f(352,324);

glVertex2f(388,212);

glVertex2f(421,330);

glVertex2f(430,324);

glVertex2f(442,330);

glVertex2f(393,212);

glVertex2f(430,324);

29 28/10/2012

Page 30: Utilización del software de diseño(C++)

Centro de estudios Científicos y Tecnológicos del Estado de México (CECYTEM)-Tecámac

glVertex2f(442,330);

glColor3f(0.99 , 0.8 , 0.4);

glVertex2f(215,317);

glVertex2f(239,317);

glVertex2f(227,295);

glColor3f(0.0 , 1.0 , 0.0);

glVertex2f(175,317);

glColor3f(0.99 , 0.8 , 0.4);

glVertex2f(124,199);

glVertex2f(110,246);

glColor3f(0.99 , 0.8 , 0.4);

glVertex2f(98,268);

glVertex2f(86,224);

glVertex2f(109,246);

glColor3f(0.0,1.0,0.0);

glVertex2f(277,317);

glColor3f(0.99 , 0.8 , 0.4);

glVertex2f(329,200);

glVertex2f(342,246);

glColor3f(0.99 , 0.8 , 0.4);

glVertex2f(342,246);

30 28/10/2012

Page 31: Utilización del software de diseño(C++)

Centro de estudios Científicos y Tecnológicos del Estado de México (CECYTEM)-Tecámac

glVertex2f(355,266);

glVertex2f(374,221);

glColor3f(1.0,1.0,1.0);

glVertex2f(214,200);

glVertex2f(175,163);

glColor3f(0.99 , 0.8 , 0.4);

glVertex2f(213,34);

glColor3f(1.0,0.0,0.0);

glVertex2f(214,34);

glVertex2f(175,57);

glColor3f(0.99 , 0.8 , 0.4);

glVertex2f(213,34);

glColor3f(1.0,0.0,0.0);

glVertex2f(213,34);

glVertex2f(175,57);

glVertex2f(149,34);

glColor3f(1.0,1.0,1.0);

glVertex2f(239,199);

glVertex2f(239,163);

glColor3f(0.99 , 0.8 , 0.4);

glVertex2f(303,163);

glColor3f(0.99 , 0.8 , 0.4);

glVertex2f(303,163);

31 28/10/2012

Page 32: Utilización del software de diseño(C++)

Centro de estudios Científicos y Tecnológicos del Estado de México (CECYTEM)-Tecámac

glVertex2f(291,105);

glVertex2f(277,139);

glColor3f(1.0,0.0,0.0);

glVertex2f(291,105);

glVertex2f(328,127);

glVertex2f(354,104);

glEnd();

glColor3f(1.0 , 1.0 , 0.0);

glBegin(GL_POLYGON);

glVertex2f(330,104);

glVertex2f(353,82);

glVertex2f(353,56);

glVertex2f(330,33);

glVertex2f(302,33);

glVertex2f(278,56);

glVertex2f(278,82);

glVertex2f(302,104);

glEnd();

glFlush(); //forza dibujo

}

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

32 28/10/2012

Page 33: Utilización del software de diseño(C++)

Centro de estudios Científicos y Tecnológicos del Estado de México (CECYTEM)-Tecámac

{

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

}

Casita

33 28/10/2012

Page 34: Utilización del software de diseño(C++)

Centro de estudios Científicos y Tecnológicos del Estado de México (CECYTEM)-Tecámac

Descripción.- Realiza por medio de la instrucción ya aprendidas una casa de dos pisos con patio y cerca ayúdate con la instrucción if

Borrador con coordenada utilizadas:------

Código:

#include <GL/glut.h>

#include <GL/gl.h>

void inicializa(void)

{

glClearColor (2.0, 1.0, 1.0, 1.0);

glMatrixMode(GL_PROJECTION);

glLoadIdentity();

gluOrtho2D(0.0,1000.0,0.0,600.0);

}

void dibuja(void)

{

int i,j=0;

/* borra la pantalla */

glClear(GL_COLOR_BUFFER_BIT);

// Cerca

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

34 28/10/2012

Page 35: Utilización del software de diseño(C++)

Centro de estudios Científicos y Tecnológicos del Estado de México (CECYTEM)-Tecámac

glBegin(GL_POLYGON);

glColor3f (1.0, 0.3, 0.0);

glVertex2f(0+20*i,292);

glVertex2f(5+20*i,300);

glVertex2f(10+20*i,292);

glVertex2f(10+20*i,240);

glVertex2f(0+20*i,240);

glEnd();

}

glBegin(GL_QUADS);

glVertex2i(0,289);

glVertex2i(1000,289);

glVertex2i(1000,280);

glVertex2i(0,280);

//pasto

glColor3f (0.4, 0.8, 0.2);

glVertex2i(0,240);

glVertex2i(1000,240);

glVertex2i(1000,120);

glVertex2i(0,120);

//banqueta

35 28/10/2012

Page 36: Utilización del software de diseño(C++)

Centro de estudios Científicos y Tecnológicos del Estado de México (CECYTEM)-Tecámac

glColor3f (0.6, 0.6, 0.6);

glVertex2i(0,120);

glVertex2i(1000,120);

glVertex2i(1000,90);

glVertex2i(0,90);

glColor3f (1.0, 1.0, 0.0);

glVertex2i(0,90);

glVertex2i(1000,90);

glVertex2i(1000,82);

glVertex2i(0,82);

//calle

glColor3f (0.3, 0.3, 0.3);

glVertex2i(0,82);

glVertex2i(1000,82);

glVertex2i(1000,0);

glVertex2i(0,0);

//piedras

glColor3f (0.6, 0.6, 0.6);

glVertex2i(105,180);

glVertex2i(135,180);

glVertex2i(135,165);

36 28/10/2012

Page 37: Utilización del software de diseño(C++)

Centro de estudios Científicos y Tecnológicos del Estado de México (CECYTEM)-Tecámac

glVertex2i(105,165);

glVertex2i(165,180);

glVertex2i(195,180);

glVertex2i(195,165);

glVertex2i(165,165);

glVertex2i(105,150);

glVertex2i(135,150);

glVertex2i(135,135);

glVertex2i(105,135);

glVertex2i(165,150);

glVertex2i(195,150);

glVertex2i(195,135);

glVertex2i(165,135);

//entrada

glVertex2i(345,195);

glVertex2i(405,195);

glVertex2i(405,120);

glVertex2i(345,120);

// Casa

37 28/10/2012

Page 38: Utilización del software de diseño(C++)

Centro de estudios Científicos y Tecnológicos del Estado de México (CECYTEM)-Tecámac

glColor3f (1.0, 0.8, 0.0);

glVertex2i(210,450);

glVertex2i(540,450);

glVertex2i(540,195);

glVertex2i(210,195);

// Techo casa

glColor3f (0.9, 0.09, 0.0);

glVertex2i(210,495);

glVertex2i(540,495);

glVertex2i(585,450);

glVertex2i(165,450);

// Techo cochera

glVertex2i(75,345);

glVertex2i(210,345);

glVertex2i(210,315);

glVertex2i(60,315);

//Cortina

glColor3f (0.9, 0.9, 0.9);

glVertex2i(90,315);

glVertex2i(210,315);

glVertex2i(210,195);

glVertex2i(90,195);

38 28/10/2012

Page 39: Utilización del software de diseño(C++)

Centro de estudios Científicos y Tecnológicos del Estado de México (CECYTEM)-Tecámac

//Puerta

glColor3f (1.0, 1.0, 1.0);

glVertex2i(345,300);

glVertex2i(405,300);

glVertex2i(405,195);

glVertex2i(345,195);

//Columnas

glColor3f (0.7, 0.5, 0.3);

glVertex2i(75,315);

glVertex2i(90,315);

glVertex2i(90,195);

glVertex2i(75,195);

glVertex2i(210,330);

glVertex2i(540,330);

glVertex2i(540,315);

glVertex2i(210,315);

glVertex2i(330,435);

glVertex2i(345,435);

39 28/10/2012

Page 40: Utilización del software de diseño(C++)

Centro de estudios Científicos y Tecnológicos del Estado de México (CECYTEM)-Tecámac

glVertex2i(345,195);

glVertex2i(330,195);

glVertex2i(405,435);

glVertex2i(420,435);

glVertex2i(420,195);

glVertex2i(405,195);

//Ventanas i

glColor3f (0.7, 0.7, 1.0);

glVertex2i(240,435);

glVertex2i(300,435);

glVertex2i(300,375);

glVertex2i(240,375);

glVertex2i(240,300);

glVertex2i(300,300);

glVertex2i(300,240);

glVertex2i(240,240);

//Ventanas d

glVertex2i(450,435);

glVertex2i(510,435);

40 28/10/2012

Page 41: Utilización del software de diseño(C++)

Centro de estudios Científicos y Tecnológicos del Estado de México (CECYTEM)-Tecámac

glVertex2i(510,375);

glVertex2i(450,375);

glVertex2i(450,300);

glVertex2i(510,300);

glVertex2i(510,240);

glVertex2i(450,240);

//Ventanas balcon

glVertex2i(345,435);

glVertex2i(405,435);

glVertex2i(405,330);

glVertex2i(345,330);

//Ventanas puerta

glVertex2i(360,285);

glVertex2i(390,285);

glVertex2i(390,210);

glVertex2i(360,210);

//Tallos

glColor3f (0.5, 0.3, 0.2);

glVertex2i(670,225);

glVertex2i(700,225);

41 28/10/2012

Page 42: Utilización del software de diseño(C++)

Centro de estudios Científicos y Tecnológicos del Estado de México (CECYTEM)-Tecámac

glVertex2i(700,150);

glVertex2i(670,150);

glVertex2i(875,225);

glVertex2i(905,225);

glVertex2i(905,150);

glVertex2i(875,150);

glEnd();

glBegin(GL_TRIANGLES);

// Techo balcon

glColor3f (0.5, 0.3, 0.2);

glVertex2i(375,480);

glVertex2i(435,435);

glVertex2i(315,435);

glEnd();

//arboles

glLineWidth (4);

glBegin(GL_LINES);

glColor3f (0.0, 0.7, 0.0);

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

42 28/10/2012

Page 43: Utilización del software de diseño(C++)

Centro de estudios Científicos y Tecnológicos del Estado de México (CECYTEM)-Tecámac

glVertex2i(680-3*i,540-10*j);

glVertex2i(690+3*i,540-10*j);

glVertex2i(685-3*i,535-10*j);

glVertex2i(695+3*i,535-10*j);

glVertex2i(885-3*i,540-10*j);

glVertex2i(895+3*i,540-10*j);

glVertex2i(890-3*i,535-10*j);

glVertex2i(900+3*i,535-10*j);

j=j+1;

}

glEnd();

//Linea Calle

glLineWidth (4);

glColor3f (0.0, 0.0, 0.0);

glBegin(GL_LINES);

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

glVertex2i(0+120*i,41);

glVertex2i(90+120*i,41);

}

43 28/10/2012

Page 44: Utilización del software de diseño(C++)

Centro de estudios Científicos y Tecnológicos del Estado de México (CECYTEM)-Tecámac

//Barandal

glVertex2i(344,375);

glVertex2i(406,375);

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

glVertex2i(345+10*i,375);

glVertex2i(345+10*i,330);

}

//Divicion Ventana

glVertex2i(240,262);

glVertex2i(300,262);

glVertex2i(240,397);

glVertex2i(300,397);

glVertex2i(450,397);

glVertex2i(510,397);

glVertex2i(450,262);

glVertex2i(510,262);

glVertex2i(375,434);

glVertex2i(375,375);

glVertex2i(270,397);

glVertex2i(270,375);

glVertex2i(270,262);

glVertex2i(270,240);

44 28/10/2012

Page 45: Utilización del software de diseño(C++)

Centro de estudios Científicos y Tecnológicos del Estado de México (CECYTEM)-Tecámac

glVertex2i(480,397);

glVertex2i(480,375);

glVertex2i(480,262);

glVertex2i(480,240);

glEnd();

//Contorno ventanas

glBegin(GL_LINE_LOOP);

glVertex2i(240,435);

glVertex2i(300,435);

glVertex2i(300,375);

glVertex2i(240,375);

glEnd();

glBegin(GL_LINE_LOOP);

glVertex2i(240,300);

glVertex2i(300,300);

glVertex2i(300,240);

glVertex2i(240,240);

glEnd();

glBegin(GL_LINE_LOOP);

glVertex2i(450,435);

45 28/10/2012

Page 46: Utilización del software de diseño(C++)

Centro de estudios Científicos y Tecnológicos del Estado de México (CECYTEM)-Tecámac

glVertex2i(510,435);

glVertex2i(510,375);

glVertex2i(450,375);

glEnd();

glBegin(GL_LINE_LOOP);

glVertex2i(450,300);

glVertex2i(510,300);

glVertex2i(510,240);

glVertex2i(450,240);

glEnd();

//Chapa

glPointSize(4);

glColor3f (0.0, 0.0, 0.0);

glBegin(GL_POINTS);

glVertex2i(352,247);

glVertex2i(352,245);

glEnd();

glFlush();

}

int main(int argc, char** argv)

46 28/10/2012

Page 47: Utilización del software de diseño(C++)

Centro de estudios Científicos y Tecnológicos del Estado de México (CECYTEM)-Tecámac

{

glutInit(&argc, argv);

glutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA);

glutInitWindowSize(1000,600);

glutInitWindowPosition(100,100);

glutCreateWindow("My Home");

inicializa();

glutDisplayFunc(dibuja);

glutMainLoop();

return 0;

}

Oso

47 28/10/2012

Page 48: Utilización del software de diseño(C++)

Centro de estudios Científicos y Tecnológicos del Estado de México (CECYTEM)-Tecámac

Descripción.- Realiza con ayuda de la siguiete instrucción

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();

}

La cual corresponde a la realización de círculos, realiza un oso.

Borrador con coordenada utilizadas:------

Código:

#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

48 28/10/2012

Page 49: Utilización del software de diseño(C++)

Centro de estudios Científicos y Tecnológicos del Estado de México (CECYTEM)-Tecámac

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

}

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

{

int angulo=0;

glPointSize(t);

glBegin(GL_POINTS);

//glColor3f (1.0, 0.0, 1.0);

glVertex2f(x,y);

//glColor3f(0,0.0,0.0);

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

glEnd();

}

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

{

int angulo=0;

glBegin(GL_TRIANGLE_FAN);

// glColor3f (1.0, 0.0, 1.0);

glVertex2f(x,y);

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

glEnd();

49 28/10/2012

Page 50: Utilización del software de diseño(C++)

Centro de estudios Científicos y Tecnológicos del Estado de México (CECYTEM)-Tecámac

}

void dibuja(void) //funcion dibuja

{

glClear(GL_COLOR_BUFFER_BIT);

glColor3f(0.5,0.4,0.3); //borra pantalla

circulo(250,400,50);

//ojos

glColor3f(0.0,0.0,0.0); //borra pantalla

circulo(250,390,9);

glColor3f(1.0,1.0,1.0); //borra pantalla

circulo(230,410,15);

glColor3f(1.0,1.0,1.0); //borra pantalla

circulo(270,410,15);

glColor3f(0.0,0.0,0.0); //borra pantalla

circulo(230,410,10);

glColor3f(0.0,0.0,0.0); //borra pantalla

circulo(270,410,10);

glColor3f(0.5,0.4,0.3);

circulo(250,250,100);

glColor3f(0.6,0.5,0.4);

circulo(250,250,75);

glColor3f(0.5,0.4,0.3);

circulo(200,450,30);

50 28/10/2012

Page 51: Utilización del software de diseño(C++)

Centro de estudios Científicos y Tecnológicos del Estado de México (CECYTEM)-Tecámac

glColor3f(0.5,0.4,0.3);

circulo(300,450,30);

glColor3f(0.6,0.5,0.4);

circulo(200,450,20);

glColor3f(0.6,0.5,0.4);

circulo(300,450,20);//manos

glColor3f(0.5,0.4,0.3);

circulo(350,300,35);

glColor3f(0.5,0.4,0.3);

circulo(150,300,35);

glColor3f(0.6,0.5,0.4);

circulo(350,300,25);

glColor3f(0.6,0.5,0.4);

circulo(150,300,25);;//patas

glColor3f(0.5,0.4,0.3);

circulo(170,170,35);

glColor3f(0.5,0.4,0.3);

circulo(320,170,35);

glColor3f(0.6,0.5,0.4);

circulo(170,170,25);

glColor3f(0.6,0.5,0.4);

circulo(320,170,25);

glFlush(); //forza dibujo

51 28/10/2012

Page 52: Utilización del software de diseño(C++)

Centro de estudios Científicos y Tecnológicos del Estado de México (CECYTEM)-Tecámac

}

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

}

Cubo con cubitos

52 28/10/2012

Page 53: Utilización del software de diseño(C++)

Centro de estudios Científicos y Tecnológicos del Estado de México (CECYTEM)-Tecámac

Descripción.- Realiza por medio de la instrucción if y con los valores x y t l un cubo con cubos pequeños

Borrador con coordenada utilizadas:------

Código:

#include <GL/glut.h>

#include <GL/gl.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, 600.0, 0.0, 600.0); //vista ortogonal

}

void cubo (int x, int y,int t,int l){

double a=.8,b=.6;

glColor3f(0.5 , 0.9 , 0.6);

glBegin(GL_QUADS);

glVertex2f(x,y);

glVertex2f(x+t,y);

glVertex2f(x+t,y+t);

glVertex2f(x,y+t);

glColor3f(0.02 , 0.9 , 0.1);

glVertex2f(x,y+t);

53 28/10/2012

Page 54: Utilización del software de diseño(C++)

Centro de estudios Científicos y Tecnológicos del Estado de México (CECYTEM)-Tecámac

glVertex2f(x+t,y+t);

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

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

glColor3f(0.07 , 0.5 , 0.08);

glVertex2f(x+t,y+t);

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

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

glVertex2f(x+t,y);

glEnd();

glColor3f(0.0 , 0.0 , 0.0);

glLineWidth(l);

glBegin(GL_LINES);

glVertex2f(x,y);

glVertex2f(x+t,y);

glVertex2f(x+t,y);

glVertex2f(x+t,y+t);

glVertex2f(x+t,y+t);

glVertex2f(x,y+t);

glVertex2f(x,y);

glVertex2f(x,y+t);

54 28/10/2012

Page 55: Utilización del software de diseño(C++)

Centro de estudios Científicos y Tecnológicos del Estado de México (CECYTEM)-Tecámac

glVertex2f(x+t,y+t);

glVertex2f(x+t,y+t);

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

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

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

glVertex2f(x,y+t);

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

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

glVertex2f(x+t,y+t);

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

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

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

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

glVertex2f(x+t,y);

glVertex2f(x+t,y+t);

glEnd();

}

void dibuja(void) //funcion dibuja

{

glClear(GL_COLOR_BUFFER_BIT); //borra pantalla

glColor3f(1.0 , 0.0 , 0.0);

55 28/10/2012

Page 56: Utilización del software de diseño(C++)

Centro de estudios Científicos y Tecnológicos del Estado de México (CECYTEM)-Tecámac

for(int k=0;k<=10;k++){

cubo(260-20*k*.8,220-20*k*.6,20,5);

}

for(int j=0;j<=9;j++){

cubo(280+20*j,420,20,5);

cubo(280+20*j,220,20,5);

}

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

cubo(260,240+20*i,20,5);

}

for(int k=0;k<=10;k++){

cubo(481-20*k*.8,220-20*k*.6,20,5);

}

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

cubo(481,240+20*i,20,5);

}

//traves traseras

for(int k=0;k<=10;k++){

cubo(260-20*k*.8,420-20*k*.6,20,5);

}

for(int j=0;j<=9;j++){

56 28/10/2012

Page 57: Utilización del software de diseño(C++)

Centro de estudios Científicos y Tecnológicos del Estado de México (CECYTEM)-Tecámac

cubo(280+20*j,420,20,5);

}

//cubo delantero

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

cubo(100,100+20*i,20,5);

}

for(int j=0;j<=9;j++){

cubo(120+20*j,100,20,5);

cubo(120+20*j,300,20,5);

}

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

cubo(320,100+20*i,20,5);

}

for(int k=0;k<=10;k++){

cubo(481-20*k*.8,420-20*k*.6,20,5);

}

glFlush(); //forza dibujo

}

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

{

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

57 28/10/2012

Page 58: Utilización del software de diseño(C++)

Centro de estudios Científicos y Tecnológicos del Estado de México (CECYTEM)-Tecámac

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

}

Muñeco con formas

Descripción.- Realiza por medio de lo ya aprendido un muñeco mas detallado.

58 28/10/2012

Page 59: Utilización del software de diseño(C++)

Centro de estudios Científicos y Tecnológicos del Estado de México (CECYTEM)-Tecámac

Borrador con coordenada utilizadas:------

Código:

#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, 600.0, 0.0, 600.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();

}

59 28/10/2012

Page 60: Utilización del software de diseño(C++)

Centro de estudios Científicos y Tecnológicos del Estado de México (CECYTEM)-Tecámac

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);

glBegin(GL_TRIANGLES);

glColor3f(0.0,0.0,0.0);

glVertex2f(218,532);

glVertex2f(282,532);

glVertex2f(250,600);

glVertex2f(218,532);

glVertex2f(282,532);

glVertex2f(280,600);

60 28/10/2012

Page 61: Utilización del software de diseño(C++)

Centro de estudios Científicos y Tecnológicos del Estado de México (CECYTEM)-Tecámac

glVertex2f(218,532);

glVertex2f(282,532);

glVertex2f(230,600);

glVertex2f(218,532);

glVertex2f(282,532);

glVertex2f(300,600);

glVertex2f(218,532);

glVertex2f(282,532);

glVertex2f(200,600);

glEnd();

glBegin(GL_QUADS);

glColor3f(0.9,0.7,0.6);

glVertex2f(230,500);

glVertex2f(270,500);

glVertex2f(270,400);

glVertex2f(230,400);

//cinturon

glColor3f(1.0,1.0,0.0);

glVertex2f(350,200);

glVertex2f(150,200);

61 28/10/2012

Page 62: Utilización del software de diseño(C++)

Centro de estudios Científicos y Tecnológicos del Estado de México (CECYTEM)-Tecámac

glVertex2f(150,170);

glVertex2f(350,170);

glColor3f(0.0,0.0,0.0);

glVertex2f(280,200);

glVertex2f(220,200);

glVertex2f(220,170);

glVertex2f(280,170);

//camisa

glColor3f(1.0,0.0,0.0);

glVertex2f(150,400);

glVertex2f(350,400);

glVertex2f(350,200);

glVertex2f(150,200);

//ess

glVertex2f(150,50);

glVertex2f(100,50);

glVertex2f(70,20);

glVertex2f(150,20);

glVertex2f(400,50);

glVertex2f(350,50);

glVertex2f(350,20);

glVertex2f(430,20);

62 28/10/2012

Page 63: Utilización del software de diseño(C++)

Centro de estudios Científicos y Tecnológicos del Estado de México (CECYTEM)-Tecámac

//brazo

glVertex2f(350,400);

glVertex2f(300,350);

glVertex2f(400,250);

glVertex2f(450,300);

//mano

glColor3f(0.9,0.7,0.6);

glVertex2f(420,270);

glVertex2f(440,300);

glVertex2f(490,250);

glVertex2f(470,220);

glVertex2f(80,270);

glVertex2f(60,300);

glVertex2f(10,250);

glVertex2f(10,220);

//brazo2

glColor3f(1.0,0.0,0.0);

glVertex2f(150,400);

63 28/10/2012

Page 64: Utilización del software de diseño(C++)

Centro de estudios Científicos y Tecnológicos del Estado de México (CECYTEM)-Tecámac

glVertex2f(200,350);

glVertex2f(100,250);

glVertex2f(50,300);

glEnd();

glPointSize(15);

glBegin(GL_POINTS);

glColor3f(0.0,0.7,0.6);

glVertex2f(250,325);

glVertex2f(250,275);

glVertex2f(250,225);

glEnd();

//pedaso de triangulo

glBegin(GL_TRIANGLES);

glColor3f(0.9,0.7,0.6);

glVertex2f(270,400);

glVertex2f(230,400);

glVertex2f(250,350);

//pantalon

//pieseses

glEnd();

glBegin(GL_POLYGON);

glColor3f(0.0,0.0,1.0);

64 28/10/2012

Page 65: Utilización del software de diseño(C++)

Centro de estudios Científicos y Tecnológicos del Estado de México (CECYTEM)-Tecámac

glVertex2f(150,170);

glVertex2f(350,170);

glVertex2f(400,50);

glVertex2f(350,50);

glVertex2f(250,120);

glVertex2f(150,50);

glVertex2f(100,50);

glEnd();

glColor3f(0.9,0.7,0.6); //borra pantalla

circulo(170,532,20);

circulo(330,532,20);

circulo(250,500,75);

glColor3f(0.0,0.0,0.0);

circulo(230,510,10);

circulo(270,510,10);

//dedos

glColor3f(0.9,0.7,0.6);

circulo(10,230,15);

circulo(30,235,10);

circulo(7,235,10);

circulo(7,240,10);

65 28/10/2012

Page 66: Utilización del software de diseño(C++)

Centro de estudios Científicos y Tecnológicos del Estado de México (CECYTEM)-Tecámac

circulo(460,225,15);

circulo(475,225,10);

circulo(485,235,10);

circulo(495,245,10);

//borra pantalla

glEnd();

glBegin(GL_LINES);

glColor3f(0.0,0.0,0.0);

glVertex2f(250,510);

glVertex2f(250,490);

glVertex2f(250,490);

glVertex2f(260,490);

glVertex2f(230,450);

glVertex2f(270,450);

glEnd();

//CAMISA

glFlush(); //forza dibujo

66 28/10/2012

Page 67: Utilización del software de diseño(C++)

Centro de estudios Científicos y Tecnológicos del Estado de México (CECYTEM)-Tecámac

}

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

}

Animación circulo

Descripción.- Realiza por medio de la instrucción de circulo un movimiento en alrededor de la pantalla.

67 28/10/2012

Page 68: Utilización del software de diseño(C++)

Centro de estudios Científicos y Tecnológicos del Estado de México (CECYTEM)-Tecámac

Borrador con coordenada utilizadas:------

Código:

#include <unistd.h>

#include <GL/glut.h>

#include <GL/gl.h>

#include <math.h>

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

void inicializa(void)

{

glClearColor(0.0,0.0,1.0,0.0);

glMatrixMode(GL_PROJECTION);

glLoadIdentity();

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

}

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

{

int angulo=0;

glBegin(GL_TRIANGLE_FAN); glColor3f (0.5, 0.5, 0.5);

glVertex2f(x,y);

glColor3f(0,0.0,0.0);

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

glEnd();

68 28/10/2012

Page 69: Utilización del software de diseño(C++)

Centro de estudios Científicos y Tecnológicos del Estado de México (CECYTEM)-Tecámac

}

void dibuja(void)

{

glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

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

circulo(100+x,600,40);

glFlush();

x++;

}

if(y>=1 && y<500 && x==500){

circulo(600,600-y,40);

glFlush();

y++;

}

if(z>=1 && z<500 && y==500&& x==500 ){

circulo(600-z,100,40);

glFlush();

z++;

}

if(t>=1 && t<500 && z==500 && y==500&& x==500 ){ //reiniciar

circulo(100,100+t,40);

glFlush();

t++;

69 28/10/2012

Page 70: Utilización del software de diseño(C++)

Centro de estudios Científicos y Tecnológicos del Estado de México (CECYTEM)-Tecámac

}

if(t==500){x=1; y=1; z=1; t=1;}

glutSwapBuffers();

}

int main (int argc, char** argv)

{

glutInit(&argc, argv);

glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGBA| GLUT_DEPTH);

glutInitWindowSize(700,700);

glutInitWindowPosition(10,10);

glutCreateWindow("Ventana");

inicializa();

glutDisplayFunc(dibuja);

glutIdleFunc(dibuja);

glutMainLoop();

return 0;

}

70 28/10/2012

Page 71: Utilización del software de diseño(C++)

Centro de estudios Científicos y Tecnológicos del Estado de México (CECYTEM)-Tecámac

71 28/10/2012

Page 72: Utilización del software de diseño(C++)

Centro de estudios Científicos y Tecnológicos del Estado de México (CECYTEM)-Tecámac

Animación sistema solar

Descripción.- Realiza por medio de la instrucción circulo y movimiento una simulación del sistema solar

Borrador con coordenada utilizadas:------

Código:

#include <unistd.h>

#include <GL/glut.h>

#include <GL/gl.h>

#include <math.h>

int rad=100;

double ang=0,a=0,b=0;

void inicializa(void)

{

glClearColor(0.0,0.0,0.0,0.0);

glMatrixMode(GL_PROJECTION);

glLoadIdentity();

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

}

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

{

int angulo=0;

glBegin(GL_TRIANGLE_FAN);

glVertex2f(x,y);

72 28/10/2012

Page 73: Utilización del software de diseño(C++)

Centro de estudios Científicos y Tecnológicos del Estado de México (CECYTEM)-Tecámac

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

glEnd();

}

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

{

int angulo=0;

glPointSize(t);

glBegin(GL_POINTS);

//glColor3f (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 dibuja(void)

{

glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);//esto

glColor3f (0.9,0.8, 0.0);

circulo(500,500,50);

glColor3f (1.0,1.0, 1.0);

73 28/10/2012

Page 74: Utilización del software de diseño(C++)

Centro de estudios Científicos y Tecnológicos del Estado de México (CECYTEM)-Tecámac

circuloc(500,500,1,70);

glColor3f (1.0,0.0, 0.0);

circulo( 500+ sin(ang) * 70,500 + cos(ang) * 70,10);

glColor3f (1.0,1.0, 1.0);

circuloc(500,500,1,150); //funcion circulo

glColor3f (0.5, 0.3, 0.2);

circulo( 500+ sin(a) * 150,500 + cos(a) * 150,10);

glColor3f (1.0,1.0, 1.0);

circuloc(500,500,1,200);

glColor3f (0.0, 0.0, 1.0);

circulo( 500- sin(b) * 200,500 + cos(b) * 200,20);

glColor3f (1.0,1.0, 1.0);

circuloc(500,500,1,250);

glColor3f (0.9, 0.4, 0.1);

circulo( 500- sin(a) * 250,500 + cos(a) * 250,20);

glColor3f (1.0,1.0, 1.0);

circuloc(500,500,1,250);

glColor3f (0.9, 0.4, 0.1);

circulo( 500- sin(a) * 250,500 + cos(a) * 250,20);

74 28/10/2012

Page 75: Utilización del software de diseño(C++)

Centro de estudios Científicos y Tecnológicos del Estado de México (CECYTEM)-Tecámac

glColor3f (0.4, 0.8, 0.4);

circulo( 500+ sin(b) * 310,500 + cos(b) * 310,15);

glColor3f (1.0,1.0, 1.0);

circuloc(500,500,1,310);

glColor3f (1.0,1.0, 1.0);

circuloc(500,500,1,370);

glColor3f (0.4, 0.8, 0.0);

circulo( 500+ sin(ang) * 370,500 + cos(ang) * 370,15);

glColor3f (1.0,1.0, 1.0);

circuloc(500,500,1,400);

glColor3f (0.4, 0.0, 1.0);

circulo( 500- sin(ang) * 400,500 + cos(ang) * 400,15);

glColor3f (1.0,1.0, 1.0);

circuloc(500,500,1,460);

glColor3f (0.8, 0.7, 0.4);

circulo( 500+ sin(b) * 460,500 + cos(b) * 460,15);

glColor3f (1.0,1.0, 1.0);

75 28/10/2012

Page 76: Utilización del software de diseño(C++)

Centro de estudios Científicos y Tecnológicos del Estado de México (CECYTEM)-Tecámac

circuloc(500,500,1,490);

glColor3f (0.4, 0.5, 0.4);

circulo( 500- sin(b) * 490,500 + cos(b) * 490,15);

a+=0.1;

b+=0.2;

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);

glutCreateWindow("Ventana");

76 28/10/2012

Page 77: Utilización del software de diseño(C++)

Centro de estudios Científicos y Tecnológicos del Estado de México (CECYTEM)-Tecámac

inicializa();

glutDisplayFunc(dibuja);

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

glutMainLoop();

return 0;

}

77 28/10/2012

Page 78: Utilización del software de diseño(C++)

Centro de estudios Científicos y Tecnológicos del Estado de México (CECYTEM)-Tecámac

Movimiento en Ocho

Descripción.- Realiza por medio de las instrucciones del ejercicio del sistema solar un movimiento en ocho como si fuese una carrera da autos con un solo circulo.

Borrador con coordenada utilizadas:------

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

glMatrixMode(GL_PROJECTION);

glLoadIdentity();

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

}

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

int angulo=0;

glBegin(GL_TRIANGLE_FAN);

glVertex2f(x,y);

78 28/10/2012

Page 79: Utilización del software de diseño(C++)

Centro de estudios Científicos y Tecnológicos del Estado de México (CECYTEM)-Tecámac

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);//esto

glColor3f (0.9,0.8, 0.0);

circulo(500,300,250);

glColor3f (0.9,0.0, 0.0);

circulo(500,300,150);

glColor3f (0.9,0.8, 0.0);

circulo(500,700,250);

glColor3f (0.9,0.0, 0.0);

circulo(500,700,150);//ocho

if(a>=6.15 && a<=12.41){

circulo(500+ sin (a)*200,700- cos(a)*200,40);

a=a+ 0.03;

}

else{

circulo(500 + sin (b) *200,300-cos(b)*-200,40);

b=b + 0.1;

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

79 28/10/2012

Page 80: Utilización del software de diseño(C++)

Centro de estudios Científicos y Tecnológicos del Estado de México (CECYTEM)-Tecámac

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

}

// 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);

glutCreateWindow("Ventana");

inicializa();

glutDisplayFunc(dibuja);

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

glutMainLoop();

return 0;

}

80 28/10/2012

Page 81: Utilización del software de diseño(C++)

Centro de estudios Científicos y Tecnológicos del Estado de México (CECYTEM)-Tecámac

81 28/10/2012

Page 82: Utilización del software de diseño(C++)

Centro de estudios Científicos y Tecnológicos del Estado de México (CECYTEM)-Tecámac

Semáforo

Descripción.- Realiza por medio de la instrucción utilizadas en el movimiento en ocho un semáforo en el cual parpadee dos veces el verde luego cambia al amarillo y después al rojo

Borrador con coordenada utilizadas:------

Código:

#include <unistd.h>

#include <GL/glut.h>

#include <GL/gl.h>

#include <math.h>

int rad=100;

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

void inicializa(void)

{

glClearColor(0.0,0.0,0.0,0.0);

glMatrixMode(GL_PROJECTION);

glLoadIdentity();

gluOrtho2D(0.0, 500.0, 0.0, 500.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);

82 28/10/2012

Page 83: Utilización del software de diseño(C++)

Centro de estudios Científicos y Tecnológicos del Estado de México (CECYTEM)-Tecámac

//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);

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

glBegin(GL_QUADS);//Cuadros fondo semaforo

glColor3f(0.44 , 0.72 , 0.25);

glVertex2i(150,437);

glVertex2i(350,437);

glVertex2i(350,182);

83 28/10/2012

Page 84: Utilización del software de diseño(C++)

Centro de estudios Científicos y Tecnológicos del Estado de México (CECYTEM)-Tecámac

glVertex2i(150,182);

glVertex2i(1,255);

glVertex2i(500,255);

glVertex2i(500,320);

glVertex2i(1,320);

glEnd();

glColor3f(0.0,0.0,0.0);//Luces Verde

circulo(247,226,30);

glColor3f(0.0,0.0,0.0);//Luces Amarrilla

circulo(247,302,30);

glColor3f(0.0,0.0,0.0);//Luces Roja

circulo(247,381,30);

a=a+1; //velocidad entre mas grande mas rapido y entre menos mas lento

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

if(a>1 && a<20){

glColor3f(1.0,0.0,0.0);//Luces Roja

84 28/10/2012

Page 85: Utilización del software de diseño(C++)

Centro de estudios Científicos y Tecnológicos del Estado de México (CECYTEM)-Tecámac

circulo(247,381,30);

}

if(a>20 && a<45){

glColor3f(0.0,1.0,0.0);//Luces Roja

circulo(247,226,30);

}// se repite idefinidamente

if(a>45 && a<55){

glColor3f(0.0,1.0,0.0);//Luces Roja

circulo(247,226,30);

}// se repite idefinidamente

if(a>55 && a<55){

glColor3f(1.0,1.0,0.0);//Luces Roja

circulo(247,302,30);

}// se repite idefinidamente

if(a>50 && a<60){

glColor3f(1.0,1.0,0.0);//Luces Roja

circulo(247,302,30);

}// se repite idefinidamente

85 28/10/2012

Page 86: Utilización del software de diseño(C++)

Centro de estudios Científicos y Tecnológicos del Estado de México (CECYTEM)-Tecámac

if(a>50 && a<55){

glColor3f(1.0,1.0,0.0);//Luces Roja

circulo(247,302,30);

}// se repite idefinidamente

if(a>60){a=0;}

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

glutInitWindowPosition(10,10);

glutCreateWindow("Ventana");

inicializa();

glutDisplayFunc(dibuja);

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

glutMainLoop();

return 0;

86 28/10/2012

Page 87: Utilización del software de diseño(C++)

Centro de estudios Científicos y Tecnológicos del Estado de México (CECYTEM)-Tecámac

}

87 28/10/2012

Page 88: Utilización del software de diseño(C++)

Centro de estudios Científicos y Tecnológicos del Estado de México (CECYTEM)-Tecámac

Objetos 3D Wire(9)

(Nombre)

Descripción.- Realiza por medio de las instrucción que se te da tu nombre en 3D

Borrador con coordenada utilizadas:------

Código:

#include <GL/gl.h>

#include <GL/glu.h>

#include <GL/glut.h>

#include <stdio.h>

#include <math.h>

#include <stdlib.h>

GLfloat anguloEsfera = 0.0f;

GLfloat girax=0,giray=0,zoom=0,e,f;

GLboolean malla=GL_FALSE, ejes=GL_TRUE;

void mover(void){

glTranslated(0,0,zoom);

glRotated(girax,1.0,0.0,0.0);

glRotated(giray,0.0,1.0,0.0);

}

void creaMalla(void){

int i, long_eje=10;

glColor3f(1.0,1.0,0.0);

88 28/10/2012

Page 89: Utilización del software de diseño(C++)

Centro de estudios Científicos y Tecnológicos del Estado de México (CECYTEM)-Tecámac

glBegin(GL_LINES);

for(i=-long_eje;i<=long_eje;i++){

glVertex3f(i,-long_eje,0);

glVertex3f(i,long_eje,0);

glVertex3f(-long_eje,i,0);

glVertex3f(long_eje,i,0);

glVertex3f(i,0,-long_eje);

glVertex3f(i,0,long_eje);

glVertex3f(-long_eje,0,i);

glVertex3f(long_eje,0,i);

}

glEnd();

}

void creaEjes(void){

glColor3f(0.0,0.0,0.0);

glBegin(GL_LINES);

glColor3f(0.0,0.0,1.0);

glVertex3f(-11.0,0.0,0.0);

glVertex3f(11.0,0.0,0.0);

glColor3f(1.0,0.0,0.0);

glVertex3f(0.0,-11.0,0.0);

glVertex3f(0.0,11.0,0.0);

89 28/10/2012

Page 90: Utilización del software de diseño(C++)

Centro de estudios Científicos y Tecnológicos del Estado de México (CECYTEM)-Tecámac

glColor3f(0.0,1.0,0.0);

glVertex3f(0.0,0.0,-11.0);

glVertex3f(0.0,0.0,11.0);

glEnd();

glBegin(GL_TRIANGLES);

glColor3f(0.0,0.0,1.0);

glVertex3f(11.0,0.0,0.0);

glVertex3f(10.5,0.0,-.50);

glVertex3f(10.5,0.0,.50);

glColor3f(1.0,0.0,0.0);

glVertex3f(0.0,11.0,0.0);

glVertex3f(-.50,10.5,0.0);

glVertex3f(.50,10.5,0.0);

glColor3f(0.0,1.0,0.0);

glVertex3f(0.0,0.0,11.0);

glVertex3f(-.50,0.0,10.5);

glVertex3f(.50,0.0,10.5);

//puntas otras

glColor3f(0.0,0.0,1.0);

glVertex3f(-11.0,0.0,0.0);

glVertex3f(-10.5,0.0,.50);

glVertex3f(-10.5,0.0,-.50);

glColor3f(1.0,0.0,0.0);

90 28/10/2012

Page 91: Utilización del software de diseño(C++)

Centro de estudios Científicos y Tecnológicos del Estado de México (CECYTEM)-Tecámac

glVertex3f(0.0,-11.0,0.0);

glVertex3f(.50,-10.5,0.0);

glVertex3f(-.50,-10.5,0.0);

glColor3f(0.0,1.0,0.0);

glVertex3f(0.0,0.0,-11.0);

glVertex3f(.50,0.0,-10.5);

glVertex3f(-.50,0.0,-10.5);

glEnd();

}

void init ( void )

{

glClearColor(1.0,1.0,1.0,0.0) ;// Definimos el negro como color de fondo

glEnable(GL_DEPTH_TEST); // Activamos el z-Buffer

glEnable(GL_LIGHTING); // Activamos la iluminación

glEnable(GL_LIGHT0); // Activamos la luz 0

glMatrixMode(GL_PROJECTION); // set the view volume shape

glLoadIdentity(); glOrtho(-15,15,-15,15,-30,30);

glMatrixMode(GL_MODELVIEW); // position and aim the camera

glLoadIdentity();

gluLookAt(5.0, 5.0, 5.0, 0.0, 0.0, 0.0, 0.0, 2.0, 0.0);

91 28/10/2012

Page 92: Utilización del software de diseño(C++)

Centro de estudios Científicos y Tecnológicos del Estado de México (CECYTEM)-Tecámac

}

void dibuja( void )

{

glClear ( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );

glEnable(GL_DEPTH_TEST); // Activamos el z-Buffer

glEnable(GL_LIGHTING); // Activamos la iluminación

glEnable(GL_LIGHT0); // Activamos la luz 0

//glShadeModel(GL_FLAT);

glShadeModel (GL_SMOOTH);

// Cargamos la matriz identidad para reiniciar las transformaciones

/* float angulo;

int i;

glLineWidth(20);

glBegin(GL_LINES);

glColor3d(1,1,1);

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

angulo = (GLfloat)i*3.14159f/180.0f; // grados a radianes

glColor3d(1,1,1);

glVertex3i(0,0,-3);

glVertex3f(0+cos(angulo)*45, 0+sin(angulo)*45,0);

}

glEnd();*/

92 28/10/2012

Page 93: Utilización del software de diseño(C++)

Centro de estudios Científicos y Tecnológicos del Estado de México (CECYTEM)-Tecámac

// Colocamos una luz

glLightfv(GL_LIGHT0,GL_DIFFUSE,(GLfloat []){1.0f,1.0f,1.0f,0.0f}); // Color de la luz

glLightfv(GL_LIGHT0,GL_AMBIENT,(GLfloat []){1.0, 1.0, 1.0, 4.0}); // Luz ambiente

glLightfv(GL_LIGHT0,GL_POSITION,(GLfloat []){0.0f,12.0f,5.0f,0.0f}); // Posición de la luz

glLightfv(GL_LIGHT0,GL_EMISSION,(GLfloat []){0.5,0.5,0.5,1.0});

//glShadeModel (GL_SMOOTH);

// esfera

glPushMatrix();

mover();

if(malla) creaMalla();

if(ejes) creaEjes();

//glRotatef(anguloEsfera, 1.0f, 1.0f,0.0f);

glColor3f(1.0,1.0,0.0);

//R

glTranslatef(-8.0,0.0, 0.0);

glutSolidCube(1);

glTranslatef(0.0,1.0, 0.0);

glutSolidCube(1);

glTranslatef(0.0,1.0, 0.0);

glutSolidCube(1);

glTranslatef(0.0,1.0, 0.0);

glutSolidCube(1);

93 28/10/2012

Page 94: Utilización del software de diseño(C++)

Centro de estudios Científicos y Tecnológicos del Estado de México (CECYTEM)-Tecámac

glTranslatef(0.0,1.0, 0.0);

glutSolidCube(1);

glTranslatef(1.0,0.0, 0.0);

glutSolidCube(1);

glTranslatef(1.0,0.0, 0.0);

glutSolidCube(1);

glTranslatef(1.0,0.0, 0.0);

glutSolidCube(1);

glTranslatef(0.0,-1.0, 0.0);

glutSolidCube(1);

glTranslatef(0.0,-1.0, 0.0);

glutSolidCube(1);

glTranslatef(-1.0,0.0, 0.0);

glutSolidCube(1);

glTranslatef(0.0,-1.0, 0.0);

glutSolidCube(1);

glTranslatef(1.0,-1.0, 0.0);

glutSolidCube(1);

glTranslatef(2.0,0.0, 0.0);

glutSolidCube(1);

glTranslatef(0.0,1.0, 0.0);

glutSolidCube(1);

glTranslatef(0.0,1.0, 0.0);

94 28/10/2012

Page 95: Utilización del software de diseño(C++)

Centro de estudios Científicos y Tecnológicos del Estado de México (CECYTEM)-Tecámac

glutSolidCube(1);

glTranslatef(0.0,1.0, 0.0);

glutSolidCube(1);

glTranslatef(0.0,1.0, 0.0);

glutSolidCube(1);

glTranslatef(1.0,0.0, 0.0);

glutSolidCube(1);

glTranslatef(1.0,0.0, 0.0);

glutSolidCube(1);

glTranslatef(1.0,0.0, 0.0);

glutSolidCube(1);

glTranslatef(0.0,-1.0, 0.0);

glutSolidCube(1);

glTranslatef(0.0,-1.0, 0.0);

glutSolidCube(1);

glTranslatef(0.0,-1.0, 0.0);

glutSolidCube(1);

glTranslatef(0.0,-1.0, 0.0);

glutSolidCube(1);

glTranslatef(-1.0,2.0, 0.0);

glutSolidCube(1);

glTranslatef(3.0,-2.0, 0.0);

glutSolidCube(1);

95 28/10/2012

Page 96: Utilización del software de diseño(C++)

Centro de estudios Científicos y Tecnológicos del Estado de México (CECYTEM)-Tecámac

glTranslatef(0.0,1.0, 0.0);

glutSolidCube(1);

glTranslatef(0.0,1.0, 0.0);

glutSolidCube(1);

glTranslatef(0.0,1.0, 0.0);

glutSolidCube(1);

glTranslatef(0.0,1.0, 0.0);

glutSolidCube(1);

glTranslatef(1.0,-4.0, 0.0);

glutSolidCube(1);

glTranslatef(1.0,0.0, 0.0);

glutSolidCube(1);

glTranslatef(1.0,0.0, 0.0);

glutSolidCube(1);

glTranslatef(0.0,1.0, 0.0);

glutSolidCube(1);

glTranslatef(0.0,1.0, 0.0);

glutSolidCube(1);

glTranslatef(0.0,1.0, 0.0);

glutSolidCube(1);

glTranslatef(0.0,1.0, 0.0);

glutSolidCube(1);

glTranslatef(2.0,-4.0, 0.0);

96 28/10/2012

Page 97: Utilización del software de diseño(C++)

Centro de estudios Científicos y Tecnológicos del Estado de México (CECYTEM)-Tecámac

glutSolidCube(1);

glTranslatef(0.0,1.0, 0.0);

glutSolidCube(1);

glTranslatef(0.0,1.0, 0.0);

glutSolidCube(1);

glTranslatef(0.0,1.0, 0.0);

glutSolidCube(1);

glTranslatef(0.0,1.0, 0.0);

glutSolidCube(1);

glTranslatef(1.0,-4.0, 0.0);

glutSolidCube(1);

glTranslatef(1.0,0.0, 0.0);

glutSolidCube(1);

glTranslatef(1.0,0.0, 0.0);

glutSolidCube(1);

// AQUI PONES TU NOMBRE

//AQUI

//AQUI

//AQUI//AQUI

//AQUI//AQUI//AQUI

//AQUI

97 28/10/2012

Page 98: Utilización del software de diseño(C++)

Centro de estudios Científicos y Tecnológicos del Estado de México (CECYTEM)-Tecámac

glPopMatrix ();

glFlush();

glutSwapBuffers ();

//anguloEsfera+=2.0f;

}

void reshape(int w, int h){

glClearColor(1.0,1.0,1.0,0.0);

glMatrixMode(GL_PROJECTION);

glLoadIdentity();

glOrtho(-15,15,-15,15,-30,30);

glMatrixMode(GL_MODELVIEW);

glLoadIdentity();

glClear(GL_DEPTH_TEST);

}

void activo(int x,int y){

// x= e;

//y= f;

girax=y;

giray=700-x;

glutPostRedisplay();

}

98 28/10/2012

Page 99: Utilización del software de diseño(C++)

Centro de estudios Científicos y Tecnológicos del Estado de México (CECYTEM)-Tecámac

void teclado(unsigned char key, int x, int y){

switch(key){

case 27:

exit(0);

case '+':

zoom++;

break;

case '-':

zoom--;

break;

case 'p':

glMatrixMode(GL_PROJECTION);

glLoadIdentity();

gluPerspective(45,1,10,100);

zoom=-40;

break;

case 'o':

glMatrixMode(GL_PROJECTION);

glLoadIdentity();

glOrtho(-15,15,-15,15,-30,30);

zoom=0;

break;

case 'm':

99 28/10/2012

Page 100: Utilización del software de diseño(C++)

Centro de estudios Científicos y Tecnológicos del Estado de México (CECYTEM)-Tecámac

malla= !malla;

break;

case 'e':

ejes= !ejes;

default: break;

}

glutPostRedisplay();

}

void flechas(int key, int x, int y){

switch(key){

case GLUT_KEY_LEFT:

giray-=15;

break;

case GLUT_KEY_RIGHT:

giray+=15;

break;

case GLUT_KEY_UP:

girax-=15;

break;

case GLUT_KEY_DOWN:

girax+=15;

break;

100 28/10/2012

Page 101: Utilización del software de diseño(C++)

Centro de estudios Científicos y Tecnológicos del Estado de México (CECYTEM)-Tecámac

default: break;

}

glutPostRedisplay();

}

int main ( int argc, char** argv )

{

glutInit (&argc, argv);

glutInitDisplayMode (GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);

glutInitWindowSize (600,600);

glutInitWindowPosition (100,100);

glutCreateWindow ("Objetos 3D");

//init ( );

glutDisplayFunc (dibuja);

//glutIdleFunc(dibuja);

glutReshapeFunc ( reshape );

glutKeyboardFunc(teclado);

glutSpecialFunc(flechas);

glutMotionFunc(activo);

glutMainLoop( );

return 0;

}

101 28/10/2012

Page 102: Utilización del software de diseño(C++)

Centro de estudios Científicos y Tecnológicos del Estado de México (CECYTEM)-Tecámac

102 28/10/2012

Page 103: Utilización del software de diseño(C++)

Centro de estudios Científicos y Tecnológicos del Estado de México (CECYTEM)-Tecámac

103 28/10/2012