Graphics Reference
In-Depth Information
7.3 Homogeneous Coordinates
Homogeneous coordinates surfaced in the early 19th century, when they were
independently proposed by Mobius (who also invented a one-sided curled
band, the Mobius strip), Feuerbach, Bobillier, and Plucker. Mobius named
them barycentric coordinates . They have also been called areal coordinates
because of their area-calculating properties.
Basically, homogeneous coordinates define a point in a plane using three
coordinates instead of two. Initially, Plucker located a homogeneous point
relative to the sides of a triangle, but later revised his notation to the one
employed in contemporary mathematics and computer graphics. This states
that for a point P with coordinates ( x , y ) there exists a homogeneous point
( x , y , t ) such that X = x/t and Y = y/t . For example, the point (3, 4) has
homogeneous coordinates (6, 8, 2), because 3 = 6 / 2and4=8 / 2. But the
homogeneous point (6, 8, 2) is not unique to (3, 4); (12, 16, 4), (15, 20, 5) and
(300, 400, 100) are all possible homogeneous coordinates for (3, 4).
The reason why this coordinate system is called 'homogeneous' is because
it is possible to transform functions such as f ( x , y ) into the form f ( x / t , y / t )
without disturbing the degree of the curve. To the non-mathematician this
may not seem anything to get excited about, but in the field of projective
geometry it is a very powerful concept.
For our purposes, we can imagine that a collection of homogeneous points
of the form ( x , y , t )existonan xy -plane where t is the z -coordinate, as
illustrated in Figure 7.4. The figure shows a triangle on the t = 1 plane,
and a similar triangle, much larger, on a more distant plane. Thus instead
of working in two dimensions, we can work on an arbitrary xy -plane in three
dimensions. The t -or z -coordinate of the plane is immaterial because the
x -and y -coordinates are eventually scaled by t . However, to keep things simple
it seems a good idea to choose t = 1. This means that the point ( x , y )has
homogeneous coordinates ( x , y , 1), making scaling unnecessary.
If we substitute 3D homogeneous coordinates for traditional 2D Cartesian
coordinates, we must attach a 1 to every ( x , y ) pair. When a point ( x , y ,1)
is transformed, it will emerge as ( x ,y , 1), and we discard the 1. This may
seem a futile exercise, but it resolves the problem of creating a translation
transformation.
Consider the following transformation on the homogeneous point ( x , y ,1):
x
y
1
abc
def
001
x
y
1
=
.
(7.19)
This expands to
x = ax + by + c
y = dx + ey + f
1 = 1
(7.20)
Search WWH ::




Custom Search