The post is compiled with information on Wikipedia page on Line-plane Interaction and this notes on finding the normal to a plane.

What is the question?

This post is about checking if a line intersect with a plane, given 2 different coordinates on the line and 3 different coordinates on the plane.

How to solve it?

Suppose having a line with coordinates $$\mathbf{a}$$ and $$\mathbf{b}$$ on the line, the vector equation representing the line with the set of $$\mathbf{p}$$ consist the line is: $$\label{eq:line} \mathbf{p} = \mathbf{a} + d \mathbf{(b - a)}$$

Suppose having a plane with coordinates $$\mathbf{e}$$, $$\mathbf{f}$$ and $$\mathbf{g}$$ on the plane, then the normal to the plane is $$\mathbf{n = (f - e) \times (g - e)}$$. If $$\mathbf{p_0}$$ is a point on the plane (e.g. $$\mathbf{p_0}$$ can be $$\mathbf{e}$$, $$\mathbf{f}$$ or $$\mathbf{g}$$), the plane can be expressed as the set of points $$\mathbf{p}$$ for which: $$\label{eq:plane} \mathbf{(p - p_0) \cdot n} = 0$$

The point(s) where the line and the plane intersect, the points have the same coordinates. Substitute \eqref{eq:line} into \eqref{eq:plane}:

\begin{align*} ((\mathbf{a} + d \mathbf{(b - a)}) - \mathbf{p_0}) \cdot \mathbf{n} &= 0\\ d \mathbf{(b - a)} \cdot \mathbf{n} + \mathbf{(a - p_0)} \cdot \mathbf{n} &= 0\\ d &= \frac{\mathbf{(p_0 - a)} \cdot \mathbf{n}}{\mathbf{(b - a)} \cdot \mathbf{n}} \end{align*}

If $$\mathbf{(b - a)} \cdot \mathbf{n} = 0$$ then the line and the plane are parallel. In this case, if $$\mathbf{(p_0 - a)} \cdot \mathbf{n} = 0$$ then the line is on the plane. Otherwise the line and plane have no intersection.

If $$\mathbf{(b - a)} \cdot \mathbf{n} \neq 0$$ there is a single point of intersection.