Page 36 Table of Contents Index Page 38
Chapters
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30
A, B, C, D, E



CHAPTER 5. AFFINE TRANSFORMATIONS

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.

make-scaling-transformation returns a transformation that multiplies the x-coordinate dis-
tance of every point from origin by scale-x and the y-coordinate distance of every point from
origin by scale-y. scale-x and scale-y must be real numbers. If origin is supplied it must be a
point; if not supplied it defaults to (0;0). origin-x and origin-y must be real numbers.

=> make-reflection-transformation point1 point2 [Function]
=> make-reflection-transformation* x1 y1 x2 y2 [Function]
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".

make-reflection-transformation returns a transformation that reflects every point through
the line passing through the points point1 and point2 (or through the positions (x1;y1) and
(x2;y2) in the case of the spread version).

=> make-transformation mxx mxy myx myy tx ty [Function]
Returns a general transformation whose effect is:

	 xt = mxx x + mxy y + tx
	 yt = myx x + myy y + ty
where x and y are the coordinates of a point before the transformation and xt and yt are the
coordinates of the corresponding point after.

All of the arguments to make-transformation must be real numbers.

=> make-3-point-transformation point-1 point-2 point-3 point-1-image point-2-image point-3-
image
[Function]
Returns a transformation that takes points point-1 into point-1-image, point-2 into point-2-
image
and point-3 into point-3-image. Three non-collinear points and their images under the
transformation are enough to specify any affine transformation.

If point-1, point-2 and point-3 are collinear, the transformation-underspecified error will be
signalled. If point-1-image, point-2-image and point-3-image are collinear, the resulting trans-
formation will be singular (that is, will have no inverse) but this is not an error.

=> make-3-point-transformation* x1 y1 x2 y2 x3 y3 x1-image y1-image x2-image y2-image x3-
image y3-image
[Function]
Returns a transformation that takes the points at the positions (x1,y1) into (x1-image,y1-image),
(x2,y2) into (x2-image,y2-image) and (x3,y3) into (x3-image,y3-image). Three non-collinear


Page 36 Table of Contents Index Page 38
Chapters
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30
A, B, C, D, E