Plücker coordinates

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search

Template:Short description Script error: No such module "about".

Script error: No such module "Unsubst".

In geometry, Plücker coordinates, introduced by Julius Plücker in the 19th century, are a way to assign six homogeneous coordinates to each line in projective 3-space, Template:Tmath. Because they satisfy a quadratic constraint, they establish a one-to-one correspondence between the 4-dimensional space of lines in Template:Tmath and points on a quadric in Template:Tmath (projective 5-space). A predecessor and special case of Grassmann coordinates (which describe Template:Mvar-dimensional linear subspaces, or flats, in an Template:Mvar-dimensional Euclidean space), Plücker coordinates arise naturally in geometric algebra. They have proved useful for computer graphics, and also can be extended to coordinates for the screws and wrenches in the theory of kinematics used for robot control.

Geometric intuition

File:Plücker line coordinate geometry.png
Displacement d (yellow arrow) and moment m (green arrow) of two points x,y on a line (in red)

A line Template:Mvar in 3-dimensional Euclidean space is determined by two distinct points that it contains, or by two distinct planes that contain it (a plane-plane intersection). Consider the first case, with points x=(x1,x2,x3) and y=(y1,y2,y3). The vector displacement from Template:Mvar to Template:Mvar is nonzero because the points are distinct, and represents the direction of the line. That is, every displacement between points on the line Template:Mvar is a scalar multiple of d = yxScript error: No such module "Check for unknown parameters".. If a physical particle of unit mass were to move from Template:Mvar to Template:Mvar, it would have a moment about the origin of the coordinate system. The geometric equivalent to this moment is a vector whose direction is perpendicular to the plane containing the line Template:Mvar and the origin, and whose length equals twice the area of the triangle formed by the displacement and the origin. Treating the points as displacements from the origin, the moment is m = x × yScript error: No such module "Check for unknown parameters"., where "×" denotes the vector cross product. For a fixed line, Template:Mvar, the area of the triangle is proportional to the length of the segment between Template:Mvar and Template:Mvar, considered as the base of the triangle; it is not changed by sliding the base along the line, parallel to itself. By definition the moment vector is perpendicular to every displacement along the line, so dm = 0Script error: No such module "Check for unknown parameters"., where "⋅" denotes the vector dot product.

Although neither direction Template:Mvar nor moment Template:Mvar alone is sufficient to determine the line Template:Mvar, together the pair does so uniquely, up to a common (nonzero) scalar multiple which depends on the distance between Template:Mvar and Template:Mvar. That is, the coordinates

(𝐝:𝐦)=(d1:d2:d3 : m1:m2:m3)

may be considered homogeneous coordinates for Template:Mvar, in the sense that all pairs d : λm)Script error: No such module "Check for unknown parameters"., for λ ≠ 0Script error: No such module "Check for unknown parameters"., can be produced by points on Template:Mvar and only Template:Mvar, and any such pair determines a unique line so long as dScript error: No such module "Check for unknown parameters". is not zero and dm = 0Script error: No such module "Check for unknown parameters".. Furthermore, this approach extends to include points, lines, and a plane "at infinity", in the sense of projective geometry. In addition a point x lies on the line Template:Mvar if and only if x×d=m.

Example. Let x = (2, 3, 7)Script error: No such module "Check for unknown parameters". and y = (2, 1, 0)Script error: No such module "Check for unknown parameters".. Then (d : m) = (0 : −2 : −7 : −7 : 14 : −4)Script error: No such module "Check for unknown parameters"..

Alternatively, let the equations for points xScript error: No such module "Check for unknown parameters". of two distinct planes containing Template:Mvar be

0=a+𝐚𝐱,0=b+𝐛𝐱.

Then their respective planes are perpendicular to vectors aScript error: No such module "Check for unknown parameters". and bScript error: No such module "Check for unknown parameters"., and the direction of Template:Mvar must be perpendicular to both. Hence we may set d = a × bScript error: No such module "Check for unknown parameters"., which is nonzero because a, bScript error: No such module "Check for unknown parameters". are neither zero nor parallel (the planes being distinct and intersecting). If point xScript error: No such module "Check for unknown parameters". satisfies both plane equations, then it also satisfies the linear combination

0=a(b+𝐛𝐱)b(a+𝐚𝐱)=(a𝐛b𝐚)𝐱

That is,

𝐦=a𝐛b𝐚

is a vector perpendicular to displacements to points on Template:Mvar from the origin; it is, in fact, a moment consistent with the dScript error: No such module "Check for unknown parameters". previously defined from aScript error: No such module "Check for unknown parameters". and bScript error: No such module "Check for unknown parameters"..


Proof of geometric formulation

Proof 1: Need to show that

𝐦=a𝐛b𝐚=𝐫×𝐝=𝐫×(𝐚×𝐛).what is "r"?

Without loss of generality, let

𝐚𝐚=𝐛𝐛=1.
File:BaiduShurufa 2018-9-29 20-38-43.png
Plane orthogonal to line Template:Mvar and including the origin.

Point Template:Mvar is the origin. Line Template:Mvar passes through point Template:Mvar and is orthogonal to the plane of the picture. The two planes pass through Template:Mvar and Template:Mvar and are both orthogonal to the plane of the picture. Points Template:Mvar and Template:Mvar are the closest points on those planes to the origin Template:Mvar, therefore angles BCDScript error: No such module "Check for unknown parameters". and BEDScript error: No such module "Check for unknown parameters". are right angles and so the points Template:Mvar lie on a circle (due to a corollary of Thales's theorem). Template:Mvar is the diameter of that circle.

𝐚:=BE||BE||,𝐛:=BC||BC||,𝐫:=BD;a=||BE||=||BF||,b=||BC||=||BG||;𝐦=a𝐛b𝐚=FG||𝐝||=||𝐚×𝐛||=sinFBG

Angle BHFScript error: No such module "Check for unknown parameters". is a right angle due to the following argument. Let ε := ∠ BECScript error: No such module "Check for unknown parameters".. Since BEC ≅ △ BFGScript error: No such module "Check for unknown parameters". (by side-angle-side congruence), then BFG = εScript error: No such module "Check for unknown parameters".. Since BEC + ∠ CED = 90°Script error: No such module "Check for unknown parameters"., let ε' := 90° − ε = ∠ CEDScript error: No such module "Check for unknown parameters".. By the inscribed angle theorem, DEC = ∠ DBCScript error: No such module "Check for unknown parameters"., so DBC = ε'Script error: No such module "Check for unknown parameters".. HBF + ∠ BFH + ∠ FHB = 180°Script error: No such module "Check for unknown parameters".; ε' + ε + ∠ FHB = 180°Script error: No such module "Check for unknown parameters"., ε + ε' = 90°Script error: No such module "Check for unknown parameters".; therefore, FHB = 90°Script error: No such module "Check for unknown parameters".. Then DHFScript error: No such module "Check for unknown parameters". must be a right angle as well.

Angles DCF, ∠ DHFScript error: No such module "Check for unknown parameters". are right angles, so the four points Template:Mvar lie on a circle, and (by the intersecting secants theorem)

||BF||||BC||=||BH||||BD||

that is,

absinFBG=||BH||||𝐫||sinFBG,2AreaBFG=absinFBG=||BH||||FG||=||BH||||𝐫||sinFBG,||𝐦||=||FG||=||𝐫||sinFBG=||𝐫||||𝐝||,𝐦=𝐫×𝐝.

Proof 2:

Let

𝐚𝐚=𝐛𝐛=1.

This implies that

a=||BE||,b=||BC||.

According to the vector triple product formula,

𝐫×(𝐚×𝐛)=(𝐫𝐛)𝐚(𝐫𝐚)𝐛.

Then

𝐫×(𝐚×𝐛)=𝐚||𝐫||||𝐛||cosDBC𝐛||𝐫||||𝐚||cosDBE=𝐚||𝐫||cosDBC𝐛||𝐫||cosDBE=𝐚||BC||𝐛||BE||=b𝐚(a)𝐛=a𝐛b𝐚  

When ||𝐫||=0, the line Template:Mvar passes the origin with direction dScript error: No such module "Check for unknown parameters".. If ||𝐫||>0, the line has direction dScript error: No such module "Check for unknown parameters".; the plane that includes the origin and the line Template:Mvar has normal vector mScript error: No such module "Check for unknown parameters".; the line is tangent to a circle on that plane (normal to mScript error: No such module "Check for unknown parameters". and perpendicular to the plane of the picture) centered at the origin and with radius ||𝐫||.

Example. Let a0 = 2Script error: No such module "Check for unknown parameters"., a = (−1, 0, 0)Script error: No such module "Check for unknown parameters". and b0 = −7Script error: No such module "Check for unknown parameters"., b = (0, 7, −2)Script error: No such module "Check for unknown parameters".. Then (d : m) = (0 : −2 : −7 : −7 : 14 : −4)Script error: No such module "Check for unknown parameters"..

Although the usual algebraic definition tends to obscure the relationship, (d : m)Script error: No such module "Check for unknown parameters". are the Plücker coordinates of Template:Mvar.

Algebraic definition

Primal coordinates

In a 3-dimensional projective space Template:Tmath, let Template:Mvar be a line through distinct points Template:Mvar and Template:Mvar with homogeneous coordinates (x0 : x1 : x2 : x3)Script error: No such module "Check for unknown parameters". and (y0 : y1 : y2 : y3)Script error: No such module "Check for unknown parameters"..

The Plücker coordinates Template:Mvar are defined as follows:

pij=|xiyixjyj|=xiyjxjyi.

(the skew symmetric matrix whose elements are Template:Mvar is also called the Plücker matrix )
This implies pii = 0Script error: No such module "Check for unknown parameters". and pij = −pjiScript error: No such module "Check for unknown parameters"., reducing the possibilities to only six (4 choose 2) independent quantities. The sextuple

(p01:p02:p03:p23:p31:p12)

is uniquely determined by Template:Mvar up to a common nonzero scale factor. Furthermore, not all six components can be zero. Thus the Plücker coordinates of Template:Mvar may be considered as homogeneous coordinates of a point in a 5-dimensional projective space, as suggested by the colon notation.

To see these facts, let Template:Mvar be the 4×2 matrix with the point coordinates as columns.

M=[x0y0x1y1x2y2x3y3]

The Plücker coordinate Template:Mvar is the determinant of rows Template:Mvar and Template:Mvar of Template:Mvar. Because xScript error: No such module "Check for unknown parameters". and yScript error: No such module "Check for unknown parameters". are distinct points, the columns of Template:Mvar are linearly independent; Template:Mvar has rank 2. Let Template:Mvar be a second matrix, with columns x′, y′Script error: No such module "Check for unknown parameters". a different pair of distinct points on Template:Mvar. Then the columns of Template:Mvar are linear combinations of the columns of Template:Mvar; so for some 2×2 nonsingular matrix ΛScript error: No such module "Check for unknown parameters".,

M=MΛ.

In particular, rows Template:Mvar and Template:Mvar of Template:Mvar and Template:Mvar are related by

[x'iy'ix'jy'j]=[xiyixjyj][λ00λ01λ10λ11].

Therefore, the determinant of the left side 2×2 matrix equals the product of the determinants of the right side 2×2 matrices, the latter of which is a fixed scalar, det ΛScript error: No such module "Check for unknown parameters".. Furthermore, all six 2×2 subdeterminants in Template:Mvar cannot be zero because the rank of Template:Mvar is 2.

Plücker map

Denote the set of all lines (linear images of Template:Tmath) in Template:Tmath by G1,3Script error: No such module "Check for unknown parameters".. We thus have a map:

α:G1,35LLα,

where

Lα=(p01:p02:p03:p23:p31:p12).

Dual coordinates

Alternatively, a line can be described as the intersection of two planes. Let Template:Mvar be a line contained in distinct planes aScript error: No such module "Check for unknown parameters". and bScript error: No such module "Check for unknown parameters". with homogeneous coefficients (a0 : a1 : a2 : a3)Script error: No such module "Check for unknown parameters". and (b0 : b1 : b2 : b3)Script error: No such module "Check for unknown parameters"., respectively. (The first plane equation is kakxk=0, for example.) The dual Plücker coordinate Template:Mvar is

pij=|aiajbibj|=aibjajbi.

Dual coordinates are convenient in some computations, and they are equivalent to primary coordinates:

(p01:p02:p03:p23:p31:p12)=(p23:p31:p12:p01:p02:p03)

Here, equality between the two vectors in homogeneous coordinates means that the numbers on the right side are equal to the numbers on the left side up to some common scaling factor λScript error: No such module "Check for unknown parameters".. Specifically, let (i, j, k, )Script error: No such module "Check for unknown parameters". be an even permutation of (0, 1, 2, 3)Script error: No such module "Check for unknown parameters".; then

pij=λpk.

Geometry

To relate back to the geometric intuition, take x0 = 0Script error: No such module "Check for unknown parameters". as the plane at infinity; thus the coordinates of points not at infinity can be normalized so that x0 = 1Script error: No such module "Check for unknown parameters".. Then Template:Mvar becomes

M=[11x1y1x2y2x3y3],

and setting x=(x1,x2,x3) and y=(y1,y2,y3), we have d=(p01,p02,p03)and m=(p23,p31,p12).

Dually, we have d=(p23,p31,p12) and m=(p01,p02,p03).

Bijection between lines and Klein quadric

Plane equations

If the point 𝐳=(z0:z1:z2:z3) lies on Template:Mvar, then the columns of

[x0y0z0x1y1z1x2y2z2x3y3z3]

are linearly dependent, so that the rank of this larger matrix is still 2. This implies that all 3×3 submatrices have determinant zero, generating four (4 choose 3) plane equations, such as

0=|x0y0z0x1y1z1x2y2z2|=|x1y1x2y2|z0|x0y0x2y2|z1+|x0y0x1y1|z2=p12z0p02z1+p01z2.=p03z0+p13z1+p23z2.

The four possible planes obtained are as follows.

0=+p12z0p02z1+p01z20=p31z0p03z1+p01z30=+p23z0p03z2+p02z30=+p23z1+p31z2+p12z3

Using dual coordinates, and letting (a0 : a1 : a2 : a3)Script error: No such module "Check for unknown parameters". be the line coefficients, each of these is simply ai = pijScript error: No such module "Check for unknown parameters"., or

0=i=03pijzi,j=0,,3.

Each Plücker coordinate appears in two of the four equations, each time multiplying a different variable; and as at least one of the coordinates is nonzero, we are guaranteed non-vacuous equations for two distinct planes intersecting in Template:Mvar. Thus the Plücker coordinates of a line determine that line uniquely, and the map α is an injection.

Quadratic relation

The image of αScript error: No such module "Check for unknown parameters". is not the complete set of points in Template:Tmath; the Plücker coordinates of a line Template:Mvar satisfy the quadratic Plücker relation

0=p01p01+p02p02+p03p03=p01p23+p02p31+p03p12.

For proof, write this homogeneous polynomial as determinants and use Laplace expansion (in reverse).

0=|x0y0x1y1||x2y2x3y3|+|x0y0x2y2||x3y3x1y1|+|x0y0x3y3||x1y1x2y2|=(x0y1y0x1)|x2y2x3y3|(x0y2y0x2)|x1y1x3y3|+(x0y3y0x3)|x1y1x2y2|=x0(y1|x2y2x3y3|y2|x1y1x3y3|+y3|x1y1x2y2|)y0(x1|x2y2x3y3|x2|x1y1x3y3|+x3|x1y1x2y2|)=x0|x1y1y1x2y2y2x3y3y3|y0|x1x1y1x2x2y2x3x3y3|

Since both 3×3 determinants have duplicate columns, the right hand side is identically zero.

Another proof may be done like this: Since vector

d=(p01,p02,p03)

is perpendicular to vector

m=(p23,p31,p12)

(see above), the scalar product of Template:Mvar and Template:Mvar must be zero. q.e.d.

Point equations

Letting (x0 : x1 : x2 : x3)Script error: No such module "Check for unknown parameters". be the point coordinates, four possible points on a line each have coordinates xi = pijScript error: No such module "Check for unknown parameters"., for j = 0, 1, 2, 3Script error: No such module "Check for unknown parameters".. Some of these possible points may be inadmissible because all coordinates are zero, but since at least one Plücker coordinate is nonzero, at least two distinct points are guaranteed.

Bijectivity

If (q01:q02:q03:q23:q31:q12) are the homogeneous coordinates of a point in Template:Tmath, without loss of generality assume that q01Script error: No such module "Check for unknown parameters". is nonzero. Then the matrix

M=[q0100q01q12q02q31q03]

has rank 2, and so its columns are distinct points defining a line Template:Mvar. When the Template:Tmath coordinates, Template:Mvar, satisfy the quadratic Plücker relation, they are the Plücker coordinates of Template:Mvar. To see this, first normalize q01Script error: No such module "Check for unknown parameters". to 1. Then we immediately have that for the Plücker coordinates computed from Template:Mvar, pij = qijScript error: No such module "Check for unknown parameters"., except for

p23=q03q12q02q31.

But if the Template:Mvar satisfy the Plücker relation

q23+q02q31+q03q12=0,

then p23 = q23Script error: No such module "Check for unknown parameters"., completing the set of identities.

Consequently, αScript error: No such module "Check for unknown parameters". is a surjection onto the algebraic variety consisting of the set of zeros of the quadratic polynomial

p01p23+p02p31+p03p12.

And since αScript error: No such module "Check for unknown parameters". is also an injection, the lines in Template:Tmath are thus in bijective correspondence with the points of this quadric in Template:Tmath, called the Plücker quadric or Klein quadric.

Uses

Plücker coordinates allow concise solutions to problems of line geometry in 3-dimensional space, especially those involving incidence.

Line-line crossing

Script error: No such module "labelled list hatnote".

Two lines in Template:Tmath are either skew or coplanar, and in the latter case they are either coincident or intersect in a unique point. If Template:Mvar and Template:Mvar are the Plücker coordinates of two lines, then they are coplanar precisely when

𝐝𝐦+𝐦𝐝=0,

as shown by

0=p01p'23+p02p'31+p03p'12+p23p'01+p31p'02+p12p'03=|x0y0x'0y'0x1y1x'1y'1x2y2x'2y'2x3y3x'3y'3|.

When the lines are skew, the sign of the result indicates the sense of crossing: positive if a right-handed screw takes Template:Mvar into Template:Mvar, else negative.

The quadratic Plücker relation essentially states that a line is coplanar with itself.

Line-line join

In the event that two lines are coplanar but not parallel, their common plane has equation

0=(𝐦𝐝)x0+(𝐝×𝐝)𝐱,

where x=(x1,x2,x3).

The slightest perturbation will destroy the existence of a common plane, and near-parallelism of the lines will cause numeric difficulties in finding such a plane even if it does exist.

Line-line meet

Dually, two coplanar lines, neither of which contains the origin, have common point

(x0:𝐱)=(𝐝𝐦:𝐦×𝐦).

To handle lines not meeting this restriction, see the references.

Plane-line meet

Script error: No such module "labelled list hatnote".

Given a plane with equation

0=a0x0+a1x1+a2x2+a3x3,

or more concisely,

0=a0x0+𝐚𝐱;

and given a line not in it with Plücker coordinates (d : m)Script error: No such module "Check for unknown parameters"., then their point of intersection is

(x0:𝐱)=(𝐚𝐝:𝐚×𝐦a0𝐝).

The point coordinates, (x0 : x1 : x2 : x3)Script error: No such module "Check for unknown parameters"., can also be expressed in terms of Plücker coordinates as

xi=jiajpij,i=03.

Point-line join

Dually, given a point (y0 : y)Script error: No such module "Check for unknown parameters". and a line not containing it, their common plane has equation

0=(𝐲𝐦)x0+(𝐲×𝐝y0𝐦)𝐱.

The plane coordinates, (a0 : a1 : a2 : a3)Script error: No such module "Check for unknown parameters"., can also be expressed in terms of dual Plücker coordinates as

ai=jiyjpij,i=03.

Line families

Because the Klein quadric is in Template:Tmath, it contains linear subspaces of dimensions one and two (but no higher). These correspond to one- and two-parameter families of lines in Template:Tmath.

For example, suppose Template:Mvar are distinct lines in Template:Tmath determined by points x, yScript error: No such module "Check for unknown parameters". and x′, yScript error: No such module "Check for unknown parameters"., respectively. Linear combinations of their determining points give linear combinations of their Plücker coordinates, generating a one-parameter family of lines containing Template:Mvar and LScript error: No such module "Check for unknown parameters".. This corresponds to a one-dimensional linear subspace belonging to the Klein quadric.

Lines in plane

If three distinct and non-parallel lines are coplanar; their linear combinations generate a two-parameter family of lines, all the lines in the plane. This corresponds to a two-dimensional linear subspace belonging to the Klein quadric.

Lines through point

If three distinct and non-coplanar lines intersect in a point, their linear combinations generate a two-parameter family of lines, all the lines through the point. This also corresponds to a two-dimensional linear subspace belonging to the Klein quadric.

Ruled surface

A ruled surface is a family of lines that is not necessarily linear. It corresponds to a curve on the Klein quadric. For example, a hyperboloid of one sheet is a quadric surface in Template:Tmath ruled by two different families of lines, one line of each passing through each point of the surface; each family corresponds under the Plücker map to a conic section within the Klein quadric in Template:Tmath.

Line geometry

During the nineteenth century, line geometry was studied intensively. In terms of the bijection given above, this is a description of the intrinsic geometry of the Klein quadric.

Ray tracing

Line geometry is extensively used in ray tracing application where the geometry and intersections of rays need to be calculated in 3D. An implementation is described in Introduction to Plücker Coordinates written for the Ray Tracing forum by Thouis Jones.

See also

References

  • Script error: No such module "citation/CS1".
  • Script error: No such module "citation/CS1".
    From the German: Grundzüge der Mathematik, Band II: Geometrie. Vandenhoeck & Ruprecht.
  • Script error: No such module "Citation/CS1".
  • Script error: No such module "Template wrapper".
  • Script error: No such module "citation/CS1".
  • Script error: No such module "citation/CS1".
  • Script error: No such module "Citation/CS1".
  • Script error: No such module "citation/CS1".
  • Script error: No such module "citation/CS1".
  • Script error: No such module "citation/CS1".

Template:Authority control