-2

距離とは半径を意味すると思いますので、別の言い方をすれば、「円の中心点も指定して、特定の半径の円の円周上にランダムな点を取得するにはどうすればよいですか」です。

値下げがわかりません。これは単純なC#の質問であり、以下のDaniel DiPaoloによって適切に提供されている単純なC#の回答が必要です。

マークダウンも関連するコメントも、質問を改善したり、回答を提供したりするのに役立ちません。

4

4 に答える 4

8

中心と半径が固定されている場合、実際に変化するのは角度だけです。したがって、0〜360度(または0〜2πラジアン)のランダムな角度を計算し、それを使用して極座標変換を使用してxy座標を取得します。

x = r × cos( θ )
y = r x sin( θ )

中心のx、y座標をオフセットとして追加すると、座標が得られます。

于 2012-07-16T16:08:18.103 に答える
7

ランダムな角度を計算し、角度と距離を最初のポイントからの極オフセットとして使用します。

于 2012-07-16T16:05:45.453 に答える
0

サークルポイントトラッキングをご覧ください。ポイントを選択する方法はいくつかあります。

于 2012-07-16T16:07:29.043 に答える
0

アルゴリズムコード

与えられた円{[0,0]、1}-{中心、半径}

  1. x => [-1、1]から乱数xを取得します
  2. y+またはy - =>正または負のy四半期をランダムに選択します(たとえば、0または1)
  3. y =>垂直線x=X1(ステップ1から)と円の交点を取得し、正または負の四半期(ステップ2から)を選択します

注意:これは、角度を使用することで、より簡単に、より速く、より均一に分散させることができます。他の回答を参照してください。

私のアルゴリズムの問​​題は、誰かがそれを使おうとする場合に備えて、円の曲がりくねった形状のために、に近い点が近くにX=r+あるX=r-ものよりもピックアップされる頻度が少ないことX=0です。@Servyによるコメントを参照してください。

于 2012-07-16T16:11:46.053 に答える