Universidad Tecnolégica de los Andes
FACULTAD DE INGENIERIA
Escuela Profesional de Ingenieria de Sistemas e Informatica A)
COMPUTACION GRAFICA
Guia de aplicacién N° 5
L.FECHA : Noviembre del 2021
UL. Tema Grafico de poligono
Ill, COMPETENCIAS A CONSEGUIR
+ Implementar un programa que muestre como graficar un poligono usando las librerias
OpenGL.
IV. Fundamento Teérico
Poligonos en OpenGL,
OpenGL maneja poligonos correctamente siempre y cuando sean simples y convexos. Si ese no es el
caso, OpenGL dibuja cosas raras. Ademés, en algunas ocasiones se quiere especificar el vector normal del
plano en el cual se encuentra el poligono.
En esta guia veremos cémo dibujar un poligono teniendo como base las diferentes figuras geométricas
como: lineas, triangulos, cuadrados, etc; mediante la utiizacién de la API OpenGL en Java en
NetBeans.
La API OpenGL permite escribir aplicaciones que produzcan graficos 2D y 2D.
Tener en cuenta que debemos tener instalado el plugin de OpenGL
\Veremos script de como dibujar algunas figuras geométricas en 2D con OpenGL en NetBeans
En el método display() es en donde se dibujan las figuras’
Para dibujar un tridngulo se especifica la siguiente funcion:
gi-glBegin (GL.GL_TRIANGL
gl. glvertex3
gi.give:
gi.glvertex3
gland()
Através de la funcién gl.glVertex3t {float x, float y, float z) se especifican los vertices del triangulo,
Para afiadir colores al triangulo se utliza la funcién gl.glColorSf(float red, float green, float blue), se
pueden especificar los colores de 0.0f a 1.0F
Elmétodo gl.giTranslatefifloat x, floaty, float z) permite ubicar la figura en la ventana,
Para dibujar los poligonos se utiliza la funcién:
gl.glBegin (GL.GL_POLYGON) ;
/fwertices del poligono
gi-glana();
Docente: Ing. Godofredo PoccoriUmeres Pagina 1Universidad Tecnolégica de los Andes
FACULTAD DE INGENIERIA
Escuela Profesional de Ingenieria de Sistemas e Informatica A)
La funcién gl.glLineWidth(float width) permite establecer un grosor a las lineas, se la ubica antes de
dibujar las lineas,
Para dibujar las lineas se utiliza la siguiente funcién:
gi-glgna()
La informacién més importante acerca de los vértices son sus coordenadas, que se especifican con el
comando glVertex(). Por cada uno de los véttices se puede especificar un color, un vector normal y
coordenadas de textura. Al querer definir un poligono, debemos hacerlo las llamadas
a glVertex*() exclusivamente dentro de los limites que fjan las instrucciones: glBegin() y glEnd(). Para la
asignacién de colores usaremos el comando glColor'(). Es también necesario saber que un poligono tiene
dos caras, se define la cara anterior como aquella para la cual los vertices van en el sentido contrario al
de las manecillas del reloj
Objetivo de la practica
Ahora veremos un sencillo programa para dibujar un hexdégono utilizando JOGL y, ademas, lo haremos
utilizando un JFrame centrado en la pantalla y a partir de este generar otras figuras compuestos por estos
poligonos.
Para comenzar, tendremos que importar la libreria de OpenGL. La cual contiene las clases e interfaces
necesarias para llamar a los métodos de OpenGL en Java entre las que destacan:
V. Practicas
Implementar un programa en Java usando las librerias OpenGL que me permita graficar un poligono.
Pasol.-Trabajar sobre el proyecto creado con el nombre Computacién Grafica.
Paso2.-Crear un paquete con el nombre paquete_poligono.
Paso3.-Crear una clase con el nombre CPoligono y en ella escriba el cédigo.
//importar las
import javax.media
import javax.media
import javaz.media
import javax.media
import javax.media.
//Para usar
import javax.media.opengl.glu.GLU;
import javaz.swing.*;
blic class CPoligone extends JFrame {
public CPoligono() {
(/estable el ancho y a:
setsize(s00, 800);
de la ventana
Docente: Ing. Godofredo PoccoriUmeres Pagina 2Universidad Tecnolégica de los Andes
FACULTAD DE INGENIERIA
Escuela Profesional de Ingenieria de Sistemas e Informatica
/festablecenos 1a posicion de la ventana
setLocation(350, 120);
//settocation(150, 60);
7/Colocamos el titulo a nuestra ventana
setTitle("Poligonos en JOGL");
//Creamos una instancia de la clase Graphictistener
GraphicListener listener = new Graphichistener();
//agregamos nuestra area de dibujo a la ventana del fram
Glcanvas canvas = new GLCanvas (new GLCapabilities());
canvas. adaGLBventListener (listener) ;
getcontentPane() add (canvas) ;
’
//erincipal
public static void main(string args{1) {
cpoligono cuadrado = new Cpoligono();
cuadrado. setVisible (true) ;
cuadrado. setDefaultCloseOperation (EXIT_ON_CLOSE)
»
G&L gli
GLU glu;
public class Graphichistener implements GliventListener (
public void display(GLautoprawable argo) {
//tnicializa GLU
glu = new GLUQ;
//tnicializa Gl
gl = arg0.getsL();
//astablecenos el color de fondo de la ventana de colores RGB
gl.glClearColor(0.0£, 0.0f, 0.0f, 0.0097
J/astablecemos los parametros de proyeccion
gl. glMatrixMode (GL.GL_PROJECTION) ;
gl-glortho(0.0, 1.0, 0.0, 1.0, =1.0, 1.003
W/el grosor de las lineas
gi-glLinewiath (21) ;
7/el tamatio de los puntos
gl-glPointsize(3.00);
/icreacion del poligonos
//establece la cara que se desea pintar y la forma en la que se
desea pintar
gl.glPolygonMode(GL.GL_FRONT, GL.GL_FILL) ;
gl.glcolor3t(1.0f, 0.0£, 0.0£);//rojo
dibujatexagono(g1,0.4£,0.4£,.5£,0.42,0.6£,0.5£,0.5£,0.6£,0.4£,
0.6£,0.3£,0.58)7
7igl.glfna();
//Procesa todas las subrutinas de JOGL, tan rapido como sea posible
gl-glFlush() ;
)
//Pibujar el hexagono
void dibujaexagono (Gb gl, float x1, float yl, float x2, float y2,
float x3, float y3, float x4, float y4, float x5, float y5, float x6, float
yer (
gl-glBegin(GL.Gi_POLYGON) ;
gl.glvertex2£(x1, yl);
gl.glvertex2£(x2, y2);
g.glvertex2£(x3, y3)7
Gl.glvertex2£ (x4, y4);
Docente: Ing. Godofredo PoccoriUmeres Pagina 3Universidad Tecnolégica de los Andes
FACULTAD DE INGENIERIA
Escuela Profesional de Ingenieria de Sistemas e Informatica i
public void init (ai
/Manejo de
¢ de JOGL
ALPHA, GL.GL_ONE_MINUS_SRC_ALPHA)
e arg0, boolean argl, boolean
arg2) (
,
public void reshape (GLAutoDr.
height) {
}
>
Pasod.-Ejecute el programa
Docente: Ing. Godofredo PoccoriUmeres PaginaUniversidad Tecnolégica de los Andes
FACULTAD DE INGENIERIA
de Sistemas e Informatica 2)
Escuela Profesional de Ingenieri
VI. Actividad Laboratorio:
1, Ejecute el programa de la Guia
2. Cambie el color de fondo del poligono
3. Crear una figura como se muestra en el ejemplo
VII. Actividades complementarias
Actividad 1 investiga cémo generar poligonos de diferentes lados.
Actividad 2 Generar figuras Tangram usando elementos cuadrados, triéngulos y poligonos.
jon GUIA DE APLICACION Ne S
icha de calif
Actitudinal
Procedimental
Actividad en clase
Tareas
Total =
Docente: Ing. Godofredo PoccoriUmeres Pagina 5