next up previous
Next: m_hcoords Up: m_hcoords Previous: m_hcoords

1. Homogeneous coordinates for points in the plane

The ordinary system for naming points in the real plane is called Cartesian coordinates (after Descartes, who invented analytic geometry). In this system, each point of the plane has exactly one name, consisting of a pair of numbers. (Often a point is even thought of as being a pair of numbers, as when we write R$ ^ 2$ for the real plane.)

You know one other system for naming points in the real plane: polar coordinates. In polar coordinates, each point has many names of the form $ (r,\theta)$; for example, the ordinary point $ (-1,0)$ has the polar name $ (1,\pi)$ and also $ (1,3\pi)$; the origin is $ (0,\theta)$ for every $ \theta$.

In computer graphics it is often helpful to use homogeneous coordinates. With homogeneous coordinates, each point of the plane has many names, each one being a triple of numbers. You have already seen one example of homogeneous coordinates, although we didn't call it that: In using extended vectors for affine transformation, the ordinary name $ (3,2)$ became $ (3,2,1)$.

Let's put a subscript $ {}_h$ after a triple when it means the homogeneous coordinates of a point in the plane. That way it won't be confused with a triple meaning a point in R$ ^3$. The subscript doesn't do anything; it's just a reminder.

What are all the names in homogeneous coordinates of the point whose ordinary name is $ (3,2)$? They are simply the non-zero scalar multiples of the extended-vector name. Some examples of names for $ (3,2)$ are

$ (3,2,1)_h$, $ (30,20,10)_h$, $ (300,200,100)_h$, $ (0.3, 0.2, 0.1)_h$, $ (-3,-2,-1)_h$,

$ (12,8,4)_h$, and so on.

Problem. What is the ordinary name of $ (8,20,4)_h$?

Solution. First scale so the $ 4$ becomes $ 1$. Thus $ (8,20,4)_h$ describes the same point as $ (2,5,1)_h$, which is the point with ordinary name $ (2,5)$.



Because one point has many names in homogeneous coordinates, it is a good idea to distinguish between a name of a point and the point itself. Let's write $ pt$ for ``the point whose name is''. Thus in the solution to the last problem, we could have written $ pt(8,20,4)_h$ $ =$ $ pt(2,5,1)_h$ $ =$ $ (2,5)$. (It wouldn't really have made sense just to say the names themselves are equal, because they aren't. This notes will use $ pt$ when it's appropriate, but you don't have to.)

Problem. What is the ordinary name of $ (x,y,s)$ (assuming that $ s \neq 0$)?

Solution. $ pt(x,y,s)_h = pt(\frac x s, \frac y s,1)_h = (\frac
x s, \frac y s)$.




next up previous
Next: m_hcoords Up: m_hcoords Previous: m_hcoords
Kirby A. Baker 2002-01-23