距離とは半径を意味すると思いますので、別の言い方をすれば、「円の中心点も指定して、特定の半径の円の円周上にランダムな点を取得するにはどうすればよいですか」です。
値下げがわかりません。これは単純なC#の質問であり、以下のDaniel DiPaoloによって適切に提供されている単純なC#の回答が必要です。
マークダウンも関連するコメントも、質問を改善したり、回答を提供したりするのに役立ちません。
距離とは半径を意味すると思いますので、別の言い方をすれば、「円の中心点も指定して、特定の半径の円の円周上にランダムな点を取得するにはどうすればよいですか」です。
値下げがわかりません。これは単純なC#の質問であり、以下のDaniel DiPaoloによって適切に提供されている単純なC#の回答が必要です。
マークダウンも関連するコメントも、質問を改善したり、回答を提供したりするのに役立ちません。
中心と半径が固定されている場合、実際に変化するのは角度だけです。したがって、0〜360度(または0〜2πラジアン)のランダムな角度を計算し、それを使用して極座標変換を使用してxy座標を取得します。
x = r × cos( θ )
y = r x sin( θ )
中心のx、y座標をオフセットとして追加すると、座標が得られます。
ランダムな角度を計算し、角度と距離を最初のポイントからの極オフセットとして使用します。
サークルポイントトラッキングをご覧ください。ポイントを選択する方法はいくつかあります。
アルゴリズムコード
与えられた円{[0,0]、1}-{中心、半径}
注意:これは、角度を使用することで、より簡単に、より速く、より均一に分散させることができます。他の回答を参照してください。
私のアルゴリズムの問題は、誰かがそれを使おうとする場合に備えて、円の曲がりくねった形状のために、に近い点が近くにX=r+
あるX=r-
ものよりもピックアップされる頻度が少ないことX=0
です。@Servyによるコメントを参照してください。