通知
すべてクリア
Topic starter
2008年4月24日 5:58 PM
少しプログラムと趣旨がずれるかもしれませんが、、、、
2点間 A(x,y) B(x,y)のなすタンジェント角度の求め方を
ご存知の方、ご教授願えますでしょうか?
どのようなコードで実現可能でしょうか?
以上宜しくお願い致します。
開発環境VC++6.0 XP
2008年4月24日 6:03 PM
atanとatan2について調べると良いでしょう。
2008年4月24日 6:12 PM
2点間がなす角がわかりません。
角をなすには少なくとも3点ないと。
2008年4月25日 7:45 AM
普通に数学として解けばいい問題なんだろうな。
でもタンジェント角度がわからないので俺にはとけない。
推測だけど
(Ax,Ay) (Bx,By)を通過する直線、これのy=ax+bのaを求めなさい。
みたいなことかな。
0割とかに注意する必要があるな。
2008年4月25日 9:00 AM
> 推測だけど
> (Ax,Ay) (Bx,By)を通過する直線、これのy=ax+bのaを求めなさい。
> みたいなことかな。
もしもそうならアホみたいな問題だ。
求める傾き = Δy/Δx = (By - Ay) / (Bx - Ax)
# 角度なら atan2(Bx-Ax, By-Ay);
# こんなのわざわざ訊くよなもんかなぁ...
2008年4月30日 7:51 AM
位置ベクトルA(x0,y0) B(x1,y1)がなす角なら、
内積を利用する方法がありますが
2008年4月30日 10:13 AM
A,Bが原点O(0,0)を挟む角AOB なら内積で求まりますね。
A・B = |A||B|cosθ なので
cosθ = A・B / |A||B|
けどそげなことせいでも atan2(B)-atan2(A) でいぃんぢゃね?