Chapter 3 The CLIM Drawing Environment

A **translation **is a transformation that preserves the length, angle, and orientation of all geometric entities.

A **rotation** is a transformation that preserves the length and angles of all geometric entities. Rotations also preserve one point and the distance of all entities from that point. You can think of that point as the "center of rotation"; it is the point around which everything rotates.

There is no single definition of a **scaling transformation.** Transformations that preserve all angles and multiply all lengths by the same factor (preserving the "shape" of all entities) are certainly scaling transformations. However, scaling is also used to refer to transformations that scale distances in the *x* direction by one amount and distances in the *y* direction by another amount.

A **reflection** is a transformation that preserves lengths and magnitudes of angles but changes the sign (or "handedness") of angles. If you think of the drawing plane on a transparent sheet of paper, a reflection is a transformation that "turns the paper over."

If we transform from one coordinate system to another, then from the second to a third coordinate system, we can regard the resulting transformation as a single transformation resulting from **composing** the two component transformations. It is an important and useful property of affine transformations that they are closed under composition.

Note that composition is not commutative; in general, the result of applying transformation A and then applying transformation B is not the same as applying B first, then A.

Any arbitrary transformation can be built up by composing a number of simpler transformations, but that same transformation can often be constructed by a different composition of different transformations.

Transforming a region applies a coordinate transformation to that region, thus moving its position on the drawing plane, rotating it, or scaling it. Note that this creates a new region, but it does not affect the region argument.

The user interface to transformations is the **:transformation** option to the drawing functions. Users can create transformations with constructors. See Subsection 3.5.1, "CLIM Transformation Constructors". The other operators documented in this section are used by CLIM itself, and are not often needed by users.

**3.5.1**- CLIM Transformation Constructors**3.5.2**- CLIM Transformation Protocol**3.5.3**- CLIM Transformation Predicates**3.5.4**- CLIM Transformation Functions**3.5.5**- Applying CLIM Transformations

CLIM 2.0 User's Guide - OCT 1998

Generated with Harlequin WebMaker