I know how to get the normal of a plane from any 3 points, how can I do the inverse?

Suppose any $3$ points on the plane: $p_1$, $p_2$ ,$p_3$

We can get the vectors: $v_1 = p_2-p_1$,$v_2 =p_3-p_1$

And the plane normal n as: $n = v_1\times v_2$? If I got only $n$ and $p_1$, how can I get ANY other $2$ points: $p_2$ and $p_3$ ou two vectors on plane?

Looking for some vector form so I can easily write in matlab.

  • $\begingroup$ As a hint: If you find $p_2$ on $n$ such that $v_1 = p_2-p_1$, $v_1 \cdot n = 0$ you know that $v_1$ must be on the plane $\endgroup$ – J. Bush Mar 18 '16 at 18:22
  • $\begingroup$ Sorry, do you want to find the plane? Because the possible $p_2,p_3$ points are infinite, while the plane isn't $\endgroup$ – Nicolò Mar 18 '16 at 18:23
  • $\begingroup$ I know, ANY p2 and p3, just different from p1. $\endgroup$ – Pedro77 Mar 18 '16 at 18:24
  • $\begingroup$ Take the three axis-aligned unit vectors $e_1,e_2,e_3$. Then $n\times e_1$, etc. are orthogonal to $n$ and at least two of them are nonzero. So $p+(n\times e_1)$ etc. are at least two other points on the plane. $\endgroup$ – Rahul Mar 18 '16 at 18:43

Expanding on @EmilioNovati 's answer in case you need more help. If we take vectors $\vec x, \vec n, \vec p$ where $\vec x = \left[ x_1,x_2\right],\vec n = \left[ n_1,n_2\right],\vec p = \left[ p_1,p_2\right]$ we know $$\vec n \cdot (\vec x - \vec p) = 0 \\ \vec n \cdot \left[x_1-p_1,x_2 - p_2\right] = 0 \\ n_1x_1-n_1p_1 + n_2x_2 - n_2p_2 = 0 \\ x_2 = \frac{n_1p_1+n_2p_2-n_1x_1}{n_2}$$ You know $\vec p$ and $\vec n$. You can substitute any $x_1$ to find the corresponding $x_2$


If you know the normal $\mathbf{n}$ and a point on the plane $\mathbf{p_1}$ than you know the equation of the plane: $$ \mathbf{n}\cdot(\mathbf{x}-\mathbf{p_1})=0 $$

so you can find all the points of the plane.


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.