Post on 13-Jan-2015
description
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Centro de estudios Científicos y Tecnológicos del Estado de México (CECYTEM)-Tecámac
71 28/10/2012
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
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
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
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
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
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
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
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
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
Centro de estudios Científicos y Tecnológicos del Estado de México (CECYTEM)-Tecámac
81 28/10/2012
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
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
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
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
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
Centro de estudios Científicos y Tecnológicos del Estado de México (CECYTEM)-Tecámac
}
87 28/10/2012
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Centro de estudios Científicos y Tecnológicos del Estado de México (CECYTEM)-Tecámac
102 28/10/2012
Centro de estudios Científicos y Tecnológicos del Estado de México (CECYTEM)-Tecámac
103 28/10/2012