• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Proyecto de reneya terminado
 

Proyecto de reneya terminado

on

  • 439 views

Este es un pequeño proyecto donde vienes varias practicas realizadas con el programas OpenGL C++ esperamos que les puedam servir a todos los usuarios

Este es un pequeño proyecto donde vienes varias practicas realizadas con el programas OpenGL C++ esperamos que les puedam servir a todos los usuarios

Statistics

Views

Total Views
439
Views on SlideShare
439
Embed Views
0

Actions

Likes
0
Downloads
22
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft Word

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Proyecto de reneya terminado Proyecto de reneya terminado Document Transcript

    • CECYTEM PLANTEL TECAMAC(Colegio de Estudios Científicos y Tecnológicos del Estado de México) Integrantes: Ana Karen Avila Enciso Jesica González Aguilar Grupo: 303 N.L. 1 N.L. 14 Materia: Utilización de Software de Diseño Especialidad: Técnico en Informática. Profesor: René Domínguez Escalona Manual de Practicas del Segundo Parcial
    • INTRODUCCION.OpenGL (Open Graphics Library) es una especificación estándar que defineuna API multilenguaje y multiplataforma para escribir aplicaciones que produzcangráficos 2D y3D. La interfaz consiste en más de 250 funciones diferentes quepueden usarse para dibujar escenas tridimensionales complejas a partir deprimitivas geométricas simples, tales como puntos, líneas y triángulos. Fuedesarrollada originalmente por Silicón Graphics Inc. (SGI) en 19922 y se usaampliamente en CAD, realidad virtual, representación científica, visualización deinformación y simulación de vuelo. También se usa en desarrollo de videojuegos,donde compite con Direct3D en plataformas Microsoft WindowsOpenGL tiene dos propósitos esenciales:Ocultar la complejidad de la interfaz con las diferentes tarjetas gráficas,presentando al programador una API única y uniforme.Ocultar las diferentes capacidades de las diversas plataformas hardware,requiriendo que todas las implementaciones soporten la funcionalidad completa deOpenGL (utilizando emulación software si fuese necesario).El funcionamiento básico de OpenGL consiste en aceptar primitivas tales comopuntos, líneas y polígonos, y convertirlas en píxeles. Este proceso es realizado poruna pipeline gráfica conocida como Máquina de estados de OpenGL.8 La mayorparte de los comandos de OpenGL bien emiten primitivas a la pipeline gráfica obien configuran cómo la pipeline procesa dichas primitivas. Hasta la aparición dela versión 2.0 cada etapa de la pipeline ejecutaba una función prefijada, resultandopoco configurable. A partir de la versión 2.0 algunas etapas son programablesusando un lenguaje de programación llamado GLSL.OpenGL es una API basada en procedimientos de bajo nivel que requiere que elprogramador dicte los pasos exactos necesarios para renderizar una escena. Estocontrasta con las Apis descriptivas, donde un programador sólo debe describir laescena y puede dejar que la biblioteca controle los detalles para representarla. Eldiseño de bajo nivel de OpenGL requiere que los programadores conozcan enprofundidad la pipeline gráfica, a cambio de darles libertad para implementaralgoritmos gráficos novedosos.
    • Tablero de AjedrezPresentación o descripción:En esta práctica realizaremos una tablero de Ajedrez con puntos esta solo paraempezar a poner en práctica la utilización de este programa.Esta es la practica numero 1 y con esta empezamos a ver si es posible entenderlea este programa.Los cuadros deben de ir de color blanco y negro y este es el código para surealización.GlBegin (GL_POINTS);YglPointSize(60); (Para definer el tamaño de los puntos)Codigo://mi primer ventana#include <GL/glut.h>#include <GL/gl.h>#include <GL/glu.h>void inicializa(void){glClearColor(1.0,0.0,1.0,0.0); //color de fondoglMatrixMode(GL_PROJECTION); //Modo de proyeccionglLoadIdentity(); //Establece los parametros de proyecciongluOrtho2D(0.0, 1050.0, 0.0, 1000.0); //vista ortogonal}
    • void dibuja(void) //funcion dibuja{glClear(GL_COLOR_BUFFER_BIT); //borra pantallaglColor3f(0.0 , 0.0 , 0.0);glPointSize(60);glBegin(GL_POINTS);glVertex2i(100,100);glVertex2i(347,100);glVertex2i(597,100);glVertex2i(848,100);glVertex2i(220,220);glVertex2i(473,220);glVertex2i(723,220);glVertex2i(970,220);glVertex2i(100,340);glVertex2i(347,340);glVertex2i(597,340);glVertex2i(848,340);glVertex2i(220,460);glVertex2i(473,460);glVertex2i(723,460);glVertex2i(970,460);glVertex2i(100,580);glVertex2i(347,580);
    • glVertex2i(597,580);glVertex2i(848,580);glVertex2i(220,700);glVertex2i(473,700);glVertex2i(723,700);glVertex2i(970,700);glVertex2i(100,820);glVertex2i(347,820);glVertex2i(597,820);glVertex2i(848,820);glEnd();glColor3f(1.0 , 1.0 , 1.0);glPointSize(60);glBegin(GL_POINTS);glVertex2i(220,100);glVertex2i(473,100);glVertex2i(723,100);glVertex2i(970,100);glVertex2i(100,220);glVertex2i(347,220);glVertex2i(597,220);glVertex2i(848,220);glVertex2i(220,340);glVertex2i(473,340);glVertex2i(723,340);
    • glVertex2i(970,340);glVertex2i(100,460);glVertex2i(347,460);glVertex2i(597,460);glVertex2i(848,460);glVertex2i(220,580);glVertex2i(473,580);glVertex2i(723,580);glVertex2i(970,580);glVertex2i(100,700);glVertex2i(347,700);glVertex2i(597,700);glVertex2i(848,700);glVertex2i(220,820);glVertex2i(473,820);glVertex2i(723,820);glVertex2i(970,820);glEnd();glFlush(); //forza dibujo}int main (int argc, char** argv) //metodo main{glutInit(&argc, argv); //incializa GLUT
    • glutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA); //establece el modo devisualizaciónglutInitWindowSize(500,500); //tamaño de la ventanaglutInitWindowPosition(0,0); //posicion inicial de la ventanaglutCreateWindow("MI primer ventana"); //nombre de la ventanainicializa();glutDisplayFunc(dibuja); //Envia los graficos a la ventana devisualizaciónglutMainLoop(); //muestra todo y esperareturn 0; //retorna un valor de cero}
    • EstrellaPresentación o descripción:En esta práctica realizaremos una estrella como con puras líneas.Esta es la practica numero 2 y con esta empezamos utilizaremos solamente líneasque es la siguiente instrucción:glBegin(GL_LINES);Codigo://mi primer ventana#include <GL/glut.h>#include <GL/gl.h>#include <GL/glu.h>void inicializa(void){glClearColor(0.0,0.0,0.0,0.0); //color de fondoglMatrixMode(GL_PROJECTION); //Modo de proyeccionglLoadIdentity(); //Establece los parametros de proyecciongluOrtho2D(0.0, 1000.0, 0.0, 1000.0); //vista ortogonal}void dibuja(void) //funcion dibuja{glClear(GL_COLOR_BUFFER_BIT); //borra pantallaglColor3f(1.0 , 0.0 , 0.0);
    • glBegin(GL_LINES);glVertex2i(400,700);glVertex2i(700,100);glVertex2i(700,100);glVertex2i(100,500);glVertex2i(100,500);glVertex2i(800,500);glVertex2i(800,500);glVertex2i(200,100);glVertex2i(200,100);glVertex2i(400,700);glEnd();glFlush(); //forza dibujo}int main (int argc, char** argv) //metodo main{glutInit(&argc, argv); //incializa GLUTglutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA); //establece el modo devisualizaciónglutInitWindowSize(500,500); //tamaño de la ventanaglutInitWindowPosition(0,0); //posicion inicial de la ventanaglutCreateWindow("MI primer ventana"); //nombre de la ventanainicializa();
    • glutDisplayFunc(dibuja); //Envia los graficos a la ventana devisualizaciónglutMainLoop(); //muestra todo y esperareturn 0; //retorna un valor de cero}Y asi es como queda:
    • Cubo con LíneasPresentación o descripción:En esta práctica realizamos un cubo con puras líneas asiendo el efecto para quese vea como en 3D pero aun no se vera asi.Esta es la practica numero 3 y en esta aprenderemos a utilizar aun mas y poneren practica las líneas.En esta práctica podemos utilizar las siguientes instrucciones que ya hemosaprendido como se utilizan en todas las clases anteriores:glBegin(GL_LINES);Codigo://TABLERO DE AJEDREZ#include <GL/glut.h>#include <GL/gl.h>#include <GL/glu.h>void inicializa(void){glClearColor(0.0,0.0,0.0,0.0); //color de fondoglMatrixMode(GL_PROJECTION); //Modo de proyeccionglLoadIdentity(); //Establece los parametros de proyecciongluOrtho2D(0.0, 1000.0, 0.0, 1000.0); //vista ortogonal}
    • void dibuja(void) //funcion dibuja{glClear(GL_COLOR_BUFFER_BIT);glColor3f(1.0 ,0.0 ,1.0 );glBegin(GL_LINES);glVertex2i(100,100);glVertex2i(100,400);glVertex2i(100,100);glVertex2i(400,100);glVertex2i(400,100);glVertex2i(400,400);glVertex2i(400,400);glVertex2i(100,400);glVertex2i(100,100);glVertex2i(300,300);glVertex2i(100,400);glVertex2i(300,600);glVertex2i(300,300);glVertex2i(300,600);glVertex2i(300,300);glVertex2i(600,300);
    • glVertex2i(600,600);glVertex2i(600,300);glVertex2i(600,600);glVertex2i(300,600);glVertex2i(600,600);glVertex2i(400,400);glVertex2i(600,300);glVertex2i(400,100);glEnd();glFlush(); //forza dibujo}int main (int argc, char** argv) //metodo main{glutInit(&argc, argv); //incializa GLUTglutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA); //establece el modo devisualizaciónglutInitWindowSize(500,500); //tamaño de la ventanaglutInitWindowPosition(0,0); //posicion inicial de la ventanaglutCreateWindow("MI primer ventana"); //nombre de la ventanainicializa();glutDisplayFunc(dibuja); //Envia los graficos a la ventana devisualizaciónglutMainLoop(); //muestra todo y espera
    • return 0; //retorna un valor de cero}Asi es como queda:
    • Cubo delineadoPresentación o descripción:En esta práctica realizamos un cubo pro tendremos que marcar muy bien suslíneas para darle otro tipo de vistaEsta es la practica numero 4 y en esta aprenderemos a utilizar aun mas y poneren practica las líneas.En esta práctica podemos utilizar las siguientes instrucciones que ya hemosaprendido como se utilizan en todas las clases anteriores:glBegin(GL_LINES);glBegin(GL_QUADS);Codigo://TABLERO DE AJEDREZ#include <GL/glut.h>#include <GL/gl.h>#include <GL/glu.h>void inicializa(void){glClearColor(0.0,0.0,1.0,0.0); //color de fondoglMatrixMode(GL_PROJECTION); //Modo de proyeccionglLoadIdentity(); //Establece los parametros de proyecciongluOrtho2D(0.0, 1000.0, 0.0, 1000.0); //vista ortogonal}
    • void dibuja(void) //funcion dibuja{glClear(GL_COLOR_BUFFER_BIT); //borra pantallaglColor3f(1.0 , 1.0 , 0.0);glBegin(GL_QUADS);glColor3f(0.0,1.0,1.0);glVertex2i(100,100);glVertex2i(100,200);glVertex2i(200,200);glVertex2i(200,100);glColor3f(0.0,1.0,0.0);glVertex2i(200,100);glVertex2i(200,200);glVertex2i(250,250);glVertex2i(250,150);glColor3f(1.0,0.0,0.0);glVertex2i(250,250);glVertex2i(150,250);glVertex2i(100,200);glVertex2i(200,200);glEnd();glLineWidth(3);
    • glBegin(GL_LINES);glColor3f(0.0,0.0,0.0);glVertex2i(100,100);glVertex2i(100,200);glVertex2i(200,200);glVertex2i(200,100);glVertex2i(100,200);glVertex2i(200,200);glVertex2i(100,100);glVertex2i(200,100);glVertex2i(200,200);glVertex2i(200,100);glVertex2i(100,200);glVertex2i(150,250);glVertex2i(200,200);glVertex2i(250,250);glVertex2i(200,100);glVertex2i(250,150);glVertex2i(150,250);glVertex2i(250,250);
    • glVertex2i(250,250);glVertex2i(250,150);glEnd();glFlush(); //forza dibujo}int main (int argc, char** argv) //metodo main{glutInit(&argc, argv); //incializa GLUTglutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA); //establece el modo devisualizaciónglutInitWindowSize(500,500); //tamaño de la ventanaglutInitWindowPosition(0,0); //posicion inicial de la ventanaglutCreateWindow("MI primer ventana"); //nombre de la ventanainicializa();glutDisplayFunc(dibuja); //Envia los graficos a la ventana devisualizaciónglutMainLoop(); //muestra todo y esperareturn 0; //retorna un valor de cero}
    • Muñeco con Formas.Presentación o descripción:En esta práctica realizamos un muñeco con muchas figuras, como triángulos,cuadrados, rectángulos, círculos, etc.Debemos realizar esta practica en una clase solamente ya que es como unexamen para ver como trabajamos y todo lo que hemos aprendido sobre esteprograma.En esta práctica podemos utilizar las siguientes instrucciones que ya hemosaprendido como se utilizan en todas las clases anteriores:GlBegin (GL_QUADS);GlBegin (GL_TRIANGLES);GlBegin (GL_POLYGON);GlBegin (GL_LINES);Circulo ();El código que utilizamos en esta práctica es el siguiente:Void dibuja (void) //función dibuja{GlClear (GL_COLOR_BUFFER_BIT);//cabelloglColor3f (0.0, 0.0, 0.0);GlBegin (GL_TRIANGLES);glVertex2i (280,400);glVertex2i (290,400);glVertex2i (350,450);//cabelloglColor3f (0.0, 0.0, 0.0);GlBegin (GL_TRIANGLES);glVertex2i (280,400);glVertex2i (290,400);glVertex2i (325,500);
    • //cabelloglColor3f (0.0, 0.0, 0.0);GlBegin (GL_TRIANGLES);glVertex2i (280,400);glVertex2i (290,400);glVertex2i (300,500);//cabelloglColor3f (0.0, 0.0, 0.0);GlBegin (GL_TRIANGLES);glVertex2i (280,400);glVertex2i (290,400);glVertex2i (250,500);//cabelloglColor3f (0.0, 0.0, 0.0);GlBegin (GL_TRIANGLES);glVertex2i (280,400);glVertex2i (290,400);glVertex2i (200,500);//cabelloglColor3f (0.0, 0.0, 0.0);GlBegin (GL_TRIANGLES);glVertex2i (280,400);glVertex2i (290,400);glVertex2i (150,400);//cabelloglColor3f (0.0, 0.0, 0.0);GlBegin (GL_TRIANGLES);glVertex2i (280,400);glVertex2i (290,400);glVertex2i (100,400);//cabelloglColor3f (0.0, 0.0, 0.0);GlBegin (GL_TRIANGLES);glVertex2i (280,400);glVertex2i (290,400);glVertex2i (75,400);//cabelloglColor3f (0.0, 0.0, 0.0);GlBegin (GL_TRIANGLES);glVertex2i (280,400);glVertex2i (290,400);glVertex2i (50,400);GlEnd ();//cabezaglColor3f (1.0, 0.8, 0.7); //borra pantallaCírculo (250, 350,75);//sonrisa
    • glColor3f (0.0, 0.0, 0.0); //borra pantallaCirculo (250, 300,15);//sonrisaglColor3f (1.0, 0.8, 0.7); //borra pantallacirculo(250,310,15);//ojosglColor3f(1.0,1.0,1.0); //borra pantallacirculo(225,375,10);//ojosglColor3f(0.2,0.8,1.0); //borra pantallacirculo(225,375,5);//ojosglColor3f(1.0,1.0,1.0); //borra pantallacirculo(275,375,10);//ojosglColor3f(0.2,0.8,1.0); //borra pantallacirculo(275,375,5);//orejasglColor3f(1.0,0.8,0.7); //borra pantallacirculo(325,375,15);//orejasglColor3f(1.0,0.8,0.7); //borra pantallacirculo(173,375,15);//cuelloglColor3f(1.0,0.8,0.7);//cuerpoglBegin(GL_QUADS);glColor3f(1.0,0.0,0.0);glVertex2i(200,275);glVertex2i(325,275);glVertex2i(325,125);glVertex2i(200,125);//cuelloglColor3f(1.0,0.8,0.7);glVertex2i(245,285);glVertex2i(275,285);glVertex2i(275,260);glVertex2i(245,260);//brazoglVertex2i(200,275);glVertex2i(200,245);glVertex2i(150,150);glVertex2i(130,150);glVertex2i(325,275);glVertex2i(325,245);glVertex2i(370,150);glVertex2i(390,150);
    • glEnd();circulo(140,150,25);circulo(380,150,25);glColor3f(1.0,1.0,.0);glBegin(GL_POLYGON);glVertex2i(325,175);glVertex2i(200,175);glVertex2i(160,10);glVertex2i(180,10);glVertex2i(245,125);glVertex2i(330,10);glVertex2i(350,10);glEnd();glColor3f(0.0,0.0,0.0);circulo(340,10,20);circulo(170,10,20);glFlush(); //forza dibujo}Salida:
    • ANIMACION CÍRCULO.Presentación o descripción:En esta práctica realizaremos una animación en Dev c++ esta vez no utilizaremoscuadrados ni triángulos ahora solo utilizaremos un circulo y unas nuevasinstrucciones que el profesor nos dio.Lo que tenemos que realizar es que un circulo avance hacia enfrente, hacia abajo,hacia atrás, hacia arriba, en este orden una y otra vez.Nos tenemos que guiar con un trabajo que el profesor nos dio pero que soloavanza hacia enfrente, ahora tenemos que cambiar el código para que realice lassiguientes acciones.La instrucción que utilizamos fue la siguiente:if(y>=1 && y<600 && x==1000){circulo(1000,700-y,40);glFlush();y++;}El código de toda la práctica es el siguiente:glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);if(x>=1 && x<1000){circulo(2+1*x,700,40);glFlush();x++;}if(y>=1 && y<600 && x==1000){circulo(1000,700-y,40);glFlush();y++;}if(w>=1 && w<1000 && y==600 && x==1000){circulo(1000-w,100,40);glFlush();w++;}if(z>=1 && z<1000 && y==600 && x==1000 && w==1000){circulo(5,100+z,40);glFlush();z++;if(z==600) {z=1;x=1;y=1;w=1;}}
    • glutSwapBuffers();} SALIDA:
    • ANIMACION DEL SISTEMA SOLAR.Presentación o descripción:En esta practica también vamos a realizar una animación en Dev c++ pero ahorarealizaremos un sistema solar realizaremos nuestro sistema solar con movimientotanto de los planetas como de las orbitas.Podemos ponerle el diseño que nosotros deseemos, tenemos que guiarnos conuna instrucción que el profesor nos pasó y también con su ayuda.La instrucción que utilizamos fue la siguiente: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();El código de toda la práctica fue el siguiente: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//solglColor3f (1.0, 1.0, 0.0);circulo( 500,500,50);
    • //mercurioglColor3f (1.0, 1.0, 1.0);circuloc(500,500,2,100);glColor3f (1.0, 0.0, 0.0);circulo( 500+ sin(b) * 100,500 + cos(b) * 100,10);//venusglColor3f (1.0, 1.0, 1.0);circuloc(500,500,2,150);glColor3f (0.5, 0.2, 0.1);circulo( 500+ sin(a) * 150,500 + cos(a) * 150,15);//tierraglColor3f (1.0, 1.0, 1.0);circuloc(500,500,2,200);glColor3f (0.08, 0.6, 0.9);circulo( 500+ sin(c) * 200,500 + cos(c) * 200,20);//marteglColor3f (1.0, 1.0, 1.0);circuloc(500,500,2,250);glColor3f (1.0, 0.0, 0.0);circulo( 500+ sin(d) * 250,500 + cos(d) * 250,22);//jupiterglColor3f (1.0, 1.0, 1.0);circuloc(500,500,2,300);glColor3f (0.4, 0.2, 0.6);circulo( 500+ sin(e) * 300,500 + cos(e) * 300,23);//saturnoglColor3f (1.0, 1.0, 1.0);circuloc(500,500,2,350);glColor3f (0.3, 0.9, 0.6);circulo( 500+ sin(f) * 350,500 + cos(f) * 350,20);//uranoglColor3f (1.0, 1.0, 1.0);circuloc(500,500,2,400);glColor3f (0.7, 0.1, 0.6);circulo( 500+ sin(g) * 400,500 + cos(g) * 400,22);//neptunoglColor3f (1.0, 1.0, 1.0);circuloc(500,500,2,450);glColor3f (0.8, 0.3, 0.2);circulo( 500+ sin(k) * 450,500 + cos(k) * 450,23);a=a+0.09;b=b+0.08;c=c+0.07;d=d+0.06;e=e+0.05;f=f+0.04;
    • g=g+0.03;k=k+0.02;ang=ang+0.01; //velocidad entre mas grande mas rapido y entre menos mas lentofor(int j=1;j<=10000000;j++){}//pausaif(ang==360){ang=0;}// se repite idefinidamenteglFlush(); //forzar dibujadoglutSwapBuffers(); //y esto}SALIDA:
    • MOVIMIENTO EN OCHO.Presentación o descripción:En esta practica también realizaremos una animación pero ahora será con doscírculos, lo que haremos será que en un dibujo parecido en ocho y ahora tenemosque hacer que dos círculos se muevan como si fueran un carro en una pista.La instrucción que utilizamos en esta practica es:if(a>=6.15 && a<=12.41){circulo(300+ sin (a)*60,300- cos(a)*60,10);a=a +0.01;}else{circulo(300 + sin (b) *60,180+cos(b)*60,10);b=b + 0.01;if(b>12.4){a=6.15;b=6.15;}for(int j=0; j<=10; j++) {}El código completo de esta práctica es el siguiente:{glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);glColor3f(1.0, 1.0, 0.0);circulo(300, 300, 70);circulo(300,180,70);glColor3f(1.0,1.0,1.0);circulo(300,300,50);circulo(300,180,50);glColor3f(0.0,0.0,0.0);if(a>=6.15 && a<=12.41){circulo(300+ sin (a)*60,300- cos(a)*60,10);a=a +0.01;}
    • else{circulo(300 + sin (b) *60,180+cos(b)*60,10);b=b + 0.01;if(b>12.4){a=6.15;b=6.15;}for(int j=0; j<=10; j++) {}}glFlush();glutSwapBuffers();}SALIDA.:
    • SEMAFORO:Presentación o descripción:En esta practica realizaremos un semáforo, logrando que se cambien de color yque cuando este en verde parpadee un poco después el amarillo y por ultimo encolor rojo.El profesor nos paso un trabajo ya terminado y después nos explico comorealizarlo además de que igual nos paso un video tutorial de cómo realizarlo.El código completo de esta practica es el siguiente:#include <GL/glut.h>#include <GL/gl.h>#include <math.h>void inicializa(void){glClearColor(0.0,0.0,0.0,0.0); //color de fondoglMatrixMode(GL_PROJECTION); //Modo de proyeccionglLoadIdentity(); //Establece los parametros de proyecciongluOrtho2D(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();}void dibuja(void) //funcion dibuja{glClear(GL_COLOR_BUFFER_BIT);glColor3f(0.0,0.0,1.0);glBegin(GL_QUADS);glVertex2i(200,500);glVertex2i(300,500);glVertex2i(300,200);glVertex2i(200,200);glEnd();//rojoglColor3f(1.0,0.0,1.0); //borra pantallacirculo(250,400,50);//amarilloglColor3f(1.0,0.0,1.0); //borra pantallacirculo(250,300,50);//amarilloglColor3f(1.0,0.0,1.0); //borra pantallacirculo(250,200,50);glFlush(); //forza dibujo}SALIDA:
    • PIRAMIDE.Presentación o Descripción:En esta practica realizaremos una pirámide que solo se vera por la parte de arribapara esto tenemos que guiarnos con la instrucción que el profesor ya nos pasoanteriormente.También con su ayuda realizaremos lo que falta de la práctica.Esta práctica se realizara más fácilmente con la instrucción Ford para que seamás fácil.El código completo de esta práctica es el siguiente:void dibuja(void) //funcion dibuja{int i,a=20;glClear(GL_COLOR_BUFFER_BIT); //borra pantallaglColor3f(0.0 , 0.0 , 0.0);glLineWidth(2);glBegin(GL_LINES);//valor inicial----valor finalfor(i=1;i<=10;i++){//abajoglVertex2i(240-20*i,240-20*i);glVertex2i(260+20*i,240-20*i);//derechaglVertex2i(260+20*i,240-20*i);glVertex2i(260+20*i,260+20*i);//IzquierdaglVertex2i(240-20*i,240-20*i);glVertex2i(240-20*i,260+20*i);//arribaglVertex2i(240-20*i,260+20*i);glVertex2i(260+20*i,260+20*i);}
    • int c,s=40;glColor3f(0.0 ,0.0 ,0.0 );glLineWidth(4);glBegin(GL_LINES);for(c=0;c<=4;c++){glVertex2i(280+s*c,280+s*c);glVertex2i(300+s*c,300+s*c);glVertex2i(200-s*c,200-s*c);glVertex2i(220-s*c,220-s*c);glVertex2i(220-s*c,280+s*c);glVertex2i(200-s*c,300+s*c);glVertex2i(280+s*c,220-s*c);glVertex2i(300+s*c,200-s*c);}glEnd();SALIDA: