概要 線分 (x0,y0) – (x1,y1) と与えられた点 (px,py)との距離をもとめる。 点から線上に垂線をおろし、その垂線の長さを計れば距離が求まる。 手法 簡単にするため、直線(上の点)は、媒介変数 t を使って (x0+dx*t, y0+dy*t)で表すことにする。 垂線と線分のベクトルの内積が0であることを利用して解をもとめる。 例外 垂線の足 (tx,ty) が線分上になければ、線分の端点(x0,y0) ,(x1,y1)のうち、 垂線の足に近い方の端点から与えられた点までの距離を計れば良い。 手順 dx = x1 - x0; dy = y1 - y0 とする。 -- 線分上の点は (x0+dx*t,y0+dy*t) 線分と垂線のベクトルの内積は . (dx,dy)・(x0+dx*t-px,y0+dy*t-py) = (dx^2+dy^2)*t + dx*(x0-px)