Homogeneous coordinates

Homogeneous coordinates

In mathematics, homogeneous coordinates, introduced by August Ferdinand Möbius in his 1827 work "Der barycentrische Calcul" [ [http://www-history.mcs.st-andrews.ac.uk/Biographies/Mobius.html Mobius biography ] ] , 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" = 2"w" 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) = mu (1 - lambda) (0:1:0:0) + mu lambda (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.

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: (x:y:z) = (u:v:w) Leftrightarrow x=u, ; y=v, ; ext{and} ; z=w.

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

: [x:y:z] = [u:v:w] Leftrightarrow exists alpha ; ext{s.t.} ; x = alpha u, ; y = alpha v, ; ext{and} ; z = alpha w.

Two 3-D points are equivalent if their projections onto the projective plane are equal:

: (x:y:z) equiv (u:v:w) Leftrightarrow exists alpha ; ext{s.t.} ; x = alpha u, ; y = alpha v, ; ext{and} ; z = alpha w.

Thus,

: (x:y:z) equiv (u:v:w) Leftrightarrow [x:y:z] = [u:v:w] .

Remark: In some European countries ("x":"y":"z") is customarily represented by ("x","y","z"); and ["u":"v":"w"] as ["u","v","w"] .

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] = [z a + x c : z b + y c : c z] .

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] = [w a + d x : w b + d y : w c + d z : d w] .

calar 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

: (x:y:z) equiv a (x:y:z)

even though

: (x:y:z) e a (x:y:z) .

Now consider the scalar "a" and a projected point ["x" : "y" : "z"] . Then

: a [x:y:z] = [a x : a y : z] ;

but

: [x:y:z] e a [x:y:z] .

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

: mathbf{A} : [X_A:Y_A:Z_A:W_A] , : mathbf{B} : [X_B:Y_B:Z_B:W_B] .

It is desired to find their linear combination a mathbf{A} + b mathbf{B} where "a" and "b" are coefficients which can be adjusted at will, with the condition that a,b e 0 , or (more exactly) that a mathbf{A}, b mathbf{B} e 0 , 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.

Both points are affine

If both points are in affine 3-space, then W_A e 0 and W_B e 0 . Their linear combination is

: a [X_A:Y_A:Z_A:W_A] + b [X_B:Y_B:Z_B:W_B]

:: = [a X_A:a Y_A:a Z_A:W_A] + [b X_B:b Y_B:b Z_B:W_B]

:: = left [ a {X_A over W_A} : a {Y_A over W_A} : a {Z_A over W_A} : 1 ight] + left [ b {X_B over W_B} : b {Y_B over W_B} : b {Z_B over W_B} : 1 ight]

:: = left [ a {X_A over W_A} + b {X_B over W_B} : a {Y_A over W_A} + b {Y_B over W_B} : a {Z_A over W_A} + b {Z_B over W_B} : 1 ight]

:: = [a W_B X_A + b W_A X_B : a W_B Y_A + b W_A Y_B : a W_B Z_A + b W_A Z_B : W_A W_B]

Both points are at infinity

If both points are on the plane at infinity, then "W""A" = 0 and "W""B" = 0. Their linear combination is

: a [X_A:Y_A:Z_A:W_A] + b [X_B:Y_B:Z_B:W_B] = [a X_A:a Y_A:a Z_A:0] + [b X_B: b Y_B:b Z_B:0]

:::::: = [a X_A + b X_B : a Y_A + b Y_B : a Z_A + b Z_B : 0] .

One point is affine and the other at infinity

Let the first point be affine, so that W_A e 0 . Then

: a [X_A:Y_A:Z_A:W_A] + b [X_B:Y_B:Z_B:0]

:: = a [0:0:0:0] + b [X_B:Y_B:Z_B:0] ,

:: = [b X_B:b Y_B:b Z_B:0] ,

which means that the point at infinity is "dominant".

General case

The calculation can also be carried over without distinguishing between cases, similarly to the addition of two points:

: a [X_A:Y_A:Z_A:W_A] + b [X_B:Y_B:Z_B:W_B]

:: = [a W_B X_A + b W_A X_B:a W_B Y_A + b W_A Y_B:a W_B Z_A + b W_A Z_B:W_A W_B]

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.

Use in computer graphics

:"See also Transformation matrix#Other kinds of transformations"

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 mathbb{R}^2: (x,y) ightarrow (x+a,y+b) can be represented as :egin{pmatrix}1&0&a\0&1&b\0&0&1end{pmatrix}egin{pmatrix}x\y\1end{pmatrix}=egin{pmatrix}x+a\y+b\1end{pmatrix},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:egin{pmatrix}a&b&0\c&d&0\0&0&1end{pmatrix}. 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.

Equivalence of transformations

How does one go about proving that a sequence of projective transformations on an objects (more precisely on the geometric primitives that form the object) does really have the intended effect in the real-world?

One can prove this by induction on the number of projective transformations. The base case is the application of a single projective transformation, which we know to be true from the discussions above. Let us assume that the statements holds for a sequence of N transformations. Let P' (in homogeneous co-ordinates) be the output after application of N transformations. Let P be obtained projecting the point P' in to real space. Let T' be the (N+1)^{th} projective transform that we want to apply and let T be the corresponding the real-world operation. (Note that T may not necessarily be representable as a matrix, as translations can not be expressed as matrix transformations on real-world co-ordinates). Let Q' the output of applying T' on P', and let Q be the output of applying T on P. By comparing the projected co-ordinates of Q' and the co-ordinates of Q one can conclude that applying T' on P' is equivalent to applying T on P. Thus the statement holds for a sequence of (N+1) transformations.

References

http://www.unchainedgeometry.com/jbloom/pdf/homog-coords.pdf

ee also

* Barycentric coordinates
* Inversive ring geometry


Wikimedia Foundation. 2010.

Игры ⚽ Нужно решить контрольную?

Look at other dictionaries:

  • homogeneous coordinates — vienalytės koordinatės statusas T sritis fizika atitikmenys: angl. homogeneous coordinates vok. homogene Koordinaten, f rus. однородные координаты, f pranc. coordonnées homogènes, f …   Fizikos terminų žodynas

  • Homogeneous coordinate system — A homogeneous coordinate system is a coordinate system in which there is an extra dimension, used most commonly in computer science to specify whether the given coordinates represent a vector (if the last coordinate is zero) or a point (if the… …   Wikipedia

  • Homogeneous coordinate ring — In algebraic geometry, the homogeneous coordinate ring R of an algebraic variety V given as a subvariety of projective space of a given dimension N is by definition the quotient ring R = K[X0, X1, X2, ..., XN]/I where I is the homogeneous ideal… …   Wikipedia

  • Homogeneous space — In mathematics, particularly in the theories of Lie groups, algebraic groups and topological groups, a homogeneous space for a group G is a non empty manifold or topological space X on which G acts continuously by symmetry in a transitive way. A… …   Wikipedia

  • Homogeneous (mathematics) — In mathematics, homogeneous may refer to:*Homogeneous polynomial, in algebra *Homogeneous function *Homogeneous equation, in particular: Homogeneous differential equation *Homogeneous system of linear equations, in linear algebra *Homogeneous… …   Wikipedia

  • Line coordinates — In geometry, line coordinates are used to specify the position of a line just as point coordinates (or simply coordinates) are used to specify the position of a point. Contents 1 Lines in the plane 2 Tangential equations 3 Tangential equation of… …   Wikipedia

  • Barycentric coordinates (mathematics) — In mathematics, barycentric coordinates are coordinates defined by the vertices of a simplex (a triangle, tetrahedron, etc). Barycentric coordinates are a form of homogeneous coordinates.Let x 1, ..., x n be the vertices of a simplex in a vector… …   Wikipedia

  • Plücker coordinates — In geometry, Plücker coordinates, introduced by Julius Plücker in the 19th century, are a way to assign six homogenous coordinates to each line in projective 3 space, P 3. Because they satisfy a quadratic constraint, they establish a one to one… …   Wikipedia

  • Clip coordinates — The clip coordinate system is a homogeneous coordinate system in the graphics pipeline. In OpenGL, clip coordinates are positioned in the pipeline just after eye or camera coordinates and just before normalized device coordinates. Objects are… …   Wikipedia

  • Trilinear coordinates — In geometry, the trilinear coordinates of a point relative to a given triangle describe the relative distances from the three sides of the triangle. Trilinear coordinates are an example of homogeneous coordinates. They are often called simply… …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”