直線と点の距離

いきなりですが問題。

空間上に3点ABCがある。点Cから直線ABにおろす垂線の長さLを求めよ。

この問題、3次元以下なら外積を使えば簡単に出せる。ベクトルABとACがつくる平行四辺形の面積を考えると、ひとつは外積の絶対値、もう一つは底辺×高さで求まるのでそのまま方程式を立てて、
 |\vec{AB}\times\vec{AC}| = L |\vec{AB}|
より、
 L = \frac{|\vec{AB}\times\vec{AC}|}{|\vec{AB}|}

では一般次元ならどうか?4次元以上は外積が使えないので、ここは内積を使う。
ベクトルABとベクトルACのなす角をθとすると、求めたい部分は
 L = |\vec{AB}|sin\theta
ここで、sinθは、
 sin\theta = \sqrt{1 - cos\theta}
cosθは
 cos\theta = \frac{\vec{AB} \cdot \vec{AC}}{|\vec{AB}||\vec{AC}|}
なので、まとめると、
 L = \sqrt{\frac{|\vec{AB}|^2|\vec{AC}|^2-(\vec{AB}\cdot\vec{AC})^2}{|\vec{AB}|^2}}
もしくは、一部約分して
 L = \sqrt{|\vec{AC}|^2-\frac{(\vec{AB}\cdot\vec{AC})^2}{|\vec{AB}|^2}}
となる。


だから何と言われそうだが、ちょっと仕事で必要になったので計算してみました。