An ellipse, like a rectangle, is fully defined by a location, a width, and a height. As with the other geometry classes, java.awt.geom.Ellipse2D is abstract. A concrete inner subclass, Ellipse2D.Float, stores its coordinates as floats:
public Ellipse2D.Float(float x, float y, float w, float h)
This constructor creates an Ellipse2D.Float using the specified location, width, and height.
Another inner subclass, Ellipse2D.Double, offers a corresponding constructor:
public Ellipse2D.Double(double x, double y, double w, double h)
Note that Ellipse2D is a descendent of RectangularShape. While this may not seem very intuitive, it does mean that Ellipse2D inherits all of Rectangular-Shape's methods. As with round rectangles, an ellipse's location (x and y) is outside the outline of the ellipse.
The 2D API includes java.awt.geom.Arc2D for drawing pieces of an ellipse. Arc2D defines three different kinds of arcs, as shown in Figure 3.18. These are represented by constants in the Arc2D class:
public static final int OPEN
This constant represents an open arc. This simply defines a curved line that is a portion of an ellipse's outline.
public static final int PIE
This constant represents an arc in the shape of a slice of pie. This outline is produced by drawing the curved arc as well as straight lines from the arc's endpoints to the center of the ellipse that defines the arc.
public static final int CHORD
In this arc type, a straight ...