Download java.awt.Graphics2D java.awt.Graphics2D
Document related concepts
no text concepts found
Transcript
Curso de Programación Programación Gráfica java.awt.Graphics2D – – Utiliza el mismo modelo empleado por Graphics Para usarlo… public void paint(Graphics g) { Graphics2D g2 = (Graphics2D) g; ... } java.awt.geom – formas primitivas Arc2D Ellipse2D QuadCurve2D Area GeneralPath Rectangle2D CubicCurve2D Line2D RectangularShape Dimension2D Point2D RoundRectangle2D java.awt.Graphics2D – API Extendido para manejo de textos, imágenes, colores, formas e impresión – Manejo de características avanzadas como • Transparencia • Antialiasing java.awt • Canales Alpha java.awt.geom • Composición java.awt.font • Transformación java.awt.color java.awt.image java.awt.image.renderable java.awt.print Programación Grafica en JAVA2D 1 Curso de Programación Programación Gráfica Ejemplo – Uso de gráficos primitivos (En su Forma Simple) public void paint(Graphics g) { Graphics2D g2 = (Graphics2D) g; g2.setStroke(new BasicStroke(2.0f)); g2.draw(new Rectangle2D.Double(5, 5, 50, 20)); g2.setStroke(new BasicStroke(4.0f)); g2.draw(new RoundRectangle2D.Double(5, 30, 50, 20, 5, 5)); g2.setStroke(new BasicStroke(2.0f)); g2.draw(new Arc2D.Double(5, 55, 50, 20, 90, 135, Arc2D.OPEN)); g2.draw(new Ellipse2D.Double(5, 80, 50, 20)); } A continuación procedemos al diseño de una aplicación donde podemos observar los primitivos gráficos en Dos Dimensiones en JAVA. Cabe recalcar que no están todos los métodos, usted tendrá que la investigación constante que usted desarrollara y fortalecimiento de sus conocimientos, por tal motivo, ya puede iniciar en este sentido las practicas e indagaciones del resto de métodos de Java para graficas de dos dimensiones. Programación Grafica en JAVA2D 2 Curso de Programación Programación Gráfica Ejemplo #2 /* * Creado el miercoles 18/Abril/2007 * */ /** @Giovanni.Saenz@fec.uni.edu.ni **/ // Manejo de Figuras de JAVA2D.java de una forma simple. // Demostración de algunas figuras de Java2D. import java.awt.*; import java.awt.geom.*; import java.awt.image.*; import javax.swing.*; public class Grafica2D extends JFrame { // establecer cadena de barra de título y dimensiones de la ventana public Grafica2D() { super( "Dibujo de figuras en 2D" ); setSize( 900, 600 ); setVisible( true ); } // dibujar figuras con la API Java2D public void paint( Graphics g ) { int x=10, y=30; int ANCHO=50,ALTO=30; super.paint( g ); // llamar al método paint de la superclase Graphics2D g2d = ( Graphics2D ) g; // convertir g a Graphics2D /********************* Rectangulo Sin Relleno. ************************/ // Dibujar un Rectangulo de color Rojo y con un grosor de borde de //diez pixeles. g2d.setPaint(Color.RED); g2d.setFont( new Font( "Monospaced", Font.ITALIC, 15 ) ); g2d.setStroke(new BasicStroke(10.0f)); g2d.draw(new Rectangle2D.Double(x, y, ANCHO, ALTO)); g2d.drawString( " Dibujo de RECTANGULO 2D " , 70, 45 ); Programación Grafica en JAVA2D 3 Curso de Programación Programación Gráfica /********************* Rectangulo Con Relleno. ************************/ //Dibujar un Rectangulo de color Degradado y con un grosor de borde //de //diez pixeles. g2d.setPaint(new GradientPaint( x+400, y, Color.BLUE, x+435, y+70,Color.YELLOW, true )); g2d.setFont( new Font( "Serif", Font.BOLD , 15 ) ); g2d.fill(new Rectangle2D.Double(x+400, y, ANCHO, ALTO)); g2d.drawString( " Dibujo de RECTANGULO 2D " , x+470, y+15 ); //Dibujar un Rectangulo con borde redondeado (Sin Relleno) //de color Magenta y con un grosor de borde de cuatro pixeles. g2d.setPaint(Color.MAGENTA); g2d.setStroke(new BasicStroke(4.0f)); g2d.draw(new RoundRectangle2D.Double(x, y+70, ANCHO, ALTO, 20, 20)); g2d.drawString( " Dibujo de RECTANGULO REDONDEADO 2D " , 70, 115 ); //Dibujar un Rectángulo con borde redondeado (Con Relleno) de color //Degradado //y con un grosor de borde de cuatro pixeles. g2d.setPaint(new GradientPaint( x+400, y+70, Color.RED, x+435, y+85,Color.ORANGE , true )); g2d.fill(new RoundRectangle2D.Double(x+400, y+70, ANCHO, ALTO, 20, 20)); g2d.drawString( " Dibujo de RECTANGULO REDONDEADO 2D " , x+470, 115 ); /********************* Ellipse sin Relleno. **********************/ // Dibujando una Elipse de Color Azul y con un grosor de cinco pixeles. g2d.setPaint(Color.BLUE); g2d.setStroke(new BasicStroke(5.0f)); Programación Grafica en JAVA2D 4 Curso de Programación Programación Gráfica g2d.draw(new Ellipse2D.Double(x, y+140, ANCHO, ALTO-10)); g2d.drawString( " Dibujo de ELIPSE 2D " , 70, 185 ); /********************* Ellipse con Relleno. **********************/ //Dibujando una Elipse de Color Degradado y con un grosor de cinco //pixeles. g2d.setPaint(new GradientPaint( x+400, y+140, Color.MAGENTA, x+400, y+175,Color.CYAN, true )); g2d.fill(new Ellipse2D.Double(x+400, y+140, ANCHO, ALTO-10)); g2d.drawString( " Dibujo de ELIPSE 2D " , x+470, y+155 ); /****************** Arcos sin Rellenos. *************************/ // Dibujando una Elipse de Color Verde y con un grosor de seis pixeles. // Este Arco tiene la particularidad que es cerrado por tal motivo parecera //que le hace falta // un Pedazo al Pastel completo. g2d.setPaint(Color.GREEN); g2d.setStroke(new BasicStroke(6.0f)); g2d.draw(new Arc2D.Double(x, y+210, ANCHO,ALTO+15, 45, 270, Arc2D.PIE )); g2d.setPaint(Color.DARK_GRAY); g2d.drawString( " Dibujo de ARCO 2D - PASTEL " , 70, 265 ); /****************** Arcos con Rellenos. *************************/ // Dibujando una Elipse de Color Verde y con un grosor de seis pixeles. // Este Arco tiene la particularidad que es cerrado por tal motivo parecera //que le hace falta Programación Grafica en JAVA2D 5 Curso de Programación Programación Gráfica // un Pedazo al Pastel completo. g2d.setPaint(new GradientPaint( x+400, y+210, Color.BLUE , x+400, y+250,Color.LIGHT_GRAY , true )); g2d.setStroke(new BasicStroke(6.0f)); //g2d.fill(new Arc2D.Double(x+400, y+210, ANCHO,ALTO+15, 45, 270, Arc2D.PIE )); //g2d.setPaint(Color.DARK_GRAY); g2d.drawString( " Dibujo de ARCO 2D - PASTEL " , x+470, 265 ); //Para los arreglos en JAVA2D int polx[]={150,130,100,130,150,170,200,170,150}; int poly[]={100,130,150,170,200,170,150,130,100}, i=0; //En este caso solo estoy moviendo la coordenada en y porque me queda //arriba for(i=0;i<9;i++){ poly[i]=poly[i]+230; } //Se tiene que definir la direccion del dibujo GeneralPath pol = new GeneralPath(); //Aqui trabajamos con manejo de coordenada en referencia al origen //Consultarse al libro de programacion de la UNI, ahí esta la referencia pol.moveTo(polx[0], poly[0]); //Ahora pasar los puntos del poligono al objeto for (i=1;i<9;i++){ pol.lineTo(polx[i], poly[i]); }//Fin del Recorrido For pol.closePath(); //Cerrando el Objeto de Dibujo //Relleno con Degradado g2d.setPaint(new GradientPaint( 500, 100, Color.YELLOW 150,Color.LIGHT_GRAY , true )); //Dibujar poligono g2d.fill(pol); //Sin relleno, solo el borde de color, generando el borde g2d.setPaint(new GradientPaint( 500, 100, Color.BLUE 150,Color.GREEN , true )); //Dibujar poligono g2d.draw(pol); Programación Grafica en JAVA2D , 530, , 530, 6 Curso de Programación Programación Gráfica //Dibujo de Línea, solo debe establecerse con Draw g2d.setStroke(new BasicStroke(10.0f)); //Grosor de 10 pixeles g2d.draw(new Line2D.Double( 30, 520, 250, 520 )); } // fin del método paint // ejecutar la aplicación public static void main( String args[] ) { Grafica2D aplicacion = new Grafica2D(); aplicacion.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE ); } } // fin de la clase Figuras Como se puede observar paso a poso usted puede definir lo que desea realizar como primitivo grafico, existe mejores posibilidad en Java2D para la manipulación de los primitivos graficos. Programación Grafica en JAVA2D 7 Curso de Programación Programación Gráfica Tareas a Realizar: 1.- Buscar el programa de Logo de la UNI, el cual ya esta diseñado en clases anteriores, llevar este a Java2D y aplique lo siguiente: a.- Defina el área de dibujo. b.- Defina que tipo de atributos aplicara, si es con relleno o sin relleno. c.- Utilizar graficación en Java2D. d.- Mostrar los pasos que realizo para hacer posible la graficación, ahora moviendo los puntos a doscientos coordenadas en X. 2.- Buscar el programa del ambiente de la UNI, es decir el quedo propuesto, tal como el edificio nuevo, las canchas de baseball, football, etc. Realice los siguientes pasos para mostrar la grafica en Java2D: a.- Defina el área de dibujo. b.- Defina que tipo de atributos aplicara, si es con relleno o sin relleno. c.- Utilizar graficación en Java2D. d.- Mostrar los pasos que realizo para hacer posible la graficación, ahora moviendo los puntos a doscientos coordenadas en X. Programación Grafica en JAVA2D 8 Curso de Programación Programación Gráfica Toda la Bibliografía utilizada aquí es: Titulo: Como Programar en Java. Autor Deitel & Deitel. Edicion: Quinta Edicion. ISBN: 970-26-0518-0 Curso de Maestria de Redes de Computadoras: Msc. José Abelardo Sanchez (Conferencia #9) Programas Diseñados por Giovanni Sáenz. Programación Grafica en JAVA2D Información de los Capitulos JAVA2D. Capitulo XII y XIII. Dibujo y manejo de Conceptos. Aplicación Diseñada 9