0

I have a plane defined by the equation $Ax + By + Cz + D = 0$. It does not pass through the origin.

I have projected the origin of my global coordinate system onto the plane, so it is at $(a, b, c)$.

I have a known point $P$ on the plane at $(d, e, f)$.

If I view the plane square-on as a 2D space then I can consider the projected origin point to be at $(0, 0)$. So the 3D point $(a, b, c)$ becomes the 2D $(0, 0)$.

How do I find the 2D coordinates $(x, y)$ of my known 3D point $P$ $(d, e, f)$?

Sorry if my terminology is incorrect.

Thanks, Andy

3 Answers3

0

$k(a, b, c)$ is the set of points on the line through the origin and the point $(a,b,c)$

The distance of that point from the plane $Ax+By+Cz+ D = 0$ (with $D\ne 0$) is:

$\frac {|k(Aa+Bb+Cc) + D|}{\sqrt {A^2+B^2+C}} = 0$

Thus:

$k(Aa+Bb+Cc) + D = 0\\ k = -\frac {D}{Aa+Bb+Cc}$

Your projected point is $(-\frac {Da}{Aa+Bb+Cc}, -\frac {Db}{Aa+Bb+Cc}, -\frac {Dc}{Aa+Bb+Cc}))$

If you want to view the plane "square on", we need a coordinate transformation to square things up:

$(u,v,w) = \begin{bmatrix} -B&A&0\\-C& 0& A\\A&B&C\end{bmatrix}\begin{bmatrix}x\\y\\z\end {bmatrix}$

Would be one such transformation:

The transformed plane is now $w=D$

$\frac {D}{Aa+Bb+Cc}\begin{bmatrix} -B&A&0\\-C& 0& A\end{bmatrix}\begin{bmatrix}a\\b\\c\end {bmatrix}$

Would be a mapping onto the plane in $uv$ space.

Doug M
  • 57,877
0

The coordinates of the point P(d,e,f) will become (d-a,e-b) in 2D

idpd15
  • 1,994
  • 1
  • 17
  • 38
  • Sorry, that doesn't work because the z component is important. See the equation for the distance between the points that Alex gave. – user150402 May 18 '14 at 05:04
0

This depends on which way you interpret to be "x" and which way to be "y" in your 2D plane. There are a few approaches here:

  • Use one other point Q and define "the line between projection of Q on the surface and origin of the surface makes up the x-axis, and the Q is on the positive side of the x-axis line". Then you've got that, and the y-axis is a certain line. But then you've still got two possible directions for your y-axis to go, depending on which side of your plane you're looking from. So you've got to specify that as well.

  • You take the projections of the x and y axes in 3D space and put them on the 2D surface. This has the problem, though, that if your plane is perpendicular to one of those lines, then its projection is just a single point. The other axis is necessarily a line at that point, so you can safely say what line your first axis is on -- but then you still need to define direction, which way does it go?

In the end you get a lot of different ways you might want to deal with it. Depending on the application you might even want distances to grow differently, e.g. 3 units in 3D space is 1 unit in 1D space. This would make sense if (for instance) you want all your distances in the x-axis of your plane to match up with distances in the 3D x-coordinate.

What you can safely say is how far away the point $P$ is from the origin in your plane. This is (at least with 3D distance, which will probably be the same as what you want for 2D distance) the regular distance formula, $\sqrt{(d-a)^2 + (e-b)^2 + (f-c)^2}$. You've now got a distance but no angle, but the angle is up to you.

Alex Meiburg
  • 2,503
  • 11
  • 21
  • Thanks. I was hoping that knowing the normal to the plane combined with orthographic projection and no camera/viewport would greatly simplify things. – user150402 May 18 '14 at 05:04