Algorithm 如何实现菱形平方算法?

Algorithm 如何实现菱形平方算法?,algorithm,language-agnostic,terrain,procedural-generation,Algorithm,Language Agnostic,Terrain,Procedural Generation,我在读这篇文章: 上面写着: 这是迭代细分例程的起点, 这分为两个步骤: 菱形步骤:取四个点的正方形,在两条对角线相交的正方形中点生成一个随机值。这个 中点值通过四个角点值的平均值加上 随机数量。当你有多颗钻石时,这会给你钻石 网格中排列的正方形 平方步:取四个点的每个钻石,在钻石中心生成一个随机值。计算中点 通过平均角点值加上生成的随机量获得的值 在与菱形台阶相同的范围内。这会给你正方形 再说一遍 我不明白。取每一个正方形的中点如何构成钻石?每颗钻石的中点是如何形成正方形的 有人能提供语言不可

我在读这篇文章:

上面写着:

这是迭代细分例程的起点, 这分为两个步骤:

菱形步骤:取四个点的正方形,在两条对角线相交的正方形中点生成一个随机值。这个 中点值通过四个角点值的平均值加上 随机数量。当你有多颗钻石时,这会给你钻石 网格中排列的正方形

平方步:取四个点的每个钻石,在钻石中心生成一个随机值。计算中点 通过平均角点值加上生成的随机量获得的值 在与菱形台阶相同的范围内。这会给你正方形 再说一遍

我不明白。取每一个正方形的中点如何构成钻石?每颗钻石的中点是如何形成正方形的

有人能提供语言不可知的代码来说明如何做到这一点吗

编辑:

步骤1:创建网格,并使四个角的高度一致:

* ┬ ┬ ┬ *
├ ┼ ┼ ┼ ┤
├ ┼ ┼ ┼ ┤
├ ┼ ┼ ┼ ┤
* ┴ ┴ ┴ *
步骤2:取正方形的中点,将其设置为所有4个角的平均值加上一个随机值:

* ┬ ┬ ┬ *
├ ┼ ┼ ┼ ┤
├ ┼ * ┼ ┤
├ ┼ ┼ ┼ ┤
* ┴ ┴ ┴ *

现在怎么办?我在任何地方都看不到钻石

将两个方块放在一起:“当网格中有多个方块时,这将为您提供钻石。”同样适用于上方/下方的方块


平方步骤生成一组新的正方形,从第一个偏移,顶点由菱形的中点定义。

初始迭代有些退化。如果你看一下这个链接中的步骤c->d->e,应该会更清楚。钻石只是形成的“当多个正方形排列在网格中时。暂时忘记了远离正方形中心点的随机扰动,您的菱形显示如下:如果您的第一个正方形A位于左侧,顶点为Atl、Atr、Abl、Abr和中点Ac,而您的第二个正方形B位于右侧,顶点为Btr、Btl、Bbr、Bbl和中心Bc,则您的菱形将具有顶点Ac,Atr=Btl,Bc,Bbl=Abr。这些小字母代表t-top、b-bottom、l-left、r-right、c-center。哦,现在有点道理了。@Razorstrom更容易在图表纸上画出整个内容。你可以玩一些有趣的小游戏。哦,这也解释了链接所说的递归实现没有提供足够的钻石步骤信息的意思