0% encontró este documento útil (0 votos)
26 vistas9 páginas

OPENGL

Este documento presenta cuatro códigos de programación con OpenGL para la práctica de diseño y modelado virtual. El primer código dibuja puntos en una circunferencia. El segundo dibuja cuadrados concéntricos decrementando el tamaño. El tercero dibuja triángulos formando una figura poligonal. El cuarto dibuja cuadrados normales y cuadrados inclinados de manera recursiva reduciendo el tamaño.

Cargado por

Señor Popo
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
26 vistas9 páginas

OPENGL

Este documento presenta cuatro códigos de programación con OpenGL para la práctica de diseño y modelado virtual. El primer código dibuja puntos en una circunferencia. El segundo dibuja cuadrados concéntricos decrementando el tamaño. El tercero dibuja triángulos formando una figura poligonal. El cuarto dibuja cuadrados normales y cuadrados inclinados de manera recursiva reduciendo el tamaño.

Cargado por

Señor Popo
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

UNIVERSIDAD PRIVADA DE

TACNA

TEMA

 Introducción a la programación con OpenGL

DOCENTE

 ING. HUGO MANUEL BARRAZA VIZCARRA

ALUMNO

 JHON ROMARIO POMA CHURA

CURSO

 DISEÑO Y MODELAMIENTO VIRTUAL


CODIGO DEL EJEMPLO
#include <math.h>
#include <GL/glut.h>
#define PI 3.1416
void init(void)
{
glClearColor(1.0,1.0,1.0,1.0);
glMatrixMode(GL_PROJECTION);
gluOrtho2D(-10.0,10.0,-10.0,10.0);
}
void display(void)
{
GLfloat ang, radio = 8.0, x, y;
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(1.0,0.0,0.0);
glPointSize(2);
glBegin(GL_POINTS);
for (ang = 0.0; ang < 2*PI; ang = ang + 2*PI/5)
{
x = radio * sin(ang);
y = radio * cos(ang);
glVertex2f(x,y);
}
glEnd();
glFlush();

}
int main(int argc, char* argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize(250,250);
glutInitWindowPosition(100,100);
glutCreateWindow("Ejemplo");
init();
glutDisplayFunc(display);
glutMainLoop();
return 0;

}
CODIGO DE LA PRACTICA 01
#include <math.h>

#include <GL/glut.h>
#define PI 3.1416

void init(void)
{
glClearColor(1.0,1.0,1.0,1.0);
glMatrixMode(GL_PROJECTION);
gluOrtho2D(-10.0,10.0,-10.0,10.0);
}
void display(void)
{
gluOrtho2D(-1,2,-1,2);//codigo agregado

GLfloat ang, radio = 8.0, x, y;


glClear(GL_COLOR_BUFFER_BIT);
glColor3f(1.0,0.0,0.0);
glPointSize(2);
glBegin(GL_LINE_LOOP); // codigo modificado
for (ang = 0.0; ang < 2*PI; ang = ang + 2*PI/10) // parte del
codigo modificado
{
x = radio * sin(ang);
y = radio * cos(ang);
glVertex2f(x,y);
}
glEnd();
glFlush();
}
int main(int argc, char* argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize(250,250);
glutInitWindowPosition(100,100);
glutCreateWindow("Practica 1");
init();
glutDisplayFunc(display);
glutMainLoop();
return 0;
}
CODIGO DE LA PRACTICA 02

#include<GL/glut.h>
#include<iostream>
#include<math.h>

using namespace std ;


float l , n;

void init (void)


{
glClearColor(1.0,1.0,1.0,0.0);
glMatrixMode(GL_PROJECTION);
gluOrtho2D(-10.0,10.0,-10.0,10.0); // definicion del tamaño del
cuadrado

void display (void) // ventana a visualizar


{
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(1.0,0.0,0.0); //color las lineas

//lineas gias de X,Y


glBegin(GL_LINES);
glVertex2f(-10.0,0);// -X
glVertex2f(10.0,0);// X

glVertex2f(0.0,-10); // -Y
glVertex2f(0.0,10); // Y
glEnd();

//ciclo para generar un cuadrado dentro de otro


for(int i=1; i<=n ; i++)
{
//aqui generamos las lineas del cuadrado
glColor3f(0.0,0.0,1.0); //color las lineas
glBegin(GL_LINE_LOOP);
glVertex2f(-l/2,l/2);// -X,Y
glVertex2f(l/2,l/2); // X,Y
glVertex2f(l/2,-l/2); // X, -Y
glVertex2f(-l/2,-l/2);// -X,-Y
glEnd();

l=l/2;
}

glFlush();
}

int main (int argc, char* argv[]) // funcion principal


{
cout << "ingrese la longitud: ";
cin >> l;
cout << "ingrese el numero de cuadrados: ";
cin >> n;
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB);
glutInitWindowSize(250,250); //tamaño de la ventana
glutInitWindowPosition(500,100); // posicion de la ventana
glutCreateWindow("ejemplo2"); // creacion de la ventana
init();
glutDisplayFunc(display);
glutMainLoop();
return 0;
}
CODIGO DE LA PRACTICA 03

#include<GL/glut.h>
#include<iostream>
#include<math.h>
#define PI 3.1416

using namespace std ;


float m , n;

void init (void)


{
glClearColor(1.0,1.0,1.0,0.0);
glMatrixMode(GL_PROJECTION);
gluOrtho2D(-10.0,10.0,-10.0,10.0); // definicion del tamaño del
cuadrado

void display (void) // ventana a visualizar


{
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(1.0,0.0,0.0); //color las lineas

//lineas gias de X,Y


glBegin(GL_LINES);
glVertex2f(-10.0,0);// -X
glVertex2f(10.0,0);// X

glVertex2f(0.0,-10); // -Y
glVertex2f(0.0,10); // Y
glEnd();

//ciclo para generar los triangulos

GLfloat ang, radio = 8.0, x, y;


ang = 0.0;
glBegin(GL_LINE_LOOP);
glColor3f(0.0,1.0,0.0);
for (int i=1; i<=n; i++)
{
x = radio * sin(ang);
y = radio * cos(ang);
glVertex2f(x,y);
ang = ang + 2*PI/(n/m);
}
glEnd();

glFlush();
}

int main (int argc, char* argv[]) // funcion principal


{
cout << "numero de vertices: ";
cin >> n;
cout << "salto de vertices: ";
cin >> m;
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB);
glutInitWindowSize(500,500); //tamaño de la ventana
glutInitWindowPosition(500,100); // posicion de la ventana
glutCreateWindow("ejemplo2"); // creacion de la ventana
init();
glutDisplayFunc(display);
glutMainLoop();
return 0;
}

CODIGO DE LA PRACTICA 04
#include<GL/glut.h>
#include<iostream>

using namespace std ;


float m , l;

void init (void)


{
glClearColor(1.0,1.0,1.0,0.0);
glMatrixMode(GL_PROJECTION);
gluOrtho2D(-10.0,10.0,-10.0,10.0); // definicion del tamaño del
cuadrado

void display (void) // ventana a visualizar


{
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(1.0,0.0,0.0); //color las lineas
//lineas gias de X,Y
glBegin(GL_LINES);
glVertex2f(-10.0,0);// -X
glVertex2f(10.0,0);// X

glVertex2f(0.0,-10); // -Y
glVertex2f(0.0,10); // Y
glEnd();

//ciclo para generar un cuadrado dentro de otro


for(int i=1; i<=m/2 ; i++)
{
//aqui generamos las lineas del cuadrado
glColor3f(0.0,0.0,1.0); //color las lineas
glBegin(GL_LINE_LOOP);
glVertex2f(-l/2,l/2);// -X,Y
glVertex2f(l/2,l/2); // X,Y
glVertex2f(l/2,-l/2); // X, -Y
glVertex2f(-l/2,-l/2);// -X,-Y
glEnd();
//generador del cuadrado inclinado
glBegin(GL_LINE_LOOP);
glVertex2f(0,l/2);// -X,Y
glVertex2f(l/2,0); // X,Y
glVertex2f(0,-l/2); // X, -Y
glVertex2f(-l/2,0);// -X,-Y
glEnd();

l=l/2;
}
glFlush();
}

int main (int argc, char* argv[]) // funcion principal


{
cout << "longitud del cuadrado: ";
cin >> l;
cout << "numero de cuadrados: ";
cin >> m;

glutInit(&argc,argv);
glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB);
glutInitWindowSize(500,500); //tamaño de la ventana
glutInitWindowPosition(500,100); // posicion de la ventana
glutCreateWindow("ejemplo2"); // creacion de la ventana
init();
glutDisplayFunc(display);
glutMainLoop();
return 0;
}

También podría gustarte