Appendix D:

Graphics matrix operations:

3-D points are generally stored in four element vectors, defined as:
[X, Y, Z, W]
...where X, Y, and Z are the point 3-D coordinates, and W is the 'weight', and is used to normalise the result after an operation, multiplying each element by 1/W so that W ends equal to 1.

Points can be moved around by matric multiplication with 4X4 transformation matrices. Multiplying a vector with a matric produces a new vector, which is the transformed point. Standard transformation matrices are:

Identity (does not transform point):

    [ 1   0   0   0 ]
    [ 0   1   0   0 ]
    [ 0   0   1   0 ]
    [ 0   0   0   1 ]

Translate (move along X, Y, Z axes):

    [ 1   0   0   0 ]
    [ 0   1   0   0 ]
    [ 0   0   1   0 ]
    [ Tx  Ty  Tz  1 ]

Scale (translate to larger or smaller coordinates):

    [ Sx  0   0   0 ]
    [ 0   Sy  0   0 ]
    [ 0   0   Sz  0 ]
    [ 0   0   0   1 ]

Rotate (around X, Y, or Z axis by angle U):
    Axis X:            Axis Y:            Axix Z:

    [ 1   0   0   0 ]  [cosU 0 -sinU 0 ]  [cosU sinU 0   0 ]
    [ 0 cosU sinU 0 ]  [ 0   1   0   0 ] [-sinU cosU 0   0 ]
    [ 0-sinU cosU 0 ]  [sinU 0  cosU 0 ]  [ 0   0    1   0 ]
    [ 0   0   0   1 ]  [ 0   0   0   1 ]  [ 0   0    0   1 ]

Perspective (d is the distance of "eye" behind "screen"):

    [ 1   0   0   0 ]
    [ 0   1   0   0 ]
    [ 0   0   1   0 ]
    [ 0   0  1/d  0 ]

Transformation matrices can be combined by multiplying them together, so a single matrix can be use to shift, rotate, and scale a point in a single operation. Other 3-D operations using vectors are also frequently used, such as to determine intersection points or the reflection of light rays.


Previous Page
Table of Contents
Next Page