ランダムな世界を作りたいです。簡単にするために、それぞれ1mのエッジ長を持つセルの2次元グリッドに基づいているとしましょう。
現在、私は単純なアルゴリズムを使用してランダムなフォームを作成しています(森、湖など)。
1. fill a circle of radius r with the wanted property
2. choose 4 points on the edge of this circle and
3. goto (1.) with all those four points as center and r/1.3
ランダムな形の形を作り、円の基底形は通常見えないので、私はこれがやや好きです。
ただし、2つの問題があります。
- 時々(最初の4つのポイントが互いに近すぎるように選択された場合)、森林がどのような基本的な形でできているかが明らかになります
- アルゴリズムはひどくパフォーマンスが悪いです。円は常に重なっているため、セルは何度も何度も塗りつぶされます+これらすべての距離計算など。
だから:ランダムなフォームを作成するためにうまく使用されているアルゴリズムはありますか?私はこれをやりたいと思った最初の人ではないと確信しています...
ランダムな点を選んで凸包を作ることを考えましたが、凸包に限定したくありません。極座標でさまざまな角度にランダムな距離を選択すると、星状領域のみが作成されます。これも、私が望まない制限です...