- 201 名前:デフォルトの名無しさん [2007/11/03(土) 04:16:12 ]
-
質問です 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とその逆関数は使えます。
|

|