You are on page 1of 5
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 1 Universidad 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 2 Universidad 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 3 Universidad 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 Pagina Universidad 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

You might also like