Line-plane intersection

From Wikipedia, the free encyclopedia

The three possible plane-line intersections: 1. No intersection. 2. Point intersection. 3. Line intersection.
The three possible plane-line intersections:
1. No intersection.
2. Point intersection.
3. Line intersection.

In analytic geometry, the intersection of a line and a plane can be the empty set, a point, or a line. Distinguishing these cases, and determining equations for the point and line in the latter cases have use, for example, in computer graphics, motion planning, and collision detection.

[edit] Parametric form

The intersection of line and plane.
The intersection of line and plane.

A line is described by all points that are a given direction from a point. Thus a line can be represented as

\mathbf{l}_a + (\mathbf{l}_b - \mathbf{l}_a)t, \quad t\in \mathbb{R},

where \mathbf{l}_a=(x_a, y_a, z_a) and \mathbf{l}_b=(x_b, y_b, z_b) are two distinct points along the line.

Similarly a plane can be represented as

\mathbf{p}_0 + (\mathbf{p}_1-\mathbf{p}_0)u + (\mathbf{p}_2-\mathbf{p}_0)v, \quad u,v\in\mathbb{R}

where \mathbf{p}_k=(x_k,y_k,z_k), k = 0,1,2 are three points in the plane which are not co-linear.

The point at which the line intersects the plane is therefore described by setting the line equal to the plane in the parametric equation:

\mathbf{l}_a + (\mathbf{l}_b - \mathbf{l}_a)t = \mathbf{p}_0 + (\mathbf{p}_1-\mathbf{p}_0)u + (\mathbf{p}_2-\mathbf{p}_0)v

This can be simplified to

\mathbf{l}_a - \mathbf{p}_0 =  (\mathbf{l}_a - \mathbf{l}_b)t + (\mathbf{p}_1-\mathbf{p}_0)u + (\mathbf{p}_2-\mathbf{p}_0)v,

which can be expressed in matrix form as:

 \begin{bmatrix} x_a - x_0 \\ y_a - y_0 \\ z_a - z_0 \end{bmatrix}  = \begin{bmatrix} x_a - x_b & x_1 - x_0 & x_2 - x_0 \\ y_a - y_b & y_1 - y_0 & y_2 - y_0 \\ z_a - z_b & z_1 - z_0 & z_2 - z_0 \end{bmatrix} \begin{bmatrix} t \\ u \\ v \end{bmatrix}

The point of intersection is then equal to

\mathbf{l}_a + (\mathbf{l}_b - \mathbf{l}_a)t

If the line is parallel to the plane then the vectors \mathbf{l}_b - \mathbf{l}_a, \mathbf{p}_1-\mathbf{p}_0, and \mathbf{p}_2-\mathbf{p}_0 will be linearly dependent and the matrix will be singular. This situation will also occur when the line lies in the plane.

If the solution satisfies the condition t \in [0,1],, then the intersection point is on the line between \mathbf{l}_a and \mathbf{l}_b.

If the solution satisfies

u,v \in [0,1], \;\;\; (u+v) \leq 1,

then the intersection point is in the plane inside the triangle spanned by the three points \mathbf{p}_0, \mathbf{p}_1 and \mathbf{p}_2.

This problem is typically solved by expressing it in matrix form, and inverting it:

 \begin{bmatrix} t \\ u \\ v \end{bmatrix} = \begin{bmatrix} x_a - x_b & x_1 - x_0 & x_2 - x_0 \\ y_a - y_b & y_1 - y_0 & y_2 - y_0 \\ z_a - z_b & z_1 - z_0 & z_2 - z_0 \end{bmatrix}^{-1} \begin{bmatrix} x_a - x_0 \\ y_a - y_0 \\ z_a - z_0 \end{bmatrix}.

[edit] Algebraic form

The plane can also be defined by

\mathbf{p}\cdot\mathbf{n}=d

where \mathbf{p}=(x,y,z) is a point on the plane and \mathbf{n} is a normal to the plane. A normal can be found by taking the cross product (\mathbf{p}_1-\mathbf{p}_0) \times (\mathbf{p}_2 - \mathbf{p}_0) and d=\mathbf{p}_0\cdot\mathbf{n}.

Combining with the equation for the line gives

(\mathbf{l}_a+t(\mathbf{l}_b-\mathbf{l}_a))\cdot\mathbf{n}=d,

and

t={d-\mathbf{l}_a\cdot\mathbf{n} \over (\mathbf{l}_b-\mathbf{l}_a)\cdot\mathbf{n}}.

In term of coordinates, if \mathbf{n}=(a,b,c) then the equation of the plane is

ax + by + cz = d

and

t={d-a x_a - b y_a - c z_a \over a (x_b-x_a)+ b (y_b-y_a) + c(z_b-z_a)}.

If the direction of the line (\mathbf{l}_b-\mathbf{l}_a) is perpendicular to the normal then the denominator will be zero. If the line lies in the plane then both numerator and denominator will be zero, the equation is satisfied by all values of t.

[edit] Uses

In the ray tracing method of computer graphics a surface can be represented as a set of pieces of planes. The intersection of a ray of light with each plane is used to produce an image of the surface.

The algorithm can be generalised to cover intersection with other planar figures, in particular, the intersection of a polyhedron with a line.

Languages