cosθ= a・b / |a| |b| でなす角を求められる訳ですが、
0°<=θ<=360°の範囲で求めたい。
外積使おうとしても同じ結果だし、
どんな方法が有りますか。
atan2(y,x)使えば解決しそう。
高校生の教科書読めよ。
945 :
デフォルトの名無しさん:04/09/03 15:29
950越えると一定日数で落ちてしまうので、新スレ必要なら
>>950建てて下さい。
そうなの?
ふつうにacos(a・b / |a| |b|)かと思ったが
>>941 向きも考慮したい(a と b の位置関係が逆になったら角度も逆にしたい)ってこと?
a, b を複素数とみなして、
a' = a / |a|, b' = b / |b|
c = b' / a'
θ = atan2(Im(c), Re(c))
で、-180<θ≦180 の範囲で角度が出る。
>>946 それだけと、角度向きが分からない。
>>947 c = a / b で十分。余計な乗除算は時間の無駄。
しかも範囲は -2π<θ≦2π になる。ラジアンだから。
>>948 細かいこというなら
a = ax + i ay, b = bx + i by として、
c = a / b * |b| = (ax bx + ay * by) + i(ax * by - ay * bx)
とした方が計算コスト低いけどな。
レスありがとうございました
ベクトルを1つずつ0度からの角度をatan2で求めてその差から
求めました。
c = b/a って何を意味するものなんでしょう?
割る事による図形的な意味が分からない。。。
949さんの仰る計算コストという点で自分のしたやり方は無駄が多そうな。というか、絶対そう。
ん、二次元でいいわけね。
>950
複素平面上で考えるといい。
複素数の割り算が極座標形式でどうなるかということ
952 :
デフォルトの名無しさん:04/09/05 10:44
>>950 複素数勉強しる。
一応、複素数の知識無しで説明しとくと、
a = (ax, ay), b = (bx, by)、θ = ∠AOB とすると、
ax * bx + ay * by = |a| |b| cosθ
ax * by - ay * bx = |a| |b| sinθ
θ = atan2(sinθ, cosθ)
= atan2(|a| |b| sinθ, |a| |b| cosθ)
= atan2(ax * by - ay * bx, ax * bx + ay * by)
3Dプログラミングとか見てると
行列とかベクトルってのが出てくるのですが
これらは何なのでしょうか?
>954
大体の感じだが、
ベクトルというのは、空間座標の点
っで、ベクトルに行列を掛けた結果は、
その点の移動(ある平面に関する対象点や、回転、平面への射影など)後の
点の座標を表していると考えればいいんじゃないかな?
>>951 >>953 わかりやすい解説ありがとうございました。m(_ _)m
みなさんのやってたやり方って3Dの計算だったんだ。
2D前提で勝手に思い込んでました。
>>952 スレの立て方がわからない〜。
役立たずですみません。ぐはっ。
960
961 :
デフォルトの名無しさん:04/09/06 07:36
天寿をまっとうさせる為にあげます。
962
963
964
965 :
デフォルトの名無しさん:04/09/06 19:49
おまえら、いくら算数スレだからって、数字書くだけで満足なのか?
967 :
デフォルトの名無しさん:04/09/06 20:55
埋めるだけのためのレスを40も使うスレが良スレなのかと(ry
>>968 その前後に()とか?@とか√とか+-×÷とか記号が並んでなかったかえ?
970
971 :
デフォルトの名無しさん:04/09/06 23:34
973
スレが可愛想。
厨房率高い板だと、950以降は無意味なAAばかりで埋まってくもんなんだけど。
この板って結構1000レス近くまでまともに利用されることが多いよな。
975
977
978
979
980
>>975 この板も厨房率高いけど、厨房とそうでない香具師の棲み分けが
一応成り立ってるのが大きいかも。
気付けばこのスレ2001年から立ってるね。乙
984。
985。
986。
987。
無意味にカウントアップするスレはここですか?
poooooooooooooooooooo!!