Convert a 2D point to 3D on a plane

10.1k Views Asked by At

I have a 2D point and a 3D infinite plane(defined by a 3D point and its normal), I want to convert 2D point to 3D point by projected 2D point onto 3D plane surface.

I'm weak in math, I need a method to find the z-coordinate.

example:

enter image description here

2

There are 2 best solutions below

0
On

Let the normal be $N$ and the point on the plane be $P$, so the points in the plane are $(A-P)\cdot N = 0$.

If your 2D point is $T$ (with, perhaps, the third coordinate zero), the line from $T$ in direction $N$ is $T+rN$, where $r$ is a real number.

If this is in the plane, then $(T+rN-P)\cdot N = 0$ or $0 =(T-P)\cdot N + rN\cdot N $ or $rN \cdot N = (P-T)\cdot N$ or $r =\dfrac{(P-T)\cdot N}{N \cdot N} $.

Your point in the plane, as stated above, is then $T+rN$.

0
On

HINT: If the plane equation is given $ax+by+cz+d=0$ Normal vector of the plane $$\overrightarrow{N}=(a,b,c)$$

Assume that the projection point on plane $A(x_1,y_1,z_1)$ that it is unknown and your aim is to find it. The point must satisfy the plane equation $ax+by+cz+d=0$

Given 2D point $B(x_2,y_2,0)$, I assumed that the point is on xy plane. Thus, I took $z=0$

$\overrightarrow{AB}$ must be parallel to $\overrightarrow{N}=(a,b,c)$

Thus $$\frac{x_2-x_1}{a}=\frac{y_2-y_1}{b}=\frac{0-z_1}{c}=k$$ and also we know that $$ax_1+by_1+cz_1+d=0$$

You can solve the equations above and find the projection point $A(x_1,y_1,z_1)$ on the plane.