The classes in the java.awt.geom package define common graphics primitives, such as points, lines, curves, arcs, rectangles, and ellipses.
Arc2D | Ellipse2D | QuadCurve2D |
Area | GeneralPath | Rectangle2D |
CubicCurve2D | Line2D | RectangularShape |
Dimension2D | Point2D | RoundRectangle2D |
Shape
interfaceExcept for Point2D
and Dimension2D
,
each of the geometry classes (geometries) implements
the Shape
interface, which provides a common set of methods for
describing and inspecting two-dimensional geometric objects.
With these classes you can create virtually any geometric
shape and render it through Graphics2D
by calling the draw
method or the fill
method.
For example, the geometric shapes in the following ShapesDemo2D
applet are defined by using basic Java 2D geometries.
Example : ShapesDemo2D.java
.
The Rectangle2D
, RoundRectangle2D
,
Arc2D
, and Ellipse2D
primitives are all derived from
RectangularShape
, which defines methods for Shape
objects that can be described by a rectangular bounding box. The geometry of
a RectangularShape
can be extrapolated from a rectangle that completely
encloses the outline of the Shape
.
The QuadCurve2D
class allows you to create
quadratic parametric curve segments. A quadratic curve is defined by two endpoints
and one control point.
The CubicCurve2D
class allows you to create
cubic parametric curve segments. A cubic curve is defined by two endpoints and
two control points. The following figures demonstrate examples of quadratic
and cubic curves.
See Stroking and Filling Graphics Primitives to see implementations of cubic and quadratic curves.
The GeneralPath
class enables you to construct
an arbitrary shape by specifying a series of positions along the shape's boundary.
These positions can be connected by line segments, quadratic curves, or cubic
(Bézier) curves. The shape pictured below can be created with three line
segments and a cubic curve.
See Stroking and Filling Graphics Primitives to see the implementation of this shape.
With the Area
class you can perform boolean
operations, such as union, intersection, and subtraction, on any two Shape
objects. This technique, often referred to as constructive area geometry, enables
you to quickly create complex Shape
objects without having to describe
each line segment or curve.
How to draw and fill shapes is described in the next lesson, Displaying Graphics with Graphics2D.
Example : ShapesDemo2D.java
.