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 * */
/** @[email protected] **/
// 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