Issuu on Google+

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


tolerancia