Skip to content
Part IA Michaelmas Term

Transformation Composition

Concatenation

Multiple transformations combine by multiplying their matrices:

Mcombined=MnMn1M2M1\mathbf{M}_{\text{combined}} = \mathbf{M}_n \cdot \mathbf{M}_{n-1} \cdots \mathbf{M}_2 \cdot \mathbf{M}_1

Transformations are applied right-to-left.

Standard Order: SRT

Scale → Rotate → Translate

Written as: M=TRS\mathbf{M} = \mathbf{T} \cdot \mathbf{R} \cdot \mathbf{S}

The rightmost matrix (S\mathbf{S}) is applied first.

Example: Shear then Scale

[xyw]=[m000m0001][1a0010001][xyw]=[mma00m0001][xyw]\begin{bmatrix} x'' \\ y'' \\ w'' \end{bmatrix} = \begin{bmatrix} m & 0 & 0 \\ 0 & m & 0 \\ 0 & 0 & 1 \end{bmatrix} \begin{bmatrix} 1 & a & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{bmatrix} \begin{bmatrix} x \\ y \\ w \end{bmatrix} = \begin{bmatrix} m & ma & 0 \\ 0 & m & 0 \\ 0 & 0 & 1 \end{bmatrix} \begin{bmatrix} x \\ y \\ w \end{bmatrix}

Non-Commutativity

Transformations generally do not commute.

Example: Scale by 2 along x, then rotate 45° \neq Rotate 45°, then scale by 2 along x.

Two objects showing different results from different transformation orders

Transformations About Arbitrary Points

To transform about point (xo,yo)(x_o, y_o):

  1. Translate (xo,yo)(x_o, y_o) to origin
  2. Apply transformation
  3. Translate back to (xo,yo)(x_o, y_o)

Scale about (xo,yo)(x_o, y_o): M=T(xo,yo)S(m)T(xo,yo)\mathbf{M} = \mathbf{T}(x_o, y_o) \cdot \mathbf{S}(m) \cdot \mathbf{T}(-x_o, -y_o)

Steps for scaling about an arbitrary point

Efficiency

Concatenate matrices once, then apply to all vertices:

  • One matrix multiplication per concatenated transform
  • More efficient than applying each matrix sequentially

Summary

  • Matrices multiply right-to-left
  • Standard order: Scale, Rotate, Translate (SRT)
  • Transformations are non-commutative
  • Arbitrary pivots require translate-transform-translate