Coordonate omogene
De la Wikipedia, enciclopedia liberă
În matematică, coordonatele omogene, introduse de August Ferdinand Möbius, permit transformări afine prin reprezentarea lor sub forma unei matrici. Coordonatele omogene permit, de asemenea, efectuarea calculelor în spaţii proiective într-un mod similar cu cel în care coordonatele carteziene o fac în spaţiul euclidian.
| Acest articol este scris parţial sau integral în limba engleză. Puteţi contribui la Wikipedia prin traducerea lui sau chiar şi a altora care v-ar putea interesa. Părţile scrise în alte limbi pot fi şterse dacă în termen de 7 zile nu se înregistrează progrese notabile în procesul de traducere. |
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.
Cuprins |
[modifică] Paranteze pătrate şi rotunde
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].
[modifică] Adunarea în coordonate omogene
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].
[modifică] Produsul scalar în cazul coordonatelor omogene
Există două feluri de multiplicare scalară: una pentru puncte neproiectate şi alta pentru puncte proiectate.
Se consideră un scalar a şi un punct 3-D neproiectat (x : y : z). Atunci
- a(x:y:z) = (ax:ay:az).
Observaţi că
deşi
Fie acum un scalar a şi un punct 3-D proiectat [x : y : z]. Atunci
- a[x:y:z] = [ax:ay:z]
astfel încât
Observaţi totuşi un caz special - dacă a = z = 0, formula de mai sus dă [0:0:0] ca rezultat, care după cum se ştie nu reprezintă nici un punct. Într-adevăr
e nedefinită, aşa că nu este o imperfecţiune în definiţie.
[modifică] Combinaţii liniare de puncte descrise prin coordonate omogene
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.
[modifică] Ambele puncte sunt afine
If both points are in affine 3-space, then
and
. Their linear combination is
-
- = [aWBXA + bWAXB:aWBYA + bWAYB:aWBZA + bWAZB:WAWB]
[modifică] Ambele puncte sunt la infinit
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].
-
-
-
-
[modifică] Unul din puncte este afin iar celălat este la infinit
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".
[modifică] Cazul general
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.
[modifică] Utilizarea în grafica computaţională
Coordonatele omogene sunt omniprezente în grafica computaţională deoarece rezolvă problema reprezentării translaţiei translaţie şi proiecţiei ca operaţii matriceale.
Coordonatele omogene permit tuturor transformărilor afine să fie reprezentate prin operaţii matriceale. O translaţie in
poate fi reprezentată ca
unde vectorii coloană sunt coordonatele omogene ale celor două puncte. Toate transformările lineare ca rotaţie şi reflexie prin origine pot fi si ele reprezentate prin matrice de forma
Mai mult toate transformările proiective pot fi reprezentate prin alte matrice. Această reprezentare simplifică calculul în grafica computaţională deoarece toate transformările necesare pot fi efectuate prin înmulţirea matricelor . Ca rezultat, o serie de transformări afine pot fi combinate simplu prin multiplicarea succesivă a matricelor. Aceasta se realizează în sisteme grafice în timp real ca OpenGL and DirectX care pot folosi plăci video moderne pentru efectuarea de operaţii cu coordonate omogene .

![[x:y:z] = [u:v:w] \Leftrightarrow \exists \alpha (x = \alpha u \wedge y = \alpha v \wedge z = \alpha w ).](http://upload.wikimedia.org/math/0/8/8/088d212d63ccf1035e22b52e62ddb0cf.png)

![(x:y:z) \equiv (u:v:w) \Leftrightarrow [x:y:z] = [u:v:w].](http://upload.wikimedia.org/math/1/e/3/1e382210ba4705c54efc2fddcc24570a.png)


![[x:y:z] \ne a [x:y:z].](http://upload.wikimedia.org/math/d/7/3/d73960d2d4b7d87e0e027dbe2cfe9a09.png)
![\mathbf{A} : [X_A:Y_A:Z_A:W_A],](http://upload.wikimedia.org/math/c/c/d/ccdc1ca5e33a40d21fb55f161bae7fd5.png)
![\mathbf{B} : [X_B:Y_B:Z_B:W_B].](http://upload.wikimedia.org/math/3/d/9/3d97dd324933010adccb946ecd7b6e34.png)
![a [X_A:Y_A:Z_A:W_A] + b[X_B:Y_B:Z_B:W_B] \](http://upload.wikimedia.org/math/0/9/3/0933f6c946bb5d66cc57526ea3f6cc0b.png)
![= [a X_A:a Y_A:a Z_A:W_A] + [b X_B:b Y_B:b Z_B:W_B] \](http://upload.wikimedia.org/math/d/6/a/d6ab55efe4797e891e40118919346fd2.png)
![= \left[ a {X_A \over W_A} : a {Y_A \over W_A} : a {Z_A \over W_A} : 1 \right] + \left[ b {X_B \over W_B} : b {Y_B \over W_B} : b {Z_B \over W_B} : 1 \right]](http://upload.wikimedia.org/math/1/9/d/19dc1a990c5a4246107d5e23518e48c8.png)
![= \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 \right]](http://upload.wikimedia.org/math/2/a/8/2a85c7fc6d0ab9dd4fe20c51880e90ee.png)

