# Package java.awt.geom

Provides the Java 2D classes for defining and performing operations on objects related to two-dimensional geometry.

See: Description

- Interface Summary
  Interface | Description
  --- | ---
  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.

- Class Summary
  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.
  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.
  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.
  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.

- Exception Summary
  Exception | Description
  --- | ---
  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.
  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.

## Package java.awt.geom Description

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

Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2015, Oracle and/or its affiliates. All rights reserved.