MAPaint Technical Report:
Coordinate Transformation |

We define a viewing plane by defining a new set of coordinate axes
such that the new z-axis is along the ``line-of-sight''. This axis
is fully determined by defining a single fixed point which is the
new coordinate origin. The actual view plane is then defined to
be perpendicular to this axis and is determined by
a scalar distance parameter along the new axis. In this way the
transformation between the original,
,
and
viewing coordinates,
,
is
determined by a 3D rotation and translation with the viewing plane
defined as a plane of constant *z*' = *d*. These parameters are dipicted
in figure 3.

A 3D rotation can be defined in terms of Eulerian
angles[3, page 107]
which are not consistently defined in the literature,
but for which we assume the usual
British definition[9, page 9],
where a rotation about an axis is *clockwise* in the
direction of the axis and the second rotation is about the new *y*-axis:

- 1.
- rotate by angle
(xsi) about the
*z*-axis - 2.
- rotate by angle
(eta) about the new
*y*-axis, - 3.
- rotate by angle
(zeta) about the new
*z*-axis.

The rotation matrix defined by these angle is most easily determined
as a product of three rotations:

(1) |

where in matrix notation

= | (2) | ||

= | (3) | ||

= | (4) |

Multiplying the individual matrices yields

A rigid body transformation can be described as a rotation followed by a translation. In our case we may wish to display the section with magnification and therefore the transformation from screen to object coordinates will also involve scaling. With this in mind we define the transform from object to viewing coordinates as

where

where

1998-06-05