On the view plane
On the device
For the device obviously
Write a general point in terms of its coordinates in two different orthonormal frames.
Notice that this is a vector equation. 0 = 0 in the fourth coordinate comes for free!
This is an ordinary linear algebraic equation.
There are two other equations like this one, produced by j' and k'.
See how nice it is to have an orthonormal frame!
/ \ / \ / \ | i.i' j.i' k.i' (O-O').i' | | x | | x' | | i.j' j.j' k.j' (O-O').j' | | y | = | y' | | i.k' j.k' k.k' (O-O').k' | | z | | z' | \ / \ / \ /
Points have the fourth coordinate 1, vectors 0.
Regardless of the coordinates points should stay points, vectors vectors.
Only the row ( 0, 0, 0, 1 ) makes it happen.
This method works fine when we know the frames in terms of each other - or in terms of another frame - but not when we want to derive the matrix from a geometrical manipulation.
`The longest journey starts with but a single step.' What does this mean?
Is there a small set of simple transformations from which all transformations can be constructed?
Translation is simple; rotation about a basis vector is simple. But rotation about an arbitrary axis is complex.
Construct rotation about an aribitrary axis from translation and rotation about a basis vector.
Transforming a the Coordinates of a Point
Transforming a Frame
These three transformations - translation, rotation, reflection - have a special property
All rigid transformations can be constructed from them.
Add a vector to a point
/ \ / \ / \ | 1 0 0 ax | | x | | x + ax | | 0 1 0 ay | | y | = | y + ay | | 0 0 1 az | | z | | z + az | | 0 0 0 1 | | 1 | | 1 | \ / \ / \ /
No effect on vector. Check for yourself.
To specify a rotation you need
Three basic rotations encompass all rotations
To specify a reflection you need
These three transformations - translation, rotation, reflection - have a special property
Other affine transformations don't have this property