2

ランダムなパスを描画する XNA でアプリケーションを開発しています。残念ながら、私はグラフ作成に詳しくないので、少し行き詰まっています。私のアプリケーションは、次のことを行う必要があります。

  1. 原点 (0,0) からランダムな角度を選択します。これは簡単です。
  2. その原点から 16 ピクセル (または指定した任意の距離) 離れた場所に、上記の角度で円を描きます。

(私のひどいフォトショップを許してください)

代替テキスト http://www.refuctored.com/coor.png

(16,16) の 2 番目の円は、原点から 16 ピクセル離れた 45 度の角度を表します。

グラフのポイントを返す距離と角度を渡すメソッドが必要です。すなわち

private Point GetCoordinate(float angle, int distance)
{
   // Do something.
   return new Point(x,y);
}

私はこれが単純であることを知っていますが、エイジアン、私はグラフにかなり慣れていません。何か助けはありますか?

ありがとう、ジョージ

4

4 に答える 4

5

角度が度単位の場合、最初に次のようにします。

angle *= Math.PI / 180;

それで:

return new Point(distance * Math.Cos(angle), distance * Math.Sin(angle));

ちなみに、(16, 16) の点は原点から 16 ピクセル離れていませんが、sqrt(16^2 + 16^2) = sqrt(512) =~ 22.63 ピクセルです。

于 2010-03-26T19:40:36.103 に答える
1
private Point GetCoordinate(float angle, int distance)
{
  float x = cos(angle) * distance;
  float y = sin(angle) * distance;
  return new Point(x, y);
}

三角関数はおそらくラジアンを取ることに注意してください。角度が度の場合は、180/Piで割ります。

于 2010-03-26T19:42:07.697 に答える
0

一般に:

x = d * cos(theta)
y = d * sin(theta)

ここで、d は原点からの距離、theta は角度です。

于 2010-03-26T19:41:09.277 に答える
0

ピタゴラスの定理を学びましょう。次に、このスレッドには、より具体的な詳細が記載されているはずです。

于 2010-03-26T19:41:39.180 に答える