ソフトウェア開発したい日記

「面白い!」と思った頭の体操や、数学の問題を載せていきます
その他ロードバイクででかけた先の写真や、ソフト開発のメモ等

点と直線の距離

2011年02月25日 00時55分12秒 | ソフト開発日記
マウスドラッグで自由にベクトルを描き,モーメントの和を求めるプログラムを書いているとき,
ベクトルと回転軸との距離を求めるのに手間取ってしまったのでメモ.

回転軸を(x0, y0)
ベクトルの始点座標を(x1, y1)
ベクトルの終点座標を(x2, y2)

とすると,傾きは
a = (y2 - y1) / (x2 - x1)

切片は
b = y2 - (a * x2)

距離は
d = |y0 - a * x0 - b| / √(1 + a^2)

また,(x2-x1)の値が0(あるいは0.00001未満くらい)のときの距離は
d = (x2 - x0) (0割り防御)

よくよく見るとすごく簡単なことなのに,何故か手間取りました.
そして現在はモーメントの正負の決定法でまた手間取っています.