Next Previous Up Top Contents Index

2.3 DUIM-Geometry Module

make-3-point-transform

Function

Summary

Returns a transform that takes points point-1 into point-1-image, point-2 into point-2-image and point-3 into point-3-image.

Signature

make-3-point-transform x1 y1 x2 y2 x3 y3 x1-image y1-image x2-image y2-image x3-image y3-image => transform
make-3-point-transform* point-1 point-2 point-3 point-1-image point-2-image point-3-image => transform

Arguments

The following arguments are specific to make-3-point-transform.

x1
An instance of type <real>.

y1
An instance of type <real>.

x2
An instance of type <real>.

y2
An instance of type <real>.

x3
An instance of type <real>.

y3
An instance of type <real>.

x1-image
An instance of type <real>.

y1-image
An instance of type <real>.

x2-image
An instance of type <real>.

y2-image
An instance of type <real>.

x3-image
An instance of type <real>.

y3-image
An instance of type <real>.

The following arguments are specific to make-3-point-transform*.

point-1
An instance of type <point>.

point-2
An instance of type <point>.

point-3
An instance of type <point>.

point-1-image
An instance of type <point>.

point-2-image
An instance of type <point>.

point-3-image
An instance of type <point>.

Values

transform
An instance of type <transform>.

Exceptions

If point-1, point-2 and point-3 are colinear, the <transform-underspecified> error is signalled. If point-1-image, point-2-image and point-3-image are colinear, the resulting transform will be singular (that is, will have no inverse) but this is not an error.

Library

duim-geometry

Module

duim-geometry

Description

Returns a transform that takes points point-1 into point-1-image, point-2 into point-2-image and point-3 into point-3-image. Three non-colinear points and their images under the transform are enough to specify any affine transformation.

The function make-3-point-transform* is identical to make-3-point-transform, except that it passes composite objects, rather than separate coordinates, in its arguments. You should be aware that using this function may lead to a loss of performance.


Functional Developer Library Reference: DUIM - 3 Dec 1998

Next Previous Up Top Contents Index