2.5 General Geometric Objects in CLIM

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 *dx2* and *dy1* to 0, or setting *dx1 *and *dy2* to 0.

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

Figure 12. Ellipses Specified by Parallelograms

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.

- 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**.**ellipse**must obey the ellipse protocol.

- Arguments:
*object*

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

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

- Arguments:
*object*

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

**2.5.6.1**- Constructor Functions for Ellipses and Elliptical Arcs in CLIM**2.5.6.2**- Accessors for CLIM Elliptical Objects

CLIM 2.0 User's Guide - OCT 1998

Generated with Harlequin WebMaker