3.5. Ellipses and Arcs

3.5.1. Ellipse2D

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.

3.5.2. Arc2D

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

Get Java 2D Graphics now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.