点と直線の距離・点と平面の距離

POINT

  • 点と直線の距離,点と平面の距離を導く.

イメージ重視の説明にしています.
簡単に覚えて,いつでも思い出せる手法です.

法線ベクトル

法線ベクトル
曲面$f (\boldsymbol{x}) = 0$を考える.$\boldsymbol{\nabla} f(\boldsymbol{x})$は曲面上の点$\boldsymbol{x}$における法線ベクトルである.特に,単位法線ベクトルは$\boldsymbol{\nabla} f(\boldsymbol{x}) / \|\boldsymbol{\nabla} f(\boldsymbol{x}) \|$となる.
【解説】
 点$\boldsymbol{x}$に十分近い領域では,曲面は平面とみなせる.この平面に垂直なベクトルが点$\boldsymbol{x}$における法線ベクトルである.
 $\Delta \boldsymbol{x}$を十分小さくとれば,曲面上の2点$\boldsymbol{x}, \boldsymbol{x} + \Delta \boldsymbol{x}$は,この平面上にあるとみなせる.ここで,
\begin{aligned}
0
&= f(\boldsymbol{x} + \Delta \boldsymbol{x}) - f(\boldsymbol{x}) \\
&\simeq \boldsymbol{\nabla} f(\boldsymbol{x}) \cdot \Delta \boldsymbol{x}
\end{aligned}
であるから,$\boldsymbol{\nabla} f(\boldsymbol{x}) $は$\Delta \boldsymbol{x}$に直交する.$\Delta \boldsymbol{x}$は平面上の任意の点であったから,$\boldsymbol{\nabla} f(\boldsymbol{x}) $はこの平面に直交する.//

点と曲面の距離

 点$\boldsymbol{x}_{0}$(曲面上にあるとは限らない)と,曲面の最短距離を求める.最短距離$d$を与える曲面上の点を$\boldsymbol{x}$とすると,$d = \|\boldsymbol{x}_{0} - \boldsymbol{x}\|$である.

 ベクトル$\boldsymbol{x}_{0} - \boldsymbol{x}$は,法線ベクトル$\boldsymbol{\nabla} f(\boldsymbol{x})$に平行であるから,$\alpha$を比例定数として

\begin{aligned}
\boldsymbol{x}_{0} - \boldsymbol{x}
&= \alpha \frac{\boldsymbol{\nabla} f(\boldsymbol{x})}{\| \boldsymbol{\nabla} f(\boldsymbol{x}) \|}
\end{aligned}
と表せる.単位ベクトル$f(\boldsymbol{x}) / \| \boldsymbol{\nabla} f(\boldsymbol{x}) \|$との内積を取れば
\begin{aligned}
\alpha
&= (\boldsymbol{x}_{0} - \boldsymbol{x}) \cdot \frac{\boldsymbol{\nabla} f(\boldsymbol{x})}{\| \boldsymbol{\nabla} f(\boldsymbol{x}) \|}
\end{aligned}
である.

 よって,点$\boldsymbol{x}_{0}$と曲面の最短距離$d$は

\begin{aligned}
& d=|\alpha| \\
&= \Biggl| (\boldsymbol{x}_{0} - \boldsymbol{x})
\cdot \frac{\boldsymbol{\nabla} f(\boldsymbol{x})}{\| \boldsymbol{\nabla} f(\boldsymbol{x}) \|} \Biggl| \\
&= \frac{| \boldsymbol{\nabla} f(\boldsymbol{x}) \cdot (\boldsymbol{x}_{0} - \boldsymbol{x})|}{\| \boldsymbol{\nabla} f(\boldsymbol{x}) \|}
\end{aligned}
となる.

 この式では,点$\boldsymbol{x}$がわからないため,$d$が計算できないように思える.しかし,以下で見るように「点と直線の距離」,「点と平面の距離」の場合には,$\boldsymbol{x}$がうまく消えるため,計算できる.これらのケースでは,「$\boldsymbol{\nabla} f(\boldsymbol{x})$」と「$\boldsymbol{\nabla} f(\boldsymbol{x}) \cdot \boldsymbol{x}$」が$\boldsymbol{x}$に依存しない定数になるのである.

点と直線の距離

点と直線の距離
点$(x_{0}, y_{0})$と直線$f(x,y) = a x + by + c = 0$の距離は
\begin{aligned}
d
&=\frac{|a x_{0} + by_{0} + c|}{\sqrt{a^{2} + b^{2}}} \\
&=\frac{|f(x_{0} ,y_{0})|}{\sqrt{a^{2} + b^{2}}}
\end{aligned}
【解説】
 $f(x,y)= a x + by + c$であるとき,
\begin{aligned}
\boldsymbol{\nabla} f(\boldsymbol{x})
&=\begin{pmatrix} a \\ b \end{pmatrix}
\end{aligned}
より
\begin{aligned}
& \| \boldsymbol{\nabla} f(\boldsymbol{x}) \|
= \sqrt{a^{2} + b^{2}} \\
& \boldsymbol{\nabla} f(\boldsymbol{x}) \cdot (\boldsymbol{x}_{0} - \boldsymbol{x}) \\
&= \begin{pmatrix} a \\ b \end{pmatrix} \cdot \begin{pmatrix} x_{0} \\ y_{0} \end{pmatrix}
- \begin{pmatrix} a \\ b \end{pmatrix} \cdot \begin{pmatrix} x \\ y \end{pmatrix} \\
&= (a x_{0} + by_{0}) - \underbrace{(a x + by)}_{=-c} \\
&= a x_{0} + by_{0} + c
\end{aligned}
となる($\boldsymbol{x}$が消えていることに注目).

 よって,点と直線の距離は

\begin{aligned}
d
&= \frac{| \boldsymbol{\nabla} f(\boldsymbol{x}) \cdot (\boldsymbol{x}_{0} - \boldsymbol{x})|}{\| \boldsymbol{\nabla} f(\boldsymbol{x}) \|} \\
&=\frac{|a x_{0} + by_{0} + c|}{\sqrt{a^{2} + b^{2}}}
\end{aligned}
となる.//

点と平面の距離

上の結果は,多次元(平面)の場合に簡単に一般化できる.

点と平面の距離
点$\boldsymbol{x}_{0}$と平面$f (\boldsymbol{x}) = \boldsymbol{w}\cdot \boldsymbol{x} + w_{0} = 0$の距離は
\begin{aligned}
d
&= \frac{|\boldsymbol{w}\cdot \boldsymbol{x}_{0} + w_{0}|}{\| \boldsymbol{w} \|} \\
&= \frac{|f(\boldsymbol{x}_{0})|}{\| \boldsymbol{w} \|}
\end{aligned}
【解説】
 $f (\boldsymbol{x}) = \boldsymbol{w}\cdot \boldsymbol{x} + w_{0}$であるとき
\begin{aligned}
\boldsymbol{\nabla} f(\boldsymbol{x})
&= \boldsymbol{w}
\end{aligned}
である.

 曲面上の点$\boldsymbol{x}$に対して,$f (\boldsymbol{x}) = \boldsymbol{w}\cdot \boldsymbol{x} + w_{0} = 0$なので,

\begin{aligned}
d
&= \Biggl| (\boldsymbol{x}_{0} - \boldsymbol{x})
\cdot\frac{\boldsymbol{\nabla} f(\boldsymbol{x})}{\| \boldsymbol{\nabla} f(\boldsymbol{x}) \|}
\Biggr| \\
&= \frac{|\boldsymbol{w}\cdot \boldsymbol{x}_{0} - \boldsymbol{w}\cdot\boldsymbol{x}|}{\| \boldsymbol{w} \|} \\
&= \frac{|\boldsymbol{w}\cdot \boldsymbol{x}_{0} + w_{0}|}{\| \boldsymbol{w} \|} \\
&= \frac{|f(\boldsymbol{x}_{0})|}{\| \boldsymbol{w} \|}
\end{aligned}
となる.//