N_ha
  • Home
  • Posts

点と直線の距離の導出

数学

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

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

点と直線の距離

点 (x1,y1)(x_1,y_1)(x1​,y1​) と直線 ax+by+c=0ax+by+c=0ax+by+c=0 の距離 ddd は

d=∣ax1+by1+c∣a2+b2d=\frac{|ax_1+by_1+c|}{\sqrt{a^2+b^2}}d=a2+b2​∣ax1​+by1​+c∣​

導出

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

点 PPP と直線 lll を xxx 軸方向に −x1-x_1−x1​ 、 yyy 軸方向に −y1-y_1−y1​ だけ平行移動する。このとき、点 PPP は原点 OOO に、直線 lll はそれと平行な直線に移る。この lll が移った先の直線を l′l'l′ とする。

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

a{x−(−x1)}+b{y−(−y1)}+c=0⇔ax+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}a{x−(−x1​)}+b{y−(−y1​)}+c⇔ax+by+(ax1​+by1​+c)​=0=0​

求める距離 ddd は、原点 OOO と直線 l′l'l′ の距離に等しいのでこれを求める。

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

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

(x0,y0)(x_0,y_0)(x0​,y0​) は以下の連立方程式の解なので、これを解く。以下、 a≠0a\neq0a=0 かつ b≠0b\neq0b=0 であることに注意する。

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

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

bx−ay=0⇔y=bax⋯(3)\begin{aligned} bx-ay&=0\\ \Leftrightarrow y&=\frac{b}{a}x&\cdots(3) \end{aligned}bx−ay⇔y​=0=ab​x​⋯(3)​

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

ax+by+c′=0⇔ax+b⋅bax+c′=0⇔a2+b2ax=−c′⇔x=−ac′a2+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}ax+by+c′⇔ax+b⋅ab​x+c′⇔aa2+b2​x⇔x​=0=0=−c′=−a2+b2ac′​​

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

y=bax=ba⋅(−ac′a2+b2)=−bc′a2+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}y​=ab​x=ab​⋅(−a2+b2ac′​)=−a2+b2bc′​​

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

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

OH=x02+y02=(−ac′a2+b2)2+(−bc′a2+b2)2=(a2+b2)c′2(a2+b2)2=c′2a2+b2=∣c′∣a2+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}OH​=x02​+y02​​=(−a2+b2ac′​)2+(−a2+b2bc′​)2​=(a2+b2)2(a2+b2)c′2​​=a2+b2c′2​​=a2+b2​∣c′∣​​

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

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