## Formas

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 inspecionar objetos geométricos bi-dimensionales.

Con estas clases podmeos 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 definidasusando 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.

Esta figuta ha sido reducida para que quepa en la página.
Pulsa sobre la imagen para verla en su tamaño natural.

### 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 no 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 subtracciones, sobre dos objetos Shape cualesquiera. Esta técnica, nos permite crear rápidamente objetos Shape complejos sin yener que describir cada línea de segmento o cada curva.

Ozito