2016-05-26 8 views
0

散在するゲームを作りましたxポイント数。散布点アルゴリズムを生成する

  • ポイントは、各点は、少なくともDISTANCE離れ任意であるよう
  • 点を広げなければならない他のポイントと重複しないことがあります。全ての点がw

    点がこれらの規則に従わなければならない一定の半径を有します他の点。

これを実行する効率的なアルゴリズムをリストしてください。

私はSwift Sprite-Kitでもこのゲームを作っています。だから、あなたがいくつかのSprite-Kitを知っているなら、それをあなたの答えに実装することができます。そうでなければSwiftまたはSprite-Kitを知らなければ、あなたは言葉で説明することができます。

+0

「すべての点に一定の半径wがあります」とはどういう意味ですか?ポイントは実際に球ですか? – vcp

+0

はいすべての点は球です – Entitize

答えて

1

あなたの2つの制約は同等です。これは、任意の2点間の距離が少なくともmax(w, DISTANCE)でなければならないことを意味します。

最も簡単な方法は、ランダムな点を生成し、以前の点までの最小距離を確認することです。制約が満たされていない場合は、新しいポイントを生成するだけです。あなたは単純なグリッド(グリッドセル内のポイントを配置し、次に重複ポイントを含む可能性のあるセルをチェックするだけ)で距離チェックをスピードアップすることができます。