Homogeneous coordinates are a way to represent points using one extra coordinate.

Instead of writing a 2D point as , we write it as where .

The actual point is recovered by dividing by :

So

all represent the same point in the plane.

Why this is useful

At first this looks pointless because we added an extra number just to divide by it later.

The reason homogeneous coordinates matter is that they let us treat translations the same way we treat other linear transformations: with matrix multiplication.

In ordinary 2D coordinates, rotation and scaling can be written as matrix multiplication, but translation cannot.

For example:

is not a linear transformation, so there is no matrix that does this by itself.

But in homogeneous coordinates, we can write:

This is the main idea: the extra coordinate lets translation become part of the matrix.

Standard form

Usually a 2D point is written in homogeneous coordinates as

and a 3D point is written as

Important interpretation of w

  • If , we usually think of it as a normal point
  • If , it represents a point at infinity or a direction

This is what makes homogeneous coordinates useful in Computer Graphics, Projective Geometry, and vision.

It separates:

  • actual locations, like
  • pure directions, like

This also explains why parallel lines can be thought of as meeting “at infinity” in projective geometry.

Intuition

Homogeneous coordinates are basically a trick that:

  • adds one extra dimension
  • makes more geometric operations look like plain matrix multiplication
  • treats points that differ by a nonzero scale factor as equivalent

So the real mental model is not “a point has three coordinates now”.

The better mental model is:

We are storing a point in a format that makes the algebra easier.

Connection to linear algebra

This is similar in spirit to how we sometimes rewrite a problem in a slightly bigger space so the structure becomes cleaner.

Homogeneous coordinates do that for geometry.

They let us package:

  • rotation
  • scaling
  • shear
  • translation

into one matrix framework.