Skip to main content

Homogeneous coordinates

Short answer

Homogeneous coordinates add a third coordinate h to (x,y) as (xh, yh, h), with x = xh/h, y = yh/h (typically h=1). This allows all 2D transformations to be expressed as 3×3 matrix multiplications, enabling concatenation and representing points at infinity (h=0).

What do you mean by homogeneous coordinates?

Homogeneous coordinates represent an n-dimensional point by n+1 coordinates. A 2D point (x, y) is written as (x_h, y_h, h) with h ≠ 0, where x = x_h/h and y = y_h/h. Usually h = 1, so (x, y) becomes (x, y, 1).

Why it is used:

  • Translation, rotation and scaling can all be written as one matrix multiplication (3×3 in 2D, 4×4 in 3D). Without it, translation needs matrix addition while the others need multiplication.
  • A sequence of transformations can be combined (concatenated) into one single matrix, which is faster.
  • Points at infinity can be represented with h = 0, which is needed in perspective projection.

Example: translation by (tx, ty) in homogeneous form

| x' |   | 1 0 tx | | x |
| y' | = | 0 1 ty | | y |
| 1  |   | 0 0 1  | | 1 |

✓ Answer checked by Claude Opus 5.5 (high effort)

All Computer Graphics chapter 3 questions →