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') P ⇒ Q or (a, b) ? (a', b') a' = pa + rb ,
b' = qa + sb . 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 ( ) of the 3 x 3 matrix
contain all the transformation information. These elements are
stored in a list in the graphics state slot 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.