直線と原点との距離

任意の点と任意の直線との距離の式が欲しくなったので、とりあえず原点と任意の直線(ax+by=c)との距離だけを考える。あとは平行移動させるだけですから。
法線を導いて交点を出して…とやろうとしたところ、挫折。
で、円に着目。直線が円の接線になるとき、その円の半径が距離になります。それで判別式を使って解けるはず。

  1. x=-b/a*y+c/a を x^2+y^2=r^2 に代入して、両辺にa^2かけて整理すると (a^2+b^2)y^2 - 2bcy + c^2-a^2r^2 = 0
  2. (1)方程式の判別式をDとするとD=0になればax+by=cは接線。てことで 4b^2c^2-4(a^2+b^2)(c^2-a^2r^2)=0 の方程式ができます
  3. (2)をr^2について解くと r^2 = c^2/(a^2+b^2)

ここまでやったところ、これでは交点が出ないのでは…と思いました。が、

  1. r^2 = c^2/(a^2+b^2) を x^2+y^2=r^2 に代入して y について解くと y = bc/(a^2+b^2) x^2+y^2=r^2 に r^2 = c^2/(a^2+b^2), x=-b/a*y+c/a を代入して y について解くと、y = bc/(a^2+b^2) (D=0より重根)
  2. (2)を x=-b/a*y+c/a に代入して x = ac/(a^2+b^2)

あっさり出ました。

注: 6/19に一部書き換えました。