1

2Dゲームのロープ物理を作成しようとしているので、開始点として小さな回転画像があり、その最後に別のロープを追加する必要があります。残念ながら、画像の上部で回転が発生するため、画像の下部を追跡するのに問題があります。次のコードを使用して画像の(0,0)座標を追跡できましたが、ポイント(32,57)を追跡できる必要があります。これは私がこれまでに持っているものです:

xr = xm + (xPos - xm) * Math.cos(a) - (yPos - ym) * Math.sin(a);
yr = ym + (xPos - xm) * Math.sin(a) + (yPos - ym) * Math.cos(a);

どんな助けでも大歓迎です!

編集:

だからねえ、私はそれを機能させました= D極座標を使用することは、私が以前に行っていたものよりもはるかに簡単であることがわかりました。

上位2つの変数は一定であり、同じままです。

    theta0 = Math.atan2(y, x);
    r = 25;

    theta = theta0 + a;
    xr = (r * Math.cos(theta)) + xm;
    yr = (r * Math.sin(theta)) + ym;

xmとymは私の画像の位置です。

4

1 に答える 1

1

極座標を使用します。画像の回転点に原点を設定し、お気に入りの角度基準を選択します(たとえば、0度が直接右側にあり、正の回転はそこから反時計回りに進みます)。

この座標系を基準にして、目的の点(32、57)の極座標を計算します。答えは(r, theta)です。

ここで、画像を回転させたときに変化するのは、の値だけですtheta。これで、新しい値を使用してxy座標に戻ることができますtheta

お役に立てれば。

于 2012-10-15T01:57:46.930 に答える