# determine where a vector will intersect a plane

I have a vector with position $O=(o_1,o_2,o_3)$ and direction $D=(d_1,d_2,d_3)$ and a plane determined by 3 points $A=(a_1,a_2,a_3),B=(b_1,b_2,b_3),C=(c_1,c_2,c_3)$.

In which point will the vector intersect the plane?

An outline of one method to find the point of intersection:

First find the equations of the line and the plane

A parameterization of the line is $$\tag{1} (x,y,z)= (o_1+d_1 t\, , o_2+d_2 t\,, o_3+d_3 t ),\quad -\infty<t<\infty.$$

To find an equation of the plane, take the cross product of the vectors $A-B$ and $B-C$. This will give you a normal vector to the plane: $(N_1, N_2, N_3)$. The equation of the plane is then, using $A$ as a point on the plane: $$\tag{2} N_1(x-a_1)+N_2(y-a_2)+N_3(z-a_3)=0.$$

Now, to find the point of intersection, substitute the information from $(1)$ $$x=o_1+d_1 t , \quad y= o_2+d_2 t\quad z= o_3+d_3 t$$ into $(2)$ and solve for $t$. Then substitute this value of $t$ into $(1)$ to find the coordinates of the point.

I'm assuming there is a point of intersection. There may not be, or there may be infinitely many...

• worked like a charm! thanks a lot! – Alex Jan 19 '12 at 15:18
• I found it very helpful too. +1 – cangrejo Jan 30 '14 at 16:23

An alternative method is to describe the line and plane as follows:

The plane can be described as a vector $$\vec{x}$$ which is the sum of two vectors on the plane $$\vec{q_1} = \vec{A} - \vec{B}$$, and $$\vec{q_2} = \vec{A}-\vec{C}$$ scaled by arbitrary parameters $$\lambda$$ and $$\mu$$.

$$\vec{x} = \vec{A} + \lambda \vec{q_1} + \mu \vec{q_2}$$

The line can also be described as the vector $$\vec{y}$$ using another paramater $$t$$.

$$\vec{y} = \vec{O} + \vec{D} t$$

To find out where the line intersects the plane, solve for $$\vec{x} = \vec{y}$$. This gives us three equations in which we can find the three parameters. In matrix form this looks like:

$$\begin{bmatrix} q_{1,x} & q_{2,x} & -d_1\\ q_{1,y} & q_{2,y} & -d_2\\ q_{1,z} & q_{2,z} & -d_3 \end{bmatrix} \begin{pmatrix} \lambda\\ \mu\\ t \end{pmatrix} = \begin{pmatrix} o_1 - a_1\\ o_2 - a_2\\ o_3 - a_3 \end{pmatrix}$$

Invert the matrix to find the parameters $$\lambda$$, $$\mu$$, and $$t$$. Once you know $$t$$ you can plug it into the equation for $$\vec{y}$$ and that will be your point of intersection.

A point on your plane is $A$, and two direction vectors that lie in your plane are $B-A$ and $C-A$, so any point on the plane can be written as $A + \lambda(B-A) + \mu(C-A)$, where $\lambda, \mu$ are some real numbers. This can be rewritten as $(1-\lambda-\mu)A + \lambda B + \mu C$, or equivalently $\alpha A + \beta B + \gamma C$ where $\alpha + \beta + \gamma = 1$.

So you need to find $k$ such that $kD$ can be written in the form $\alpha A + \beta B + \gamma C$ where $\alpha + \beta + \gamma = 1$. Then $kD$ is the point of intersection.