From a slogan to an address
In the last guide you earned the right to say something that used to sound like mysticism: parallel lines really do meet, at a single extra point at infinity, one for each direction. We glued a whole line at infinity onto the ordinary plane and got the projective plane, a world with no exceptions — every two lines meet, full stop. That was a story about what exists. This guide is about how to write it down so you can actually calculate. The tool is the homogeneous coordinate, and it is gloriously simple.
Here is the whole trick in one breath. To name a point of the plane you usually give two numbers, like (3, 4) on the Cartesian plane. Homogeneous coordinates use three numbers, written with colons, like [3 : 4 : 1] — and the rule is that scaling all three by the same nonzero factor names the same point. So [3 : 4 : 1] and [6 : 8 : 2] and [30 : 40 : 10] are not three points; they are three spellings of one point. The point is the ratio, not the triple.
The recipe both ways
To go from an ordinary point to its homogeneous name, just stick a 1 on the end: the point (x, y) becomes [x : y : 1]. To come back, you divide the first two coordinates by the third: [x : y : z] with z not zero is the ordinary point (x/z, y/z). Check it against the scaling rule and it all fits — [6 : 8 : 2] divides down to (6/2, 8/2) = (3, 4), the same point as [3 : 4 : 1]. The third coordinate is doing the bookkeeping of 'how much have we scaled', and dividing it out recovers the honest location.
ordinary -> homogeneous: (x, y) becomes [x : y : 1] homogeneous -> ordinary: [x : y : z] with z != 0 becomes (x/z, y/z) scaling rule (the heart): [x : y : z] = [k*x : k*y : k*z] for any k != 0 the point at infinity: [x : y : 0] (no ordinary location; a direction) forbidden: [0 : 0 : 0] (names nothing)
Now the payoff that the whole construction was built for. What happens when z = 0? You cannot divide by zero, so [x : y : 0] has no ordinary location — it is not a point of the old plane at all. These are exactly the extra points, the points at infinity. And notice [x : y : 0] still obeys the scaling rule, so it only records the ratio x : y — that is, a direction, the slope you head off in. The triple [1 : 2 : 0] is 'the point infinitely far away in the direction (1, 2)'. The slogan from last guide has finally become a tidy address.
Lines get three coordinates too
Here the picture gets beautifully symmetric. On the ordinary plane a line has an equation like a*x + b*y + c = 0. Substitute x = X/Z and y = Y/Z and multiply through by Z, and it becomes a*X + b*Y + c*Z = 0 — clean, with no fractions. So a line, too, is captured by three numbers [a : b : c], scaling-invariant for the same reason (multiply the equation by 2 and it describes the same line). A point is a triple [X : Y : Z]; a line is a triple [a : b : c]; and the point lies on the line exactly when a*X + b*Y + c*Z = 0. One symmetric condition governs all of incidence.
That single equation is just the dot product of two triples set to zero — if you read [X : Y : Z] and [a : b : c] as the vectors (X, Y, Z) and (a, b, c), then 'point on line' means exactly (X, Y, Z) . (a, b, c) = 0. Suddenly the whole machinery of vectors from the earlier rung is available: to find the line through two points, or the meeting point of two lines, you take a cross product. The point where lines [a : b : c] and [d : e : f] meet is just (a, b, c) x (d, e, f), and the line through two points is found the same way. Geometry has become arithmetic you already know.
Watching two parallels meet, in numbers
Let us cash in. Take two genuinely parallel lines: y = 1 and y = 2, both horizontal, never meeting in the ordinary plane. We want to see them collide at infinity, with actual numbers — not as a figure of speech. First put each in homogeneous form, then solve. Follow the steps; each one is a line you could do by hand.
- Write each line as an equation equal to zero. The line y = 1 is y - 1 = 0; the line y = 2 is y - 2 = 0.
- Homogenize: replace x by X/Z and y by Y/Z, then clear the Z. The first becomes Y - Z = 0, with line-coordinates [0 : 1 : -1]; the second becomes Y - 2Z = 0, with line-coordinates [0 : 1 : -2].
- A meeting point [X : Y : Z] must satisfy both equations at once. Subtract them: (Y - Z) - (Y - 2Z) = 0 gives Z = 0. So the meeting point has Z = 0 — it is a point at infinity, exactly as promised.
- With Z = 0, the first equation Y - Z = 0 forces Y = 0 as well, while X is free. So the meeting point is [X : 0 : 0] = [1 : 0 : 0]: the point at infinity in the horizontal direction (1, 0). Both horizontal lines pass through it.
There it is, in cold arithmetic: two parallel lines meet at [1 : 0 : 0], the single point at infinity shared by every horizontal line. The promise of the last guide is now a computation you can repeat for any pair of parallels. And this is exactly why we say a point at infinity is a direction: [1 : 0 : 0] belongs to all the horizontal lines and to no others. Lines that are parallel share a direction, so they share their one point at infinity; lines that cross already meet at an ordinary point and head off to different points at infinity.
Why the extra coordinate is worth it
Step back and ask what we bought with that third number. Three things, each a real payoff. First, no exceptions: 'two points determine a line' and 'two lines determine a point' are now both true with zero special cases, because parallel lines genuinely have a meeting point in this system. Symmetry like that is not just elegant — it is the seed of the principle of duality you will meet in the very next guide, where points and lines trade places.
Second, everything is linear. Points and lines are triples; incidence is a dot product; joins and meets are cross products. Hard projective questions collapse into the linear algebra you already trust, which is precisely why computer graphics and computer vision run on homogeneous coordinates under the hood. Third, and most quietly important, projective transformations — the maps that will later carry one conic to another — become simple 3-by-3 matrices acting on these triples, far cleaner than the awkward formulas you would need on the plain plane.