質問です
2Dでの話です
同じ大きさの丸Aと丸Bが動いているのですが、AとBが衝突したとき、それを完全弾性衝突であるかのように処理をしたいのです。
GetX(A)とGetY(A)でAのXY座標、GetSpeed(A)でAのスピード、
GetAngle(A)でAの進行方向角度(右を0とし、真下を90とするdeg。ただし、0〜360の間の数値であるとは限らない。)
が求めることが出来ます。
SetX(A,50)とやればAのX座標を変更出来ます。もちろんY座標、スピード、
Bについても同様です。
平方根の計算は2^0.5のようにしないといけません。

dist_x = GetX(A) - GetX(B)
dist_y = GetY(A) - GetY(B)
dist = (dist_x * dist_x + dist_y * dist_y)^0.5
if(dist == 0){dist = 0.01}
dist_px = dist_x / dist
dist_py = dist_y / dist
SetX(A,GetX(A)+dist_px * (32.0 - dist) / 2.0)
SetY(A,GetY(A)+dist_px * (32.0 - dist) / 2.0)
SetX(B,GetX(B)-dist_px * (32.0 - dist) / 2.0)
SetY(B,GetY(B)-dist_px * (32.0 - dist) / 2.0)

ここまではできたのですが、
ここからAとBのX成分の速度、Y成分の速度を求めたいのですが、
いい方法はありませんか?
sin cos tanとその逆関数は使えます。