ランダムな高さマップを作成したので、川を作成します。私はa *に基づいてアルゴリズムを作成し、川をピークから海に流しました。今では、それらをレンダリングするためのエレガントなアルゴリズムを考え出そうとしています。
これは2Dの正方形のマップグリッドです。川が通過するセルには、次の形式の単純な整数値があります:rivernumber && pointOrder。つまり、10、11、12、13、14、15、16 ... 1 + Nは最初の川、20、21、22、23 ... 2 + Nは2番目の川などです。これは、グリッド生成時間をマップし、ワールドが生成されるときに一度だけ実行されます。
各河川をベクトルとして扱いたかったのですが、同じ河川に枝がある場合(ノイズを入れて枝を生成するため)、点を順番に接続できないという問題があります。
2番目の代替案は、各ポイントを分析し、次が分岐でないかどうかを確認する複雑なアルゴリズムを生成することです。そうでない場合は、分岐を処理する別のアルゴリズムをトリガーしてから、本川に戻ります。非常に複雑で洗練されていません。
おそらく、これらのケースで一般的に使用されているワールド生成アルゴリズムまたはリバーレンダリングアルゴリズムに解決策があり、私にはわかりません。
任意のヒント?ありがとう!!