点と直線の距離

160528 初版 160528 更新
 点P \((x_1, y_1)\) と直線 ℓ: \(ax+by+c=0\) の距離 d を計算してみましょう。 正射影ベクトルを使う考えがありますが, ここでは,直接計算してみます。
 P を通り ℓ と垂直な直線ℓ' と ℓ との交点を H \((x_0, y_0)\) とします。 ここで,
d = PH = \(\sqrt{(x_1-x_0)^2+(y_1-y_0)^2}\) … ①
これを計算すればよいことになります。
 ℓ' の方程式は,\(bx-ay=bx_1-ay_1\) ですから, \((x_0, y_0)\) について,
\(b(x_1-x_0)-a(y_1-y_0)=0\) … ②
が成り立ちます。
 H は ℓ 上の点ですから,\(ax_0+by_0+c=0\). 少し変形して,
\(a(x_1-x_0)+b(y_1-y_0)=c^\prime\) … ③
が成り立ちます。 ここで,\(c^\prime=ax_1+by_1+c\)
 ② ③ を \((x_1-x_0, y_1-y_0)\) についての連立方程式とみて解けば,
\((x_1-x_0, y_1-y_0)\) \(=(\dfrac{ac^\prime}{a^2+b^2}, \dfrac{bc^\prime}{a^2+b^2})\)
 よって,d = \(\sqrt{\dfrac{(c^\prime)^2}{a^2+b^2}}\), すなわち,
d\(=\dfrac{|ax_1+by_1+c|}{\sqrt{a^2+b^2}}\)