Mathematics Stack Exchange is a question and answer site for people studying math at any level and professionals in related fields. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

For plane $ax + by + cz = 0$, it passes $(0, 0, 0)$.

Suppose we know a point on this plane, and the 2D coordinate to this plane is $(x, y)$, how can we compute its 3D coordinate?

EDIT The point $(x, y, z)$ in Cartesian coordinate system, will be mapped to $(x', y')$ in the plane $ax + by + cz = 0$, in this plane, the system is also Cartesian coordinate, so if we know $(x', y')$ and $a$, $b$ and $c$, how to compute the value of $x$, $y$, and $z$?

EDIT There is another vector $V = (x'', y'', z'')$ which has 90' degree angle with the plane normal $(a, b, c)$ and $V$ points to the Y-axis for the new Cartesian coordinate systemm..


share|cite|improve this question
You'll need to choose a 2D coordinate system for your plane first. – Henning Makholm Dec 20 '12 at 14:08
how about the simplest one, just X-Y axis with right angle? – SteakOverCooked Dec 20 '12 at 14:09
x @DoctorLai: There are infinitely many different positions and orientations for the coordinate system satisfying that description. – Henning Makholm Dec 20 '12 at 14:11
Have re-edited the posts. – SteakOverCooked Dec 20 '12 at 14:20
The (0, 0, 0) is still considered the origin of the coordinate system in the plane $ax + by + cz = 0$ – SteakOverCooked Dec 20 '12 at 14:21
up vote 0 down vote accepted

The vector $n=(a,b,c)$ is the normal of the plane.

As the description of the plane using its normal gives no indication as to how its coordinate axes should be aligned, the conversions you ask for are not uniquely defined. To obtain any conversion matching your requirements, you first choose an arbitrary vector $v$ which is not a multiple of $n$. For simplicity, I'd use something like this:

$$ v = \left\{\begin{array}{ll} (1, 0, 0) & \text{if } \lvert a\rvert\leq \lvert b\rvert, \lvert a\rvert\leq \lvert c\rvert \\ (0, 1, 0) & \text{if } \lvert b\rvert< \lvert a\rvert, \lvert b\rvert\leq \lvert c\rvert \\ (0, 0, 1) & \text{if } \lvert c\rvert< \lvert a\rvert, \lvert c\rvert< \lvert b\rvert \\ \end{array}\right. $$

Now the cross product $a = n\times v$ will be non-zero and perpendicular to $n$, so it will be a vector in your plane. $b = n\times a$ will be perpendicular to both $n$ and $a$, so it will be a vector in the plane which is orthogonal to $a$. Normalize $a$ and $b$ (i.e. divide them by their length) and you have two orthogonal unit length vectors in your plane.

Let's call these vectors $a'$ and $b'$. Then every point $p$ in the plane can be written as $$p = x'\cdot a' + y'\cdot b'$$

So $(x', y')$ are the 2D coordinates of that point, while the linear combination above gives its 3D coordinates. This is the conversion you asked for. Conversely, the 2D coefficients can be computed from a 3D point $p$ using the dot product:

\begin{align*} x' &= p\cdot a' \\ y' &= p\cdot b' \end{align*}

share|cite|improve this answer
thanks.. I've re-edited the post... – SteakOverCooked Dec 22 '12 at 2:23

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

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