An (x, y) coordinate pair can be transformed to another coordinate system by scaling, rotation and translation. The first two can be implemented using 2 x 2 matrices to hold the coefficients:
If the point P is (a, b) and it is transformed to the point Q (a', b')
Translation can be included in this if the points P and Q are regarded as 3-vectors instead of 2-vectors, with the 3rd element being unity:
The coefficients u and v specify the translation.
So, the six elements (
p
,
q
,
r
,
s
,
u
, and
v
) of the 3 x 3 matrix contain all the transformation information. These elements are stored in a list in the graphics state slot
transform
.
Transforms can be combined by matrix multiplication to effect successions of translation, scaling and rotation operations.
Functions are provided in Graphics Ports which apply translation, scaling and rotation to a transform, combine transforms by pre- or post-multiplication, invert a transform, and so on.