How do I find the orthogonal projection of a vector onto an arbitrary plane?

1.5k Views Asked by At

We have a plane $H$ described by the equation $\theta_0 + \theta \cdot x = 0 $, where $\theta_0$ is the offset (a scalar) and $\theta_= [\theta_1, \theta_2, \theta_3]^T$ is an orthogonal vector, not necessarily of unit length.

What is the formula for the orthogonal projection of an arbitrary vector $v \in \mathbb{R}^3$ onto this plane? How do we derive it?

In other words, I'm looking for an expression for the vector in $H$ that represents the orthogonal projection of an arbitrary vector $v \in \mathbb{R}^3$ onto $H$, in terms of $v$, $\theta$, $\theta_0$, and their dot products only.

2

There are 2 best solutions below

0
On

Normalize $\theta$ and consequently $\theta_0$ to read:

$${\bf n} \cdot {\bf x} = d$$ that means that the plane is at distance $d$ from the origin, measured along ${\bf n}$.

Then $d' = \vec{OP} \cdot {\bf n} - d$ is the (signed) distance of the point P from the plane.
And once you have the distance, then $\vec{OP}-d' {\bf n}$ is the projection of P onto the plane.

Now that you got the "visualization" of the process you can arrange the steps and simplify.

7
On

Compute the intersection of the plane and the perpendicular line through $v$. One way to do this is to substitute $v+t\theta$ into the equation of the plane and solve for $t$. If you’re familiar with homogeneous coordinates, you can instead use the Plücker matrix of this line to compute the intersection point directly.