Plücker coordinates

Revision as of 17:24, 16 May 2025 by imported>MrSwedishMeatballs (→‎Geometric intuition)
(diff) ← Previous revision | Latest revision (diff) | Newer revision → (diff)

Template:Short description Template:About

Template:No footnotes

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 intuitionEdit

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 <math>x=(x_1,x_2,x_3)</math> and <math>y=(y_1,y_2,y_3).</math> 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 Template:Math. 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 Template:Math, 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 Template:Math, 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

<math>(\mathbf d : \mathbf m ) = (d_1:d_2:d_3\ :\ m_1:m_2:m_3)</math>

may be considered homogeneous coordinates for Template:Mvar, in the sense that all pairs Template:Math, for Template:Math, can be produced by points on Template:Mvar and only Template:Mvar, and any such pair determines a unique line so long as Template:Math is not zero and Template:Math. Furthermore, this approach extends to include points, lines, and a plane "at infinity", in the sense of projective geometry. In addition a point <math>x</math> lies on the line Template:Mvar if and only if <math>x \times d = m</math>.

Example. Let Template:Math and Template:Math. Then Template:Math.

Alternatively, let the equations for points Template:Math of two distinct planes containing Template:Mvar be

<math>\begin{align}

0 &= a + \mathbf a \cdot \mathbf x, \\ 0 &= b + \mathbf b \cdot \mathbf x. \end{align}</math>

Then their respective planes are perpendicular to vectors Template:Math and Template:Math, and the direction of Template:Mvar must be perpendicular to both. Hence we may set Template:Math, which is nonzero because Template:Math are neither zero nor parallel (the planes being distinct and intersecting). If point Template:Math satisfies both plane equations, then it also satisfies the linear combination

<math>\begin{align}

0 &= a (b + \mathbf b \cdot \mathbf x) - b(a+ \mathbf a \cdot \mathbf x) \\

 &= (a \mathbf b - b \mathbf a) \cdot \mathbf x

\end{align}</math>

That is,

<math>\mathbf m = a \mathbf b - b \mathbf a</math>

is a vector perpendicular to displacements to points on Template:Mvar from the origin; it is, in fact, a moment consistent with the Template:Math previously defined from Template:Math and Template:Math.

Template:Collapse top

Proof 1: Need to show that

<math>\mathbf m = a \mathbf b - b \mathbf a = \mathbf r \times \mathbf d = \mathbf r \times (\mathbf a \times \mathbf b).</math>what is "r"?

Without loss of generality, let

<math>\mathbf a \cdot \mathbf a = \mathbf b \cdot \mathbf b = 1.</math>
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 Template:Math and Template:Math 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.

<math>\begin{align}

& \mathbf a := \frac{BE}{||BE||}, \quad \mathbf b := \frac{BC}{||BC||}, \quad \mathbf r := BD; \\[4pt] & - \! a = ||BE|| = ||BF||, \quad -b = ||BC|| = ||BG||; \\[4pt] & \mathbf m = a \mathbf b - b \mathbf a = FG \\[4pt] & || \mathbf d || = || \mathbf a \times \mathbf b || = \sin\angle FBG \end{align}</math>

Angle Template:Math is a right angle due to the following argument. Let Template:Math. Since Template:Math (by side-angle-side congruence), then Template:Math. Since Template:Math, let Template:Math. By the inscribed angle theorem, Template:Math, so Template:Math. Template:Math; Template:Math, Template:Math; therefore, Template:Math. Then Template:Math must be a right angle as well.

Angles Template:Math are right angles, so the four points Template:Mvar lie on a circle, and (by the intersecting secants theorem)

<math>||BF|| \, ||BC|| = ||BH|| \, ||BD||</math>

that is,

<math>\begin{align}

&ab \sin\angle FBG = ||BH|| \, || \mathbf r || \sin\angle FBG , \\[4pt] & 2 \, \text{Area}_{\triangle BFG} = ab \sin\angle FBG = ||BH|| \, ||FG|| = ||BH|| \, || \mathbf r || \sin\angle FBG, \\[4pt] & || \mathbf m || = ||FG|| = || \mathbf r || \sin\angle FBG = || \mathbf r || \, || \mathbf d ||, \\[4pt] & \mathbf m = \mathbf r \times \mathbf d. \blacksquare \end{align}</math>

Proof 2:

Let

<math>\mathbf a \cdot \mathbf a = \mathbf b \cdot \mathbf b = 1.</math>

This implies that

<math>a = -||BE||, \quad b = -||BC||.</math>

According to the vector triple product formula,

<math>\mathbf r \times (\mathbf a \times \mathbf b) = (\mathbf r \cdot \mathbf b) \mathbf a - (\mathbf r \cdot \mathbf a) \mathbf b.</math>

Then

<math>\begin{align}

\mathbf r \times (\mathbf a \times \mathbf b)

&= \mathbf a \, || \mathbf r || \, || \mathbf b || \cos\angle DBC - \mathbf b \, ||\mathbf r || \, || \mathbf a || \cos\angle DBE \\[4pt]
&= \mathbf a \, || \mathbf r || \cos\angle DBC - \mathbf b \, || \mathbf r || \cos\angle DBE \\[4pt]
&= \mathbf a \, || BC || - \mathbf b \, || BE ||  \\[4pt]
&= -b \mathbf a - (-a) \mathbf b \\[4pt]
&= a \mathbf b - b \mathbf a\ \  \blacksquare

\end{align}</math>

When <math>|| \mathbf r || = 0,</math> the line Template:Mvar passes the origin with direction Template:Math. If <math>|| \mathbf r || > 0,</math> the line has direction Template:Math; the plane that includes the origin and the line Template:Mvar has normal vector Template:Math; the line is tangent to a circle on that plane (normal to Template:Math and perpendicular to the plane of the picture) centered at the origin and with radius <math>|| \mathbf r ||.</math>

Example. Let Template:Math, Template:Math and Template:Math, Template:Math. Then Template:Math.

Although the usual algebraic definition tends to obscure the relationship, Template:Math are the Plücker coordinates of Template:Mvar.

Template:Collapse bottom

Algebraic definitionEdit

Primal coordinatesEdit

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 Template:Math and Template:Math.

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

<math>p_{ij} = \begin{vmatrix} x_{i} & y_{i} \\ x_{j} & y_{j}\end{vmatrix} = x_{i}y_{j}-x_{j}y_{i} . </math>

(the skew symmetric matrix whose elements are Template:Mvar is also called the Plücker matrix )
This implies Template:Math and Template:Math, reducing the possibilities to only six (4 choose 2) independent quantities. The sextuple

<math>(p_{01}:p_{02}:p_{03}:p_{23}:p_{31}:p_{12}) </math>

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.

<math> M = \begin{bmatrix} x_0 & y_0 \\ x_1 & y_1 \\ x_2 & y_2 \\ x_3 & y_3 \end{bmatrix}</math>

The Plücker coordinate Template:Mvar is the determinant of rows Template:Mvar and Template:Mvar of Template:Mvar. Because Template:Math and Template:Math 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 Template:Math 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 Template:Math,

<math> M' = M\Lambda . </math>

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

<math> \begin{bmatrix} x'_{i} & y'_{i}\\x'_{j}& y'_{j} \end{bmatrix} = \begin{bmatrix} x_{i} & y_{i}\\x_{j}& y_{j} \end{bmatrix} \begin{bmatrix} \lambda_{00} & \lambda_{01} \\ \lambda_{10} & \lambda_{11} \end{bmatrix} . </math>

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, Template:Math. Furthermore, all six 2×2 subdeterminants in Template:Mvar cannot be zero because the rank of Template:Mvar is 2.

Plücker mapEdit

Denote the set of all lines (linear images of Template:Tmath) in Template:Tmath by Template:Math. We thus have a map:

<math>\begin{align}

\alpha \colon \mathrm{G}_{1,3} & \rightarrow \mathbb P^5 \\ L & \mapsto L^{\alpha}, \end{align}</math> where

<math> L^{\alpha}=(p_{01}:p_{02}:p_{03}:p_{23}:p_{31}:p_{12}) . </math>

Dual coordinatesEdit

Alternatively, a line can be described as the intersection of two planes. Let Template:Mvar be a line contained in distinct planes Template:Math and Template:Math with homogeneous coefficients Template:Math and Template:Math, respectively. (The first plane equation is <math display=inline>\sum_k a^k x_k =0,</math> for example.) The dual Plücker coordinate Template:Mvar is

<math>p^{ij} = \begin{vmatrix} a^{i} & a^{j} \\ b^{i} & b^{j}\end{vmatrix} = a^{i}b^{j}-a^{j}b^{i} . </math>

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

<math>

(p_{01}:p_{02}:p_{03}:p_{23}:p_{31}:p_{12})= (p^{23}:p^{31}:p^{12}:p^{01}:p^{02}:p^{03}) </math> 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 Template:Math. Specifically, let Template:Math be an even permutation of Template:Math; then

<math>p_{ij} = \lambda p^{k\ell} . </math>

GeometryEdit

To relate back to the geometric intuition, take Template:Math as the plane at infinity; thus the coordinates of points not at infinity can be normalized so that Template:Math. Then Template:Mvar becomes

<math> M = \begin{bmatrix} 1 & 1 \\ x_1 & y_1 \\ x_2& y_2 \\ x_3 & y_3 \end{bmatrix} , </math>

and setting <math>x=(x_1,x_2,x_3)</math> and <math>y=(y_1,y_2,y_3)</math>, we have <math>d=(p_{01},p_{02},p_{03})</math>and <math>m=(p_{23},p_{31},p_{12})</math>.

Dually, we have <math>d=(p^{23},p^{31},p^{12})</math> and <math>m=(p^{01},p^{02},p^{03}).</math>

Bijection between lines and Klein quadricEdit

Plane equationsEdit

If the point <math>\mathbf z = (z_0:z_1:z_2:z_3)</math> lies on Template:Mvar, then the columns of

<math> \begin{bmatrix} x_0 & y_0 & z_0 \\ x_1 & y_1 & z_1 \\ x_2 & y_2 & z_2 \\ x_3 & y_3 & z_3 \end{bmatrix} </math>

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

<math>

\begin{align} 0 & = \begin{vmatrix} x_0 & y_0 & z_0 \\ x_1 & y_1 & z_1 \\ x_2 & y_2 & z_2 \end{vmatrix} \\[5pt] & = \begin{vmatrix} x_1 & y_1 \\ x_2 & y_2 \end{vmatrix} z_0 - \begin{vmatrix} x_0 & y_0 \\ x_2 & y_2 \end{vmatrix} z_1 + \begin{vmatrix} x_0 & y_0 \\ x_1 & y_1 \end{vmatrix} z_2 \\[5pt] & = p_{12} z_0 - p_{02} z_1 + p_{01} z_2 . \\[5pt] & = p^{03} z_0 + p^{13} z_1 + p^{23} z_2 . \end{align} </math>

The four possible planes obtained are as follows.

<math> \begin{matrix}

0 & = & {}+ p_{12} z_0 & {}- p_{02} z_1 & {}+ p_{01} z_2 & \\ 0 & = & {}- p_{31} z_0 & {}- p_{03} z_1 & & {}+ p_{01} z_3 \\ 0 & = & {}+p_{23} z_0 & & {}- p_{03} z_2 & {}+ p_{02} z_3 \\ 0 & = & & {}+p_{23} z_1 & {}+ p_{31} z_2 & {}+ p_{12} z_3 \end{matrix} </math>

Using dual coordinates, and letting Template:Math be the line coefficients, each of these is simply Template:Math, or

<math> 0 = \sum_{i=0}^3 p^{ij} z_i , \qquad j = 0,\ldots,3 . </math>

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 relationEdit

The image of Template:Math 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

<math>

\begin{align} 0 & = p_{01}p^{01}+p_{02}p^{02}+p_{03}p^{03} \\ & = p_{01}p_{23}+p_{02}p_{31}+p_{03}p_{12}. \end{align} </math>

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

<math>

\begin{align} 0 & = \begin{vmatrix}x_0&y_0\\x_1&y_1\end{vmatrix}\begin{vmatrix}x_2&y_2\\x_3&y_3\end{vmatrix}+ \begin{vmatrix}x_0&y_0\\x_2&y_2\end{vmatrix}\begin{vmatrix}x_3&y_3\\x_1&y_1\end{vmatrix}+ \begin{vmatrix}x_0&y_0\\x_3&y_3\end{vmatrix}\begin{vmatrix}x_1&y_1\\x_2&y_2\end{vmatrix} \\[5pt] & = (x_0 y_1-y_0 x_1)\begin{vmatrix}x_2&y_2\\x_3&y_3\end{vmatrix}- (x_0 y_2-y_0 x_2)\begin{vmatrix}x_1&y_1\\x_3&y_3\end{vmatrix}+ (x_0 y_3-y_0 x_3)\begin{vmatrix}x_1&y_1\\x_2&y_2\end{vmatrix} \\[5pt] & = x_0 \left(y_1\begin{vmatrix}x_2&y_2\\x_3&y_3\end{vmatrix}- y_2\begin{vmatrix}x_1&y_1\\x_3&y_3\end{vmatrix}+ y_3\begin{vmatrix}x_1&y_1\\x_2&y_2\end{vmatrix}\right) -y_0 \left(x_1\begin{vmatrix}x_2&y_2\\x_3&y_3\end{vmatrix}- x_2\begin{vmatrix}x_1&y_1\\x_3&y_3\end{vmatrix}+ x_3\begin{vmatrix}x_1&y_1\\x_2&y_2\end{vmatrix}\right) \\[5pt] & = x_0 \begin{vmatrix}x_1&y_1&y_1\\x_2&y_2&y_2\\x_3&y_3&y_3\end{vmatrix} -y_0 \begin{vmatrix}x_1&x_1&y_1\\x_2&x_2&y_2\\x_3&x_3&y_3\end{vmatrix} \end{align} </math>

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

Another proof may be done like this: Since vector

<math> d = \left( p_{01}, p_{02}, p_{03} \right) </math>

is perpendicular to vector

<math> m = \left( p_{23}, p_{31}, p_{12} \right) </math>

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

Point equationsEdit

Letting Template:Math be the point coordinates, four possible points on a line each have coordinates Template:Math, for Template:Math. 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.

BijectivityEdit

If <math>(q_{01}:q_{02}:q_{03}:q_{23}:q_{31}:q_{12})</math> are the homogeneous coordinates of a point in Template:Tmath, without loss of generality assume that Template:Math is nonzero. Then the matrix

<math> M = \begin{bmatrix} q_{01} & 0 \\ 0 & q_{01} \\ -q_{12} & q_{02} \\ q_{31} & q_{03} \end{bmatrix} </math>

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 Template:Math to 1. Then we immediately have that for the Plücker coordinates computed from Template:Mvar, Template:Math, except for

<math> p_{23} = - q_{03} q_{12} - q_{02} q_{31} . </math>

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

<math>q_{23} + q_{02}q_{31} + q_{03}q_{12} = 0,</math>

then Template:Math, completing the set of identities.

Consequently, Template:Math is a surjection onto the algebraic variety consisting of the set of zeros of the quadratic polynomial

<math> p_{01}p_{23}+p_{02}p_{31}+p_{03}p_{12} . </math>

And since Template:Math 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.

UsesEdit

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

Line-line crossingEdit

Template:Further

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

<math>\mathbf d \cdot \mathbf m' + \mathbf m \cdot \mathbf d' = 0,</math>

as shown by

<math>

\begin{align} 0 & = p_{01}p'_{23} + p_{02}p'_{31} + p_{03}p'_{12} + p_{23}p'_{01} + p_{31}p'_{02} + p_{12}p'_{03} \\[5pt] & = \begin{vmatrix}x_0&y_0&x'_0&y'_0\\ x_1&y_1&x'_1&y'_1\\ x_2&y_2&x'_2&y'_2\\ x_3&y_3&x'_3&y'_3\end{vmatrix}. \end{align} </math>

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 joinEdit

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

<math>0 = (\mathbf m \cdot \mathbf d')x_0 + (\mathbf d \times \mathbf d')\cdot \mathbf x,</math>

where <math>x=(x_1,x_2,x_3).</math>

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 meetEdit

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

<math>(x_0:\mathbf x) = (\mathbf d \cdot \mathbf m': \mathbf m \times \mathbf m').</math>

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

Plane-line meetEdit

Template:Further

Given a plane with equation

<math> 0 = a^0x_0 + a^1x_1 + a^2x_2 + a^3x_3 , </math>

or more concisely,

<math>0 = a^0x_0 + \mathbf a \cdot \mathbf x;</math>

and given a line not in it with Plücker coordinates Template:Math, then their point of intersection is

<math>(x_0 : \mathbf x) = (\mathbf a \cdot \mathbf d : \mathbf a \times \mathbf m - a_0\mathbf d) .</math>

The point coordinates, Template:Math, can also be expressed in terms of Plücker coordinates as

<math> x_i = \sum_{j \ne i} a^j p_{ij} , \qquad i = 0 \ldots 3 . </math>

Point-line joinEdit

Dually, given a point Template:Math and a line not containing it, their common plane has equation

<math>0 = (\mathbf y \cdot \mathbf m) x_0 + (\mathbf y \times \mathbf d - y_0 \mathbf m)\cdot \mathbf x.</math>

The plane coordinates, Template:Math, can also be expressed in terms of dual Plücker coordinates as

<math> a^i = \sum_{j \ne i} y_j p^{ij} , \qquad i = 0 \ldots 3 . </math>

Line familiesEdit

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 Template:Math and Template:Math, 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 Template:Math. This corresponds to a one-dimensional linear subspace belonging to the Klein quadric.

Lines in planeEdit

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 pointEdit

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 surfaceEdit

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 geometryEdit

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 tracingEdit

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 alsoEdit

ReferencesEdit

|CitationClass=web }} Template:Authority control