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