目次
前提条件
3次元空間において、法線ベクトル\(\vec{n}\)、平面を通る点\(A\)で表現される平面に、点\(P\)を投影したときの投影点\(H\)の座標を求めるとします。

投影点(垂線の足)を求める式
投影点\(H\)の座標は次式で求められます。
$$H = P – \frac{\vec{n} \cdot \vec{AP}}{|\vec{n}|^2} \vec{n}$$
ただし、\(|\vec{n}| \neq 0\)
特に、\(|\vec{n}|=1\)、すなわち法線ベクトル\(\vec{n}\)が正規化された場合は、次式のようになります。
$$H = P – (\vec{n} \cdot \vec{AP}) \vec{n}$$
投影点(垂線の足)のxyz座標
法線ベクトル\(\vec{n}\)、点\(A\)、点\(P\)をそれぞれ、
$$
\vec{n} = \left( \begin{array}{c} n_x \\ n_y \\ n_z \end{array} \right) ,
A = \left( \begin{array}{c} a_x \\ a_y \\ a_z \end{array} \right) ,
P = \left( \begin{array}{c} p_x \\ p_y \\ p_z \end{array} \right)
$$
とすると、投影点\(H\)は次式で表現されます。
$$
H = \left( \begin{array}{c}
p_x – s n_x \\
p_y – s n_y \\
p_z – s n_z
\end{array} \right) \\
$$
$$s = \frac{n_x (p_x – a_x) + n_y (p_y – a_y) + n_z (p_z – a_z)}{n_x^2 + n_y^2 + n_z^2}$$
法線ベクトル\(\vec{n}\)が正規化された場合は、次式のようになります。
$$
H = \left( \begin{array}{c}
p_x – s n_x \\
p_y – s n_y \\
p_z – s n_z
\end{array} \right) \
$$
$$s = n_x (p_x – a_x) + n_y (p_y – a_y) + n_z (p_z – a_z)$$
式の証明
点\(APH\)からなる三角形に着目します。

点\(A\)を通る垂線と\(AP\)とのなす角を\(\theta\)とすると、
$$\begin{eqnarray*}
|\vec{HP}| &=& ||\vec{AP}| \cos \theta| \\
&=& \frac{|\vec{n}| ||\vec{AP}| \cos \theta|}{|\vec{n}|} \\
&=& \frac{|\vec{n} \cdot \vec{AP}|}{|\vec{n}|}
\end{eqnarray*}$$
\(\displaystyle 0 \leq \theta \leq \frac{\pi}{2}\)のとき、\(\vec{n} \cdot \vec{AP} \geq 0\)より、
$$\begin{eqnarray*}
\vec{HP} &=& \frac{|\vec{HP}|}{|\vec{n}|} \vec{n} \\
&=& \frac{\vec{n} \cdot \vec{AP}}{|\vec{n}|^2} \vec{n}
\end{eqnarray*}$$
\(\displaystyle \frac{\pi}{2} < \theta \leq \pi\)のとき、\(\vec{n} \cdot \vec{AP} < 0\)より、
$$\begin{eqnarray*}
\vec{HP} &=& -\frac{|\vec{HP}|}{|\vec{n}|} \vec{n} \\
&=& -\frac{-\vec{n} \cdot \vec{AP}}{|\vec{n}|^2} \vec{n} \\
&=& \frac{\vec{n} \cdot \vec{AP}}{|\vec{n}|^2} \vec{n}
\end{eqnarray*}$$
したがって、
$$\begin{eqnarray*}
H &=& P – \vec{HP} \\
&=& P – \frac{\vec{n} \cdot \vec{AP}}{|\vec{n}|^2} \vec{n}
\end{eqnarray*}$$