点と直線の距離の導出

作成日 2022年6月28日火曜日

更新日 2026年1月23日金曜日

点と直線の距離

(x1,y1)(x_1,y_1) と直線 ax+by+c=0ax+by+c=0 の距離 dd

d=ax1+by1+ca2+b2d=\frac{|ax_1+by_1+c|}{\sqrt{a^2+b^2}}

導出

P(x1,y1)P(x_1,y_1) と直線 l:ax+by+c=0l:ax+by+c=0 の距離 dd を求める。

PP と直線 llxx 軸方向に x1-x_1yy 軸方向に y1-y_1 だけ平行移動する。このとき、点 PP は原点 OO に、直線 ll はそれと平行な直線に移る。この ll が移った先の直線を ll' とする。

直線 ll' の方程式を求める。

a{x(x1)}+b{y(y1)}+c=0ax+by+(ax1+by1+c)=0\begin{aligned} a\left\{x-(-x_1)\right\}+b\left\{y-(-y_1)\right\}+c&=0\\ \Leftrightarrow ax+by+(ax_1+by_1+c)&=0 \end{aligned}

求める距離 dd は、原点 OO と直線 ll' の距離に等しいのでこれを求める。

c=ax1+by1+cc'=ax_1+by_1+c とする。 このとき、直線 ll' の方程式は ax+by+c=0ax+by+c'=0 となる。

原点を通って直線 ll' に垂直な直線は bxay=0bx-ay=0 となる。この直線と直線 ll' の交点 H(x0,y0)H(x_0,y_0) を求める。

(x0,y0)(x_0,y_0) は以下の連立方程式の解なので、これを解く。以下、 a0a\neq0 かつ b0b\neq0 であることに注意する。

{ax+by+c=0(1)bxay=0(2)\begin{aligned} \begin{cases} ax+by+c'=0&\cdots(1)\\ bx-ay=0&\cdots(2) \end{cases} \end{aligned}

(2)(2) 式を yy について解く。

bxay=0y=bax(3)\begin{aligned} bx-ay&=0\\ \Leftrightarrow y&=\frac{b}{a}x&\cdots(3) \end{aligned}

これを (1)(1) 式に代入して xx について解く。

ax+by+c=0ax+bbax+c=0a2+b2ax=cx=aca2+b2\begin{aligned} ax+by+c'&=0\\ \Leftrightarrow ax+b\cdot\frac{b}{a}x+c'&=0\\ \Leftrightarrow\frac{a^2+b^2}{a}x&=-c'\\ \Leftrightarrow x&=-\frac{ac'}{a^2+b^2} \end{aligned}

これを (3)(3) 式に代入する。

y=bax=ba(aca2+b2)=bca2+b2\begin{aligned} y&=\frac{b}{a}x\\ &=\frac{b}{a}\cdot\left(-\frac{ac'}{a^2+b^2}\right)\\ &=-\frac{bc'}{a^2+b^2} \end{aligned}

以上より、 (x0,y0)=(aca2+b2,bca2+b2)(x_0,y_0)=\left(-\frac{ac'}{a^2+b^2},-\frac{bc'}{a^2+b^2}\right) である。

求める距離 dd は距離 OHOH と等しいのでこれを求める。

OH=x02+y02=(aca2+b2)2+(bca2+b2)2=(a2+b2)c2(a2+b2)2=c2a2+b2=ca2+b2\begin{aligned} OH&=\sqrt{x_0^2+y_0^2}\\ &=\sqrt{\left(-\frac{ac'}{a^2+b^2}\right)^2+\left(-\frac{bc'}{a^2+b^2}\right)^2}\\ &=\sqrt{\frac{(a^2+b^2)c'^2}{(a^2+b^2)^2}}\\ &=\sqrt{\frac{c'^2}{a^2+b^2}}\\ &=\frac{|c'|}{\sqrt{a^2+b^2}} \end{aligned}

よって、求める距離 dd は以下のようになる。

d=ca2+b2=ax1+by1+ca2+b2\begin{aligned} d&=\frac{|c'|}{\sqrt{a^2+b^2}}\\ &=\frac{|ax_1+by_1+c|}{\sqrt{a^2+b^2}} \end{aligned}