An * ellipse * is an area that is the outline and interior of an ellipse. Circles are special cases of ellipses.

An* elliptical arc* is a path consisting of all or a portion of the outline of an ellipse. * Circular arcs* are special cases of elliptical arcs.

An ellipse is specified in a manner that is easy to transform, and treats all ellipses on an equal basis. An ellipse is specified by its center point and two vectors that describe a bounding parallelogram of the ellipse. The bounding parallelogram is made by adding and subtracting the vectors from the center point in the following manner:

The special case of an ellipse with its axes aligned with the coordinate axes can be obtained by setting * dx* * 2* and * dy* * 1* to 0, or setting * dx* * 1 * and * dy* * 2* to 0.

Note that several different parallelograms specify the same ellipse, as shown here:

One parallelogram is bound to be a rectangle--the vectors will be perpendicular and correspond to the semi-axes of the ellipse.

The following classes and functions are used to represent and operate on ellipses and elliptical arcs.

ellipse [Protocol Class]

Summary: The protocol class that corresponds to a mathematical ellipse. This is a subclass of area . If you want to create a new class that behaves like an ellipse, it should be a subclass of ellipse . Subclasses of ellipse must obey the ellipse protocol.

ellipsep [Function]

Summary: Returns t if * object* is an ellipse; otherwise, it returns nil .

Summary: An instantiable class that implements an ellipse. This is a subclass of ellipse . This is the class that make-ellipse and make-ellipse* instantiate. Members of this class are immutable.

elliptical-arc [Protocol Class]

Summary: The protocol class that corresponds to a mathematical elliptical arc. This is a subclass of path . If you want to create a new class that behaves like an elliptical arc, it should be a subclass of elliptical-arc . Subclasses of elliptical-arc must obey the elliptical arc protocol.

elliptical-arc-p [Function]

Summary: Returns t if * object* is an elliptical arc; otherwise, it returns nil .

Summary: An instantiable class that implements an elliptical arc. This is a subclass of elliptical-arc . This is the class that make-elliptical-arc and make-elliptical-arc* instantiate. Members of this class are immutable.

Common Lisp Interface Manager 2.0 User Guide - 14 Dec 2001