Homogeneous coordinates
From Wikipedia, the free encyclopedia
In mathematics, homogeneous coordinates, introduced by August Ferdinand Möbius in his 1827 work Der barycentrische Calcul[1], allow affine transformations to be easily represented by a matrix. Also they make calculations possible in projective space just as Cartesian coordinates do in Euclidean space. The homogeneous coordinates of a point of projective space of dimension n are usually written as (x : y : z : ... : w), a row vector of length n + 1, other than (0 : 0 : 0 : ... : 0). Two sets of coordinates that are proportional denote the same point of projective space: for any non-zero scalar c from the underlying field K, (cx : cy : cz : ... : cw) denotes the same point. Therefore this system of coordinates can be explained as follows: if the projective space is constructed from a vector space V of dimension n + 1, introduce coordinates in V by choosing a basis, and use these in P(V), the equivalence classes of proportional non-zero vectors in V.
Taking the example of projective space of dimension three, there will be homogeneous coordinates (x : y : z : w). The plane at infinity is usually identified with the set of points with w = 0. Away from this plane we can use (x/w, y/w, z/w) as an ordinary Cartesian system; therefore the affine space complementary to the plane at infinity is coordinatised in a familiar way, with a basis corresponding to (1 : 0 : 0 : 1), (0 : 1 : 0 : 1), (0 : 0 : 1 : 1).
If we try to intersect the two planes defined by equations x = w and x = 2w then we clearly will derive first w = 0 and then x = 0. That tells us that the intersection is contained in the plane at infinity, and consists of all points with coordinates (0 : y : z : 0). It is a line, and in fact the line joining (0 : 1 : 0 : 0) and (0 : 0 : 1 : 0). The line is given by the equation
- (0:y:z:0) = μ(1 − λ)(0:1:0:0) + μλ(0:0:1:0)
where μ is a scaling factor. The scaling factor can be adjusted to normalize the coordinates (0 : y : z : 0), thereby eliminating one of the two degrees of freedom. The result is a set of points with only one degree of freedom, as is expected for a line.
Contents |
[edit] Brackets versus parentheses
Consider projective 2-space: points in the projective plane are projections of points in 3-space ("3-D points"). Let the notation
- (x:y:z)
refer to one of these 3-D points. Let
- (u:v:w)
refer to another 3-D point. Then
On the other hand, let the notation
- [x:y:z]
refer to the projection of 3-D point (x : y : z) onto the projective plane. The point [x : y : z] can be considered to be equal to an equivalence class of 3-D points which belong to the 3-D line passing through the points (x : y : z) and (0 : 0 : 0). If
- [u:v:w]
is another projective point, then
Two 3-D points are equivalent if their projections onto the projective plane are equal:
Thus,
Remark: In some European countries (x:y:z) is customarily represented by (x,y,z); and [u:v:w] as [u,v,w].
[edit] Addition of homogeneous coordinates
This distinction between brackets and parentheses means that addition of points in homogeneous coordinates will be defined in two different ways, depending on whether the coordinates are enclosed with brackets or parentheses.
Consider once again the case of the projective plane. Addition of a pair of 2-D points is the same as for ordinary coordinates:
- (a:b) + (x:y) = (a + x:b + y).
On the other hand, addition of a pair of projected points can be defined thus:
- [a:b:c] + [x:y:z] = [za + xc:zb + yc:cz].
For projective 3-space, similar considerations apply. Addition of a pair of unprojected points is
- (a:b:c) + (x:y:z) = (a + x:b + y:c + z)
whereas addition of a pair of projected points is
- [a:b:c:d] + [x:y:z:w] = [wa + dx:wb + dy:wc + dz:dw].
[edit] Scalar multiplication of homogeneous coordinates
There are two kinds of scalar multiplication: one for unprojected points and another one for projected points.
Consider a scalar a and an unprojected point (x : y : z). Then
even though
- .
Now consider the scalar a and a projected point [x : y : z]. Then
- a[x:y:z] = [ax:ay:z]
but
[edit] Linear combinations of points described with homogeneous coordinates
Let there be a pair of points A and B in projective 3-space, whose homogeneous coordinates are
It is desired to find their linear combination where a and b are coefficients which can be adjusted at will, with the condition that , or (more exactly) that , to avoid degenerate points. There are three cases to consider:
- both points belong to affine 3-space,
- both points belong to the plane at infinity,
- one point is affine and the other one is at infinity.
The X, Y, and Z coordinates can be considered as numerators, whereas the W coordinate can be considered as a denominator. To add homogeneous coordinates it is necessary that the denominator be common. Otherwise it is necessary to rescale the coordinates until all the denominators are common. Homogeneous coordinates are equivalent up to any uniform rescaling.
[edit] Both points are affine
If both points are in affine 3-space, then and . Their linear combination is
-
- = [aWBXA + bWAXB:aWBYA + bWAYB:aWBZA + bWAZB:WAWB]
[edit] Both points are at infinity
If both points are on the plane at infinity, then WA = 0 and WB = 0. Their linear combination is
- a[XA:YA:ZA:WA] + b[XB:YB:ZB:WB] = [aXA:aYA:aZA:0] + [bXB:bYB:bZB:0]
-
-
-
-
-
- = [aXA + bXB:aYA + bYB:aZA + bZB:0].
-
-
-
-
[edit] One point is affine and the other at infinity
Let the first point be affine, so that . Then
- a[XA:YA:ZA:WA] + b[XB:YB:ZB:0]
-
- = a[0:0:0:0] + b[XB:YB:ZB:0],
-
- = [bXB:bYB:bZB:0],
which means that the point at infinity is "dominant".
[edit] General case
The calculation can also be carried over without distinguishing between cases, similarly to the addition of two points:
- a[XA:YA:ZA:WA] + b[XB:YB:ZB:WB]
-
- = [aWBXA + bWAXB:aWBYA + bWAYB:aWBZA + bWAZB:WAWB]
Starting from this, you can re-obtain the formulas for above cases.
In particular, applying this formula in the degenerate cases gives us that summing [0:0:0:0] with anything else produces [0:0:0:0] again.
[edit] Use in computer graphics
Homogeneous coordinates are ubiquitous in computer graphics because they solve the problem of representing a translation and projection as a matrix operation.
Homogeneous coordinates allow all affine transformations to be represented by a matrix operation. A translation in can be represented as
where column vectors are the homogeneous coordinates of the two points. All the linear transformations such as rotation and reflection about the origin can also be represented, by matrices of the form
Furthermore all projective transformations can be represented by other matrices. This representation simplifies calculation in computer graphics as all necessary transformations can be performed by matrix multiplications. As a result, a series of affine transformations can be combined simply by multiplying successive matrices together. This is at the heart of real-time graphics systems such as OpenGL and DirectX which can use modern graphics cards to perform operations with homogeneous coordinates.
[edit] References
http://www.unchainedgeometry.com/jbloom/pdf/homog-coords.pdf