Articulo de referencia

Java 2D

Java 2D es una API para dibujar gráficos bidimensionales usando el lenguaje de programación Java . [ 1 ] Cada operación de dibujo de Java 2D puede tratarse en última instancia c...

Java 2D es una API para dibujar gráficos bidimensionales usando el lenguaje de programación Java . [ 1 ] Cada operación de dibujo de Java 2D puede tratarse en última instancia como rellenar una forma usando una pintura y componer el resultado en la pantalla . Java 2D es un conjunto de clases para gráficos e imágenes 2D avanzados. Engloba arte lineal, texto e imágenes en un único modelo integral. La API proporciona un amplio soporte para la composición de imágenes e imágenes con canal alfa, un conjunto de clases para proporcionar una definición y conversión precisas del espacio de color, y un rico conjunto de operadores de imágenes orientados a la visualización.

Organización

La API de Java 2D y su documentación están disponibles para su descarga como parte de JDK 6. Las clases de la API de Java 2D están organizadas en los siguientes paquetes en JDK 6:

  • java.awtEl paquete principal para el Java Abstract Window Toolkit .
  • java.awt.geomLa biblioteca estándar de Java de figuras geométricas bidimensionales como líneas, elipses y cuadriláteros.
  • java.awt.fontLa biblioteca para manipular glifos en Java.
  • java.awt.colorLa biblioteca que trata sobre las muchas formas diferentes en que se puede representar el color.
  • java.awt.imageLa biblioteca para manipular imágenes gráficas.
  • java.awt.printLa biblioteca de herramientas para escribir en papel.

Conceptos básicos

Estos objetos son una parte necesaria de cualquier operación de dibujo 2D en Java.

Formas

En Java 2D, una forma es un límite que define un interior y un exterior. Los píxeles dentro de la forma se ven afectados por la operación de dibujo, mientras que los que están fuera no.

Intentar rellenar un segmento de línea recta no afectará a ningún píxel, ya que dicha forma no contiene píxeles. En su lugar, se debe utilizar un rectángulo delgado para que la forma contenga algunos píxeles.

Pinturas

Una pintura genera los colores que se usarán para cada píxel de la operación de relleno. La pintura más simple es java.awt.Colorla que genera el mismo color para todos los píxeles. Las pinturas más complejas pueden producir degradados, imágenes o cualquier combinación de colores. Rellenar una forma circular con el color amarillo da como resultado un círculo amarillo sólido, mientras que rellenar la misma forma circular con una pintura que genera una imagen produce un recorte circular de la imagen.

Materiales compuestos

Durante cualquier operación de dibujo, existe un origen (los píxeles generados por la pintura) y un destino (los píxeles que ya están en pantalla). Normalmente, los píxeles de origen simplemente sobrescriben los de destino, pero la composición permite modificar este comportamiento.

La composición, a partir de los píxeles de origen y destino, produce el resultado final que se muestra en pantalla. La composición más común es java.awt.AlphaComposite, que puede tratar los píxeles dibujados como parcialmente transparentes, de modo que los píxeles de destino se vean hasta cierto punto.

Relleno

Para rellenar una forma, el primer paso es identificar qué píxeles se encuentran dentro de ella. Estos píxeles se verán afectados por la operación de relleno. Los píxeles que se encuentran parcialmente dentro y parcialmente fuera de la forma pueden verse afectados en menor medida si el suavizado de bordes está activado.

A continuación, se le pide al programa que genere un color para cada uno de los píxeles que se van a pintar. En el caso habitual de un relleno de color sólido, cada píxel tendrá el mismo color.

La composición toma los píxeles generados por la pintura y los combina con los píxeles que ya están en la pantalla para producir el resultado final.

Objetos avanzados

Estos objetos pueden considerarse como objetos que cumplen sus funciones en función de los objetos más simples descritos anteriormente.

Transformar

Cada operación 2D de Java está sujeta a una transformación , de modo que las formas pueden trasladarse, rotarse, deformarse y escalarse mientras se dibujan. La transformación activa suele ser la transformación identidad , que no tiene ningún efecto.

El proceso de relleno mediante una transformación puede considerarse simplemente como la creación de una nueva forma transformada y, a continuación, el relleno de esa forma.

Ataque

Además de la operación de relleno , Java 2D ofrece una operación de dibujo . Mientras que la operación de relleno dibuja el interior de una forma, la de dibujo dibuja su contorno. El contorno puede ser tan simple como una línea fina o tan complejo como una línea discontinua con bordes redondeados.

El objeto responsable de generar el contorno es el trazo . A partir de una forma dada, el trazo produce una nueva forma que representa su contorno. Por ejemplo, un segmento de línea infinitamente delgado (sin interior) podría transformarse en un rectángulo de un píxel de ancho.

Por lo tanto, una operación de dibujo puede describirse como la creación de un nuevo objeto con contorno y el posterior relleno de dicho objeto.

Técnicamente hablando, el trazo solo debe aceptar una forma de entrada y producir una nueva. La implementación de trazo que viene con Java 2D implementa las reglas de contorno descritas anteriormente, pero un trazo personalizado podría producir cualquier forma que deseara.

Optimizaciones

Conceptualmente, dibujar una línea negra recta en Java 2D se puede pensar como crear un segmento de línea, transformarlo según la transformación actual, trazarlo para crear un rectángulo delgado, consultar esta forma para calcular los píxeles afectados, generar los píxeles usando java.awt.Color.BLACKy luego componer los resultados en la pantalla.

Sin embargo, realizar toda esta secuencia de pasos para cada operación de dibujo sería muy ineficiente. Por lo tanto, Java 2D optimiza las operaciones de dibujo comunes para que muchos de estos pasos se puedan omitir. Si la pintura es un color sólido simple, por ejemplo, no es necesario indicarle que genere una lista de colores para pintar. Del mismo modo, si se utiliza la composición totalmente opaca predeterminada, solicitarle que realice la operación de composición es innecesario y supondría un desperdicio de recursos.

Java 2D realiza la mínima cantidad de trabajo necesaria para que parezca que realiza todos estos pasos en cada operación, manteniendo así una gran flexibilidad y un alto rendimiento.

Destino

Para simplificar, los ejemplos textuales de este artículo asumen que la pantalla es el dispositivo de destino. Sin embargo, el destino puede ser cualquier cosa, como una impresora, una imagen en memoria o incluso un objeto que acepte comandos gráficos 2D de Java y los convierta en archivos de imagen vectorial .

Interoperabilidad Java2D / OpenGL

Desde Java SE 6 , Java2D y OpenGL se han vuelto interoperables, lo que permite, por ejemplo, dibujar gráficos 3D animados en lugar de iconos en un botón (ver JOGL ).

Véase también

Referencias

  1. "Lección: Descripción general de los conceptos de la API Java 2D (Tutoriales de Java™ > Gráficos 2D)" . docs.oracle.com . Consultado el 3 de octubre de 2025 .

.https://docs.oracle.com/javase/8/docs/technotes/guides/2d/

  • Página de inicio de Java 2D en Oracle
  • Tutorial de Java 2D en Oracle
Obtenido de " https://en.wikipedia.org/w/index.php?title=Java_2D&oldid=1315377764 "