2012-01-14 28 views
2

可能性の重複:
Diamond square algorithmダイヤモンドスクエアアルゴリズムをC++で書くにはどうすればいいですか?

私は2Dのゲームで地形を生成するために、ダイヤモンドの正方形のアルゴリズムを使用しようとしています。アルゴリズムを説明する多くのリソースが見つかりましたが、C++で実装する方法を実際には示していません。私はタイルベースのゲームを作成しており、ランダムな世界(水、砂、草、山)を生成するアルゴリズムを使用したいと考えています。私の計画は、タイルを決定するためにダイヤモンドスクエアアルゴリズムの値を使用することです。 Ex。値が1未満の場合、水。値が10より大きい場合、山です。等

基本的に私が求めているのは、誰かが私が見て調整できるダイヤモンドスクエアアルゴリズムのC++の例がありますか?

+0

ています。私は[this](http://imgur.com/0rY5D,eq1bb,Mazbu,8thrV,iCg03,BHbU9,kRRql,9oTVR,ACDdA,MiCns)のような結果を得ています。私は何かを台無しにしていると確信しています。 – rmaes4

答えて

6

アルゴリズムhere(ノイズ関数とそのヘルパー関数を参照)の動作中のC++実装を見つけることができます。

バイキュービック補間を使用してダイヤモンドスクエアアルゴリズムが標準の双線形補間(以下の画像のスパイクを参照)を作成するのを防ぐため、この実装はやや複雑です。

enter image description here

免責事項:私はそれを翻訳しようとしましたが、それは部分的に取り組んでいるそのプロジェクトの著者(GPLv2のライセンスの条件の下でコードを使用して自由に感じる)

関連する問題