0

私の数学はそれほど良くないので、私がしようとしているアプリケーションの1つで、車両を表す長方形が必要で、その車両/長方形が「ドライブ」する場所で少し問題が発生しています。円。車両が1台しかないラウンドアバウトを想像してみてください。

それを行う方法について助けを得ることができれば、例に基づいて構築し、最も重要なことを学ぶことができます。

誰かが私のために簡単な例を書くことができれば、私は感謝するでしょう。背景も画像もありません。長方形が円を描いて「走り回っている」だけです。私はJavaとSwingを使用しています。

4

3 に答える 3

2

申し訳ありませんが、あなたが正確に必要としていることを明確に理解できるかどうかはわかりません。円の内側を動き回る長方形を描く必要がある場合は、sin/cos関数を使用できます。

そんな感じ:

double r = 50.0; // radius (it might radius of your circle, but consider dimensions of rectangle to make sure you are drawing inside of circle, e.g. circleRadius - rectangeDimesion / 2.0)
for (int f = 0; f < 360; f++) {
    double x = Math.sin(Math.toRadians((double)f)) * r;
    double y = Math.cos(Math.toRadians((double)f)) * r;
    // draw rectangle on [x, y] coordinates
}
于 2013-03-14T06:11:41.177 に答える
1

ラウンドアバウトの半径がわかっている場合、必要なのは三角関数と車両がラウンドアバウトに対してなす角度だけです。この簡単な紹介を見て、正しい方向に進むことができます。

一方、別のアプローチは、2つのポイント(X座標とY座標)を含むマトリックスから開始し、それらを新しい座標に変換する変換マトリックスを使用することです。

次に、長方形を回転させて、車両の方向転換を模倣できます。

数学のバックグラウンドが限られている場合は、最初のオプションの方が理解しやすいかもしれません。

于 2013-03-14T06:10:56.997 に答える
1

これは、回答というよりも拡張されたコメントです。

問題をいくつかの簡単な問題に分割し、それぞれを個別に処理します。

  • 指定された中心位置と長軸方向で長方形を描画します。
  • 原点を中心に周回するオブジェクトの中心点と長軸の方向を決定します。長軸を接線にするには、中心を通る半径に垂直である必要があることに注意してください。
  • システム全体を移動して、原点ではなく目的のポイントを周回するようにします。
于 2013-03-14T06:12:16.413 に答える