Formas 2D
Las clases del paquete java.awt.geom definen gráficos primitivos comunes, como
puntos, líneas, curvas, arcos, rectángulos y elipses.
Clases en el paquete java.awt.geom
| Arc2D |
Ellipse2D |
QuadCurve2D |
| Area |
GeneralPath |
Rectangle2D |
| CubicCurve2D |
Line2D |
RectangularShape |
| Dimension2D |
Point2D |
RoundRectangle2D |
Excepto para Point2D y Dimension2D, cada una de las otras
clases geométricas implementa el interface Shape, que proporciona un conjunto
de métodos comunes para describir e inspeccionar objetos geométricos bi-dimensionales.
Con estas clases podemos crear de forma virtual cualquiere forma geométrica y dibujarla a través de
Graphics2D llamando al método draw o al método
fill. Por ejemplo, las formas geométricas del siguiente applet están definidas usando los
geométricos básicos de Java 2D.
Si tienes curiosidad, el código del programa está en ShapesDemo2D.java. La forma de dibujar y
rellenar formas se describe en la siguiente lección Mostrar
Gráficos con Graphics2D.
Formas Rectangulares
Los primitivos Rectangle2D, RoundRectangle2D,
Arc2D, y Ellipse2D descienden del
RectangularShape, que define métodos para objetos Shape que pueden
ser descritos por una caja rectángular. La geometría de un RectangularShape
puede ser extrapolada desde un rectángulo que encierra completamente el exterior de la
Shape.
QuadCurve2D y CubicCurve2D
La clase QuadCurve2D nos permite crear segmentos de curvas cuadráticos. Una
curva cuadrática está definida por dos puntos finales y un punto de control.
La clase CubicCurve2D nos permite crear segmentos de curvas cúbicos. Una curva
cúbica está definida por dos puntos finales y dos puntos de control. Las siguientes figuras
muestran ejemplos de curvas cuadráticas y cúbicas.
GeneralPath
La clase GeneralPath nos permite crear una curva arbitraria especificando una
serie de posiciones a lo largo de los límites de la forma. Estas posiciones pueden ser conectadas
por segmentos de línea, curvas cuadráticas o curvas cúbicas. La siguiente figura puede ser creada
con 3 segmentos de línea y una curva cúbica.
Areas
Con la clase Area podemos realizar operaciones boolenas, como uniones,
intersecciones y substracciones, sobre dos objetos Shape cualesquiera. Esta
técnica, nos permite crear rápidamente objetos Shape complejos sin tener que
describir cada línea de segmento o cada curva.