# Package java.awt.geom

package java.awt.geom
Provides the Java 2D classes for defining and performing operations on objects related to two-dimensional geometry. Some important features of the package include:

- classes for manipulating geometry, such as AffineTransform and the PathIterator interface which is implemented by all Shape objects.
- classes that implement the Shape interface, such as CubicCurve2D, Ellipse2D, Line2D, Rectangle2D, and GeneralShape.
- the Area class which provides mechanisms for add (union), subtract, intersect, and exclusiveOR operations on other Shape objects.

Since:
  1.2

- Related Packages
  Package
  Description
  java.awt
  Contains all of the classes for creating user interfaces and for painting graphics and images.
- Class
  Description
  AffineTransform
  The `AffineTransform` class represents a 2D affine transform that performs a linear mapping from 2D coordinates to other 2D coordinates that preserves the "straightness" and "parallelness" of lines.
  Arc2D
  `Arc2D` is the abstract superclass for all objects that store a 2D arc defined by a framing rectangle, start angle, angular extent (length of the arc), and a closure type (`OPEN`, `CHORD`, or `PIE`).
  Arc2D.Double
  This class defines an arc specified in `double` precision.
  Arc2D.Float
  This class defines an arc specified in `float` precision.
  Area
  An `Area` object stores and manipulates a resolution-independent description of an enclosed area of 2-dimensional space.
  CubicCurve2D
  The `CubicCurve2D` class defines a cubic parametric curve segment in `(x,y)` coordinate space.
  CubicCurve2D.Double
  A cubic parametric curve segment specified with `double` coordinates.
  CubicCurve2D.Float
  A cubic parametric curve segment specified with `float` coordinates.
  Dimension2D
  The `Dimension2D` class is to encapsulate a width and a height dimension.
  Ellipse2D
  The `Ellipse2D` class describes an ellipse that is defined by a framing rectangle.
  Ellipse2D.Double
  The `Double` class defines an ellipse specified in `double` precision.
  Ellipse2D.Float
  The `Float` class defines an ellipse specified in `float` precision.
  FlatteningPathIterator
  The `FlatteningPathIterator` class returns a flattened view of another `PathIterator` object.
  GeneralPath
  The `GeneralPath` class represents a geometric path constructed from straight lines, and quadratic and cubic (Bézier) curves.
  IllegalPathStateException
  The `IllegalPathStateException` represents an exception that is thrown if an operation is performed on a path that is in an illegal state with respect to the particular operation being performed, such as appending a path segment to a `GeneralPath` without an initial moveto.
  Line2D
  This `Line2D` represents a line segment in `(x,y)` coordinate space.
  Line2D.Double
  A line segment specified with double coordinates.
  Line2D.Float
  A line segment specified with float coordinates.
  NoninvertibleTransformException
  The `NoninvertibleTransformException` class represents an exception that is thrown if an operation is performed requiring the inverse of an `AffineTransform` object but the `AffineTransform` is in a non-invertible state.
  Path2D
  The `Path2D` class provides a simple, yet flexible shape which represents an arbitrary geometric path.
  Path2D.Double
  The `Double` class defines a geometric path with coordinates stored in double precision floating point.
  Path2D.Float
  The `Float` class defines a geometric path with coordinates stored in single precision floating point.
  PathIterator
  The `PathIterator` interface provides the mechanism for objects that implement the `Shape` interface to return the geometry of their boundary by allowing a caller to retrieve the path of that boundary a segment at a time.
  Point2D
  The `Point2D` class defines a point representing a location in `(x,y)` coordinate space.
  Point2D.Double
  The `Double` class defines a point specified in `double` precision.
  Point2D.Float
  The `Float` class defines a point specified in float precision.
  QuadCurve2D
  The `QuadCurve2D` class defines a quadratic parametric curve segment in `(x,y)` coordinate space.
  QuadCurve2D.Double
  A quadratic parametric curve segment specified with `double` coordinates.
  QuadCurve2D.Float
  A quadratic parametric curve segment specified with `float` coordinates.
  Rectangle2D
  The `Rectangle2D` class describes a rectangle defined by a location `(x,y)` and dimension `(w x h)`.
  Rectangle2D.Double
  The `Double` class defines a rectangle specified in double coordinates.
  Rectangle2D.Float
  The `Float` class defines a rectangle specified in float coordinates.
  RectangularShape
  `RectangularShape` is the base class for a number of `Shape` objects whose geometry is defined by a rectangular frame.
  RoundRectangle2D
  The `RoundRectangle2D` class defines a rectangle with rounded corners defined by a location `(x,y)`, a dimension `(w x h)`, and the width and height of an arc with which to round the corners.
  RoundRectangle2D.Double
  The `Double` class defines a rectangle with rounded corners all specified in `double` coordinates.
  RoundRectangle2D.Float
  The `Float` class defines a rectangle with rounded corners all specified in `float` coordinates.