Manual de prácticas rivera y ruiz

17

Click here to load reader

Transcript of Manual de prácticas rivera y ruiz

Page 1: Manual de prácticas rivera y ruiz

CECyTEM PLANTEL TECÁMAC

Manual de prácticas en OPEN GL “Dev C++”

Alumnos: Rivera Sánchez Gabriela Ruiz Cortes German David

Prof.: René Domínguez Escalona

Grupo: 303

Page 2: Manual de prácticas rivera y ruiz

Introducción. En este manual se podrá apreciar algunas de las principales funciones del lenguaje de programación de OPEN GL y así se podrá aplicar para diseño gráfico, se mostraran funciones principales o primitivas del programa para la realización de objetos en el programa se verá desde lo más básico hasta lo más avanzado como puede ser desde la elaboración de un cuadro hasta la animación de un objeto en 2D & 3D.

Page 3: Manual de prácticas rivera y ruiz

Índice.

1°- Tablero de Ajedrez

2°-Estrella

3°- Cubo con líneas

4°-Cubo delineado

5°-Muñeco con triángulos

6°-Piramide

7°-Casita

8°- Oso

9°-Cubo con Cubitos

10°-Muñeco con formas

11°-Animación circulo

12°- Nombre 3D

13°-Animación sistema solar

14°-Movimiento en ocho

15°-Semaforo

16°- Cubo 3D con líneas.

Page 4: Manual de prácticas rivera y ruiz

1° TABLERO DE AJEDREZ

En esta práctica aremos un tablero de ajedrez con cuadros unos negro y uno blanco de 8*8. La realizaremos con la primitiva GL_POINTS, comenzaremos por definir el color de cada cuadro con glColor3f(0.0 , 0.0 , 0.0) que sería negro, luego el tamaño del punto glPointSize(50) y en seguida anotaremos la primitiva ya mencionada glBegin(GL_POINTS).

Luego de esto se pondrán las coordenadas glVertex2i(100,800); por ejemplo deberán de ser 4 coordenadas para insertar un cuadro

glVertex2i(100,500);

glVertex2i(100,600);

glVertex2i(100,700);

glVertex2i(100,800);

y así lo haremos consecutivamente hasta lograr hacer el tablero indicado.

CODIGO:

void dibuja(void) //funcion dibuja

{

glClear(GL_COLOR_BUFFER_BIT); //borra pantalla

glColor3f(0.0 , 0.0 , 0.0);

glPointSize(50);

glBegin(GL_POINTS);

glVertex2i(100,500);

glVertex2i(100,600);

glVertex2i(100,700);

glVertex2i(100,800);

Page 5: Manual de prácticas rivera y ruiz

glColor3f(1.0 , 1.0 , 1.0);

glPointSize(50);

glBegin(GL_POINTS);

glVertex2i(150,500);

glVertex2i(150,600);

glVertex2i(150,700);

glVertex2i(150,800);

glColor3f(1.0 , 1.0 , 1.0);

glPointSize(50);

glBegin(GL_POINTS);

glVertex2i(100,550);

glVertex2i(100,650);

glVertex2i(100,750);

glVertex2i(100,850);

glColor3f(0.0 , 0.0 , 0.0);

glPointSize(50);

glBegin(GL_POINTS);

glVertex2i(150,550);

glVertex2i(150,650);

glVertex2i(150,750);

glVertex2i(150,850);

glColor3f(0.0 , 0.0 , 0.0);

Page 6: Manual de prácticas rivera y ruiz

glPointSize(50);

glBegin(GL_POINTS);

glVertex2i(200,500);

glVertex2i(200,600);

glVertex2i(200,700);

glVertex2i(200,800);

glColor3f(0.0 , 0.0 , 0.0);

glPointSize(50);

glBegin(GL_POINTS);

glVertex2i(200,500);

glVertex2i(200,600);

glVertex2i(200,700);

glVertex2i(200,800);

glColor3f(1.0 , 1.0 , 1.0);

glPointSize(50);

glBegin(GL_POINTS);

glVertex2i(200,550);

glVertex2i(200,650);

glVertex2i(200,750);

glVertex2i(200,850);

glColor3f(1.0 , 1.0 , 1.0);

glPointSize(50);

Page 7: Manual de prácticas rivera y ruiz

glBegin(GL_POINTS);

glVertex2i(250,500);

glVertex2i(250,600);

glVertex2i(250,700);

glVertex2i(250,800);

glColor3f(0.0 , 0.0 , 0.0);

glPointSize(50);

glBegin(GL_POINTS);

glVertex2i(250,550);

glVertex2i(250,650);

glVertex2i(250,750);

glVertex2i(250,850);

glColor3f(0.0 , 0.0 , 0.0);

glPointSize(50);

glBegin(GL_POINTS);

glVertex2i(300,500);

glVertex2i(300,600);

glVertex2i(300,700);

glVertex2i(300,800);

glColor3f(1.0 , 1.0 , 1.0);

glPointSize(50);

glBegin(GL_POINTS);

Page 8: Manual de prácticas rivera y ruiz

glVertex2i(300,550);

glVertex2i(300,650);

glVertex2i(300,750);

glVertex2i(300,850);

glColor3f(1.0 , 1.0 , 1.0);

glPointSize(50);

glBegin(GL_POINTS);

glVertex2i(350,500);

glVertex2i(350,600);

glVertex2i(350,700);

glVertex2i(350,800);

glColor3f(0.0 , 0.0 , 0.0);

glPointSize(50);

glBegin(GL_POINTS);

glVertex2i(350,550);

glVertex2i(350,650);

glVertex2i(350,750);

glVertex2i(350,850);

glColor3f(0.0 , 0.0 , 0.0);

glPointSize(50);

glBegin(GL_POINTS);

Page 9: Manual de prácticas rivera y ruiz

glVertex2i(400,500);

glVertex2i(400,600);

glVertex2i(400,700);

glVertex2i(400,800);

glColor3f(1.0 , 1.0 , 1.0);

glPointSize(50);

glBegin(GL_POINTS);

glVertex2i(400,550);

glVertex2i(400,650);

glVertex2i(400,750);

glVertex2i(400,850);

glColor3f(1.0 , 1.0 , 1.0);

glPointSize(50);

glBegin(GL_POINTS);

glVertex2i(450,500);

glVertex2i(450,600);

glVertex2i(450,700);

glVertex2i(450,800);

glColor3f(0.0 , 0.0 , 0.0);

glPointSize(50);

glBegin(GL_POINTS);

glVertex2i(450,550);

Page 10: Manual de prácticas rivera y ruiz

glVertex2i(450,650);

glVertex2i(450,750);

glVertex2i(450,850);

glEnd();

2° ESTRELLA

En esta práctica haremos una estrella a base de líneas con la primitiva glBegin(GL_LINES), definiremos en tamaño de la línea y el color con:

glPointSize(10);

glColor3f(0.0 , 0.0 , 0.0);

y comenzaremos a anotar cada una de las coordenadas para así llegar a la forma de la estrella.

CODIGO:

void dibuja(void) //funcion dibuja

{

Page 11: Manual de prácticas rivera y ruiz

glClear(GL_COLOR_BUFFER_BIT); //borra pantalla

glBegin(GL_LINES);

glPointSize(10);

glColor3f(0.0 , 0.0 , 0.0);

glVertex2i(174,300);

glVertex2i(425,300);

glBegin(GL_LINES);

glPointSize(10);

glColor3f(0.0 , 0.0 , 0.0);

glVertex2i(200,150);

glVertex2i(425,300);

glBegin(GL_LINES);

glPointSize(10);

glColor3f(0.0 , 0.0 , 0.0);

glVertex2i(200,150);

glVertex2i(300,400);

glBegin(GL_LINES);

glPointSize(10);

glColor3f(0.0 , 0.0 , 0.0);

glVertex2i(300,400);

glVertex2i(400,150);

glBegin(GL_LINES);

Page 12: Manual de prácticas rivera y ruiz

glPointSize(10);

glColor3f(0.0 , 0.0 , 0.0);

glVertex2i(400,150);

glVertex2i(175,300);

glEnd();

3° CUBO CON LÍNEAS

En esta práctica utilizaremos 2 primitivas glBegin(GL_QUADS) para hacer cuadros y glBegin(GL_LINES); para hacer las líneas igual que practicas anteriores definiremos el color de la línea o cuadro con glColor3f(1.0 , 0.0 , 0.0);.

Primero haremos la parte trasera del cubo para que se noten las líneas de enfrente y no estén cubiertas por las demás líneas o cuadros.

Y de igual forma definiremos cada coordenada hasta lograr el cubo con líneas.

CODIGO:

void dibuja(void) //funcion dibuja

{

glClear(GL_COLOR_BUFFER_BIT); //borra pantalla

Page 13: Manual de prácticas rivera y ruiz

glColor3f(0.0 , 0.0 , 0.0);

glPointSize(50);

glBegin(GL_LINES);

glVertex2i(200, 100);

glVertex2i(300, 100);

glVertex2i(200, 100 );

glVertex2i(200, 200);

glVertex2i(200, 200);

glVertex2i(300, 200);

glVertex2i(300, 200);

glVertex2i(300, 100);

glVertex2i(250, 150);

glVertex2i(200, 100);

glVertex2i(250, 150);

glVertex2i(350, 150);

glVertex2i(350, 150);

glVertex2i(300, 100);

glVertex2i(250, 150);

Page 14: Manual de prácticas rivera y ruiz

glVertex2i(250, 250);

glVertex2i(250, 250);

glVertex2i(200, 200);

glVertex2i(250, 250);

glVertex2i(350, 250);

glVertex2i(350, 250);

glVertex2i(300, 200);

glVertex2i(350, 250);

glVertex2i(350, 150);

glEnd();

4°CUBO DELINEADO

Page 15: Manual de prácticas rivera y ruiz

Esta práctica la haremos como la práctica de CUBO CON LÍNEAS lo único que modificaremos será el grosor de la línea con la instrucción glLineWidth(3) el tamaño de la línea será colocado dentro del paréntesis y le modificaremos el color de cada lado para ver así la separación de cada lado.

CODIGO:

void dibuja(void) //funcion dibuja

{

glClear(GL_COLOR_BUFFER_BIT); //borra pantalla

glLineWidth(5);

//enfrente

glBegin(GL_QUADS);

glColor3f(1.0 , 0.0 , 0.0);

glVertex2i(200,200);

glVertex2i(300,200);

glVertex2i(300,200);

glVertex2i(300,100);

glVertex2i(300,100);

glVertex2i(200,100);

glVertex2i(200,100);

glVertex2i(200,200);

//derecha

glColor3f(0.0 , 0.0 , 1.0);

glVertex2i(300,200);

glVertex2i(350,250);

glVertex2i(350,250);

glVertex2i(350,150);

glVertex2i(350,150);

Page 16: Manual de prácticas rivera y ruiz

glVertex2i(300,100);

glVertex2i(300,100);

glVertex2i(300,200);

//arriba

glColor3f(.0 , 1.0 , 0.0);

glVertex2i(200,200);

glVertex2i(250,250);

glVertex2i(250,250);

glVertex2i(350,250);

glVertex2i(350,250);

glVertex2i(300,200);

glVertex2i(300,200);

glVertex2i(200,200);

glEnd();

//enfrente

glLineWidth(5);

glBegin(GL_LINES);

glColor3f(0.0 , 0.0 , 0.0);

glVertex2i(200,200);

glVertex2i(300,200);

glVertex2i(300,200);

glVertex2i(300,100);

glVertex2i(300,100);

glVertex2i(200,100);

Page 17: Manual de prácticas rivera y ruiz

glVertex2i(200,100);

glVertex2i(200,200);

//derecha

glVertex2i(300,200);

glVertex2i(350,250);

glVertex2i(350,250);

glVertex2i(350,150);

glVertex2i(350,150);

glVertex2i(300,100);

glVertex2i(300,100);

glVertex2i(300,200);

//arriba

glVertex2i(200,200);

glVertex2i(250,250);

glVertex2i(250,250);

glVertex2i(350,250);

glVertex2i(350,250);

glVertex2i(300,200);

glVertex2i(300,200);

glVertex2i(200,200);

glEnd();