Processing math: 100%

点と直線の距離

160528 初版 160528 更新
 点P (x1,y1) と直線 ℓ: ax+by+c=0 の距離 d を計算してみましょう。 正射影ベクトルを使う考えがありますが, ここでは,直接計算してみます。
 P を通り ℓ と垂直な直線ℓ' と ℓ との交点を H (x0,y0) とします。 ここで,
d = PH = (x1x0)2+(y1y0)2 … ①
これを計算すればよいことになります。
 ℓ' の方程式は,bxay=bx1ay1 ですから, (x0,y0) について,
b(x1x0)a(y1y0)=0 … ②
が成り立ちます。
 H は ℓ 上の点ですから,ax0+by0+c=0. 少し変形して,
a(x1x0)+b(y1y0)=c … ③
が成り立ちます。 ここで,c=ax1+by1+c
 ② ③ を (x1x0,y1y0) についての連立方程式とみて解けば,
(x1x0,y1y0) =(aca2+b2,bca2+b2)
 よって,d = (c)2a2+b2, すなわち,
d=|ax1+by1+c|a2+b2