Ir al contenido
Menú principal
Menú principal
mover a la barra lateral
ocultar
Navegación
Página principal
Cambios recientes
Página aleatoria
Ayuda sobre MediaWiki
Buscar
Buscar
español
Apariencia
Crear una cuenta
Acceder
Herramientas personales
No has accedido
Discusión
Contribuciones
Crear una cuenta
Acceder
Edición de «
Java 2D
»
Página
Discusión
español
Leer
Editar
Editar código
Ver historial
Herramientas
Herramientas
mover a la barra lateral
ocultar
Acciones
Leer
Editar
Editar código
Ver historial
General
Lo que enlaza aquí
Cambios relacionados
Información de la página
Apariencia
mover a la barra lateral
ocultar
Advertencia:
no has iniciado sesión. Tu dirección IP se hará pública si haces cualquier edición. Si
inicias sesión
o
creas una cuenta
, tus ediciones se atribuirán a tu nombre de usuario, además de otros beneficios.
Comprobación antispam. ¡
No
rellenes esto!
En computación, '''Java 2D''' es un [[Interfaz de programación de aplicaciones|API]] para dibujar gráficos en dos dimensiones usando el [[Java (lenguaje de programación)|lenguaje de programación Java]]. Cada operación de dibujo Java 2D puede tratarse como ''rellenar'' una ''forma'' usando un ''pincel'' y ''componiendo'' el resultado en la pantalla. == Conceptos básicos == Estos objetos son parte necesaria de cada operación de dibujo Java 2D. === Formas === Una ''forma'' en Java 2D es un límite infinitamente delgado el cual define un interior y un exterior. Los [[Píxel]]es internos de la forma están afectados por la operación de dibujo, los que están fuera no. Intentar rellenar un segmento de línea recto extremadamente fino resultará en que no habrá píxeles afectados, por lo tanto una forma no contiene píxeles. En su lugar, un rectángulo fino se debe usar para que la forma contenga algunos píxeles. === Pinceles === Un ''pincel'' genera los [[color]]es que serán usados para cada píxel de la operación de relleno. El pincel más simple es '''{{Javadoc:SE|package=java.awt|java/awt|Color}}''', el cual genera el mismo color para todos los píxeles. Pinceles más complicados pueden producir gradientes, [[Imagen|imágenes]], o cualquier combinación de colores. Rellenar una forma circular usando el color amarillo resulta en un círculo sólido amarillo, mientras rellenar la misma forma circular usando un pincel que genera una imagen produce un recorte circular de la imagen. === Compuestos === Durante cualquier operación de dibujo, hay una ''fuente'' (los píxeles que son producidos por el pincel) y un ''destino'' (los píxeles ya en la pantalla). Normalmente, los píxeles fuente simplemente sobrescriben los píxeles de destino, pero el ''compuesto'' permite modificar este comportamiento. El compuesto, dados los píxeles fuente y destino, produce el resultado final que por último aparece en la pantalla. El compuesto más común es '''{{Javadoc:SE|package=java.awt|java/awt|AlphaComposite}}''', el cual trata los píxeles que están siendo dibujados como parcialmente transparentes, para que los píxeles destino se muestren en algún grado. === Rellenado === Para ''rellenar'' una forma, el primer paso es identificar que píxeles caen dentro de la forma. Estos píxeles serán afectados por la operación de relleno. Los píxeles que están parcialmente dentro y parcialmente fuera de la forma pueden ser afectados en menor grado si está activado el [[Anti-aliasing]]. El pincel es requerido para generar un color de cada uno de los píxeles que se van a pintar. En el caso común del relleno de un color sólido, cada píxel será asignado al mismo color. El compuesto toma los píxeles generados por el pincel y los combina con los píxeles que ya están en la pantalla para producir el resultado final. == Objetos Avanzados == Estos objetos pueden ser entendidos en relación con los objetos más simples escritos antes. === Transformación === Cada operación Java 2D es sujeto a transformación, para que las formas pueden ser traducidas, rotadas, y escaladas cuando son dibujadas. La transformación activa es a menudo la '''transformación identidad''', la cual no hace nada. Rellenar usando una transformación puede verse como simplemente crear una nueva forma transformada y entonces rellenar esa forma. === Movimiento === Además de la operación ''rellenar'', Java 2D suministra una operación ''dibujar''. Mientras rellenar dibuja el interior de una forma, dibujar dibuja su contorno. El contorno puede ser tan simple como una línea fina, o tan complicado como una línea con bordes redondeados. El objeto responsable de generar el exterior es el ''movimiento''. Dada una forma de entrada, el movimiento produce una nueva forma que representa su exterior. Por ejemplo, un segmento de línea infinitamente fino (sin interior) no puede ser movido a un rectángulo de ancho de un píxel. Una operación dibujar puede por lo tanto ser descrito como crear un nuevo, objeto movido y entonces rellenar ese objeto. Técnicamente hablando, el movimiento es sólo requerido para aceptar una forma de entrada y produce una nueva forma. La implementación de movimiento suministrada con Java 2D implementa las reglas de contorno descritas anteriormente, pero un contorno personalizado podría producir cualquier forma deseada. == Optimizaciones == Conceptualmente, dibujando una línea negra en Java 2D puede pensarse como crear un segmento de línea, transformarlo de acuerdo a la transformación actual, moviéndolo para crear un rectángulo fino, consultando su forma para computar los píxeles que están siendo afectados, generando los píxeles que usan '''{{Javadoc:SE|package=java.awt|java/awt|Color|BLACK}}''', y entonces componiendo los resultados en la pantalla. Sin embargo, realizar esta secuencia completa de pasos para cada operación de dibujado sería muy ineficiente. Java 2D por lo tanto optimiza las operaciones de dibujado comunes para que muchos de esos pasos puedan saltarse. Si el pincel es de un color sólido simple, por ejemplo, no hay necesidad de ordenar que genere una lista de los colores que van a ser pintados. Asimismo, si el compuesto por defecto completamente opaco está en uso, actualmente pedir que realice la operación de composición es innecesario y resultaría en esfuerzo inútil. Java 2D realiza la mínima cantidad de trabajo necesario para hacer que ''parezca'' como si realizara todos los pasos para cada operación, por lo tanto conserva gran flexibilidad y alto rendimiento. == Destino == Por simplicidad, los ejemplos en este artículo han asumido que la ventana es el dispositivo destino. Sin embargo, el destino puede ser cualquier cosa, tal como una impresora, imagen de memoria, o incluso un objeto que acepte comandos gráficos Java 2D y los traduzca a ficheros de imagen de [[Gráficos vectoriales]].* == Interoperabilidad Java2D / OpenGL == Desde el build 51 hasta la nueva versión [[Java SE|Java SE 6]] del [[Java (lenguaje de programación)|lenguaje de programación Java]], Java2D y [[Opengl]] han llegado a ser interoperables, permitiendo por ejemplo dibujar gráficos 3D animados en lugar de iconos en un Botón (ver [[JOGL]]). == Enlaces externos == * [https://java.sun.com/j2se/1.5.0/docs/guide/2d/index.html Página Java 2D] en [[Sun Microsystems|Sun]]. * [http://www.lcc.uma.es/~galvez/Java2D.html Java a tope: Cómo tratar con Java figuras, imágenes y texto en dos dimensiones] ([[libro electrónico]] y gratuito) {{Control de autoridades}} [[Categoría:Bibliotecas gráficas]] [[Categoría:Interfaces de programación de aplicaciones de Java]]
Resumen:
Al guardar los cambios aceptas los
términos de uso
y liberas de forma irrevocable tu contribución conforme a los términos de las licencias
licencia CC BY-SA 4.0
y
GFDL
. Aceptas igualmente que un hipervínculo o URL es atribución suficiente conforme a la licencia Creative Commons.
Cancelar
Ayuda de edición
(se abre en una ventana nueva)
Buscar
Buscar
Edición de «
Java 2D
»
Añadir idiomas
Añadir tema