【问题标题】:How do I write the diamond-square algorithm in C++? [duplicate]如何在 C++ 中编写菱形正方形算法? [复制]
【发布时间】:2012-02-10 05:07:34
【问题描述】:

可能重复:
Diamond square algorithm

我正在尝试使用菱形正方形算法在我的 2D 游戏中生成地形。我找到了许多解释该算法的资源,但没有一个真正展示如何在 C++ 中实现它。我正在创建一个基于图块的游戏,并希望使用该算法生成一个随机世界(水、沙、草、山)。我的计划是使用菱形平方算法的值来确定瓷砖。前任。如果该值小于 1,则为水。如果该值大于 10,则为山。等等。

所以基本上我要问的是,有人有我可以查看和调整的菱形正方形算法的 C++ 示例吗?

【问题讨论】:

  • 我试图翻译它,它部分工作。我得到像this 这样的结果。我很确定我搞砸了。

标签: c++ algorithm random 2d terrain


【解决方案1】:

您可以找到算法 here 的有效 C++ 实现(请参阅噪声函数及其辅助函数)。

另请注意,该实现有点复杂,因为它使用双三次插值来防止菱形平方算法使用标准双线性插值产生的伪影(请参见下图中的尖峰)。

免责声明:我是该项目的作者(请根据 GPLv2 许可条款随意使用代码)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多