I've read through some of the questions on line-plane intersection but I'm struggling because many define the plane in a format like:


but my plane is defined as a point ($x_p, y_p, z_p$) and the unit vector normal to the plane ($i_p, j_p, k_p$).

My line is defined by a point ($x_v, y_v, z_v$) and a unit vector in the direction of the line ($i_v, j_v, k_v$),

I can't figure out how to apply what I've read in other questions to my scenario, which I will need to implement in some generic VB.NET code.

  • $\begingroup$ Welcome to Mathematics Stack Exchange. It might be easier to explain with a numerical example, but basically the equation of your plane is $i_px+j_py+k_px-(i_px_p+j_py_p+k_pz_p)=0$; on the other hand, the normal vector to the plane $4x-2y+5z-9=0$ is $(4,-2,5)$ $\endgroup$ – J. W. Tanner Oct 28 '19 at 10:20
  • $\begingroup$ You’re only one simple step away from an equation of that form for the plane. Look up “point-normal form.” $\endgroup$ – amd Oct 28 '19 at 17:03
  • $\begingroup$ @amd only simple if you know. Fortunately AugSB’s answer got me there. $\endgroup$ – Notts90 supports Monica Oct 28 '19 at 17:04
  • $\begingroup$ You could’ve gotten there yourself. I’d bet that he started with that form, substituted a generic point on the line into it and then solved for the unknown multiple of the line’s unit direction vector. $\endgroup$ – amd Oct 28 '19 at 17:06

Let $P_v=(x_p,y_p,z_p)$, $P_p=(x_v,y_v,z_v)$, $\vec{v_v}=(i_v,j_v,k_v)$ and $\vec{v_p}=(i_p,j_p,k_p)$. Then

$$P_{intersection} = P_v + \frac{(P_p-P_v)\cdot\vec{v_p}}{\vec{v_v}\cdot\vec{v_p}} \ \vec{v_v}$$

I assume you already know the basics of operations with vectors and points...

EDIT: This formula can be easily derived from the vectorial definition of planes and lines. A point $P$ belongs to the plane defined by $P_p$ and $\vec{v_p}$ if $(P-P_p)\cdot\vec{v_p}=0$. Moreover, points of the line defined by $P_v$ and $\vec{v_v}$ are of the form $P_v+\lambda \vec{v_v}$. Note that the intersection point has to satisfy both conditions, so it is enouh to plug in the line form into the plane equation and solve: $$(P_v+\lambda \vec{v_v}-P_p)\cdot\vec{v_p}=0 \iff \lambda =\frac{(P_p-P_v)\cdot\vec{v_p}}{\vec{v_v}\cdot\vec{v_p}}$$ Of course, if $\vec{v_v}\cdot\vec{v_p}=0$, both elements would be parallel, so there would not be any intersection point.

| cite | improve this answer | |
  • $\begingroup$ Its been a while but yes! Use dot product on the vectors right? I best get refreshing... $\endgroup$ – Notts90 supports Monica Oct 28 '19 at 10:31
  • $\begingroup$ This answer would be much improved if you explained how you arrived at this mysterious formula. $\endgroup$ – amd Oct 28 '19 at 17:07
  • $\begingroup$ @amd mysterious answer that works great. $\endgroup$ – Notts90 supports Monica Oct 28 '19 at 17:15
  • 1
    $\begingroup$ @amd It is not so misterious, you can find it in plenty of webpages (starting from Wikipedia itself). Anyhow, I added a brief explanation to complete the answer. $\endgroup$ – AugSB Oct 29 '19 at 7:47
  • $\begingroup$ It is mysterious when you present it as a fact accompli with no explanation or references. $\endgroup$ – amd Oct 29 '19 at 16:24

If $\vec P=(x,y,z)$ is some point of the plane that is given by point $\vec A$ and a normal $\vec n$, then by definition of normal the vector $\vec{AP}=\vec P -\vec A$ is perpendicular to $\vec n$, so the scalar product $\vec{AP}\cdot\vec n=0$.

By writing this in coordinate form, you will get the plane equation: $$ (x-x_v)i_v+(y-y_v)j_v+(z-z_v)k_v = 0,\\ i_vx+j_vy+k_vz-(i_vx_v+j_vy_v+k_vz_v)=0 $$

| cite | improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.