CS488 - Introduction to Computer Graphics - Lecture 7

Affine Transformations in Practice

Another Take on Affine Transformations

`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?

If you are thinking about transformations as a group, this is something like the generators of the group.


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.

  1. Translate the axis of rotation so that it passes through the origin.
  2. Rotate the axis of rotation to coincide with the z-axis.
  3. Rotate by the specified angle.
  4. Undo the axis rotation.
  5. Undo the translation.

Notice the structure, Tinv S T, which occurs over and over again.

Specific Transformations You should Know

Transforming a the Coordinates of a Point

Inverse of transforming a frame

  1. P = F p
  2. p' = T p
  3. P = F' p' = F' T p = F' T F^-1 P
  4. Therefore, F' T F^-1 = I, and

Transforming a Frame

Inverse of transforming a point

  1. F' = S F
  2. P = F' p' = S F p'
  3. Therefore F' = S F, and

Rigid Transformations

Four transformations - identity, translation, rotation, reflection - have a special property

All rigid transformations can be constructed from them.


Add a vector to a point, Ta

  1. P' = P + a = Ta P
  2. P' - P = TaP - P = a
  3. Dot with i

What is the inverse?

What matrix transforms the frame?

What is the effect of Ta on a vector?


Reflect in a plane, Fab

For example, choose the yz plane. Then

  1. Px' = -Px; Py' = Py; Pz'=Pz
  2. P' = Fjk P => P' - P = Fjk P - P
  3. P' - P = -2 px i = Fjk P - P
  4. Dot with i
    1. -2Px = Fxx Px + Fxy Py + Fxz Pz + Fxo - Px
    2. Four equations
      1. Fxx = -1
      2. Fxy = 0
      3. Fxz = 0
      4. Fxo = 0
    3. etc

What is the inverse?

What matrix transforms the frame?

What is the effect of Fab on a vector?


Return to: