マウスドラッグで自由にベクトルを描き,モーメントの和を求めるプログラムを書いているとき,
ベクトルと回転軸との距離を求めるのに手間取ってしまったのでメモ.
回転軸を(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割り防御)
よくよく見るとすごく簡単なことなのに,何故か手間取りました.
そして現在はモーメントの正負の決定法でまた手間取っています.
ベクトルと回転軸との距離を求めるのに手間取ってしまったのでメモ.
回転軸を(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割り防御)
よくよく見るとすごく簡単なことなのに,何故か手間取りました.
そして現在はモーメントの正負の決定法でまた手間取っています.