"The inappropriate cannot be beautiful."
- Frank Lloyd Wright The Future of Architecture (1953)
Homogeneous Coordinates are Good
Here are some of the many advantages of using homogeneous coordinates:
Simpler formulas. With homogeneous coordinates,
all the transforms discussed become linear maps, and can be
represented by a single matrix. A set of points can be put through a
series of transformations more efficiently by premultiplying the
transform matrices and multiplying each point only by the final
product matrix.
Other things become simpler too. Consider the intersection of two
lines
This is the point
In homogeneous coordinates, however, the intersection point can be
represented as:
This is the cross product of the vectors (a,b,c) and
(r,s,t). It is cheaper to implement, as it
eliminates a division operation. If integer arithmetic is used, the
intersection point can be represented exactly.
Fewer special cases. The homogeneous
representation implicitly handles points at infinite distance. For
instance, when computing the intersection of two lines, we normally
need to check if they are parallel to avoid division by zero. With
homogeneous representation, this need is obviated, as the
representation can represent this case in the result. Care needs to
be taken when doing the perspective division to recover the final
point, but these checks apply only to the final step rather than each
intermediate transformation.
Unification & extension of concepts. All linear
and affine transformations are unified in the concept of the
projective transformation. The differences between circles, ellipses,
parabolas, and hyperbolas disappear---all become instances of the same
curve, nondegenerate conics.