借助马尔可夫链理论生成无限线

时间:2011-05-29 20:13:46

标签: java algorithm markov-chains

所以让我现在解释一下我的问题(请重新打开这个问题)。我在考虑一种生成程序线来构建地形的方法时,听说过马尔可夫链理论。

  

生成的主要内容是   可以延伸到无穷大的地图。在   首先我用它构建了一个演示   基于perlin的程序图有一个   很多各种地形特征。它   甚至意味着等距,更多   像哨兵一样。这个   事实证明这太混乱了   随着我的运动机制   心神。我不得不把它减少到很多   更简单的基于瓦片的系统。不是   只是更容易掌握和导航   它看起来也好多了。

     

使用马尔可夫生成地图   链。该算法是短暂的   人造地形序列。然后呢   继续生成任何大小的地图   模仿输入的结构。

因此,示例视觉输出可能如下图所示

enter image description here

实际上我经历了类似的事情,在引文中描述的最后是这个随机行:

enter image description here

因此,我没有使用这条随机线,而是寻找从第一张图片中创建小峡谷的解决方案。我第一次读到关于马尔可夫链的我认为WOW,把人造线作为输入,让算法继续进行,听起来很棒。

那么马尔可夫链理论如何真正帮助创造这种地形?如果您认为有更好的方法,请建议。

  

使用马尔可夫生成地图   链

...困惑我,我认为他们实际上是马尔可夫链算法。

1 个答案:

答案 0 :(得分:2)

我不确定你是否知道马尔可夫链是什么。马尔可夫链是由基于概率的状态转换定义的系统。下一个状态(根据定义)基于先前的状态。

马尔可夫链转换。它是用于修改系统的算法,它只是描述系统。

要描述您的线系统,您需要查看数组中的各个索引并计算“跳转”的概率。最后,你会留下类似于此的东西:

idx 1: 20% chance for a jump
idx 2: 0% chance for a jump
idx 3: 15% chance for a jump
idx 4: 55% chance for a jump
...

这对于编程来说是微不足道的,但它并不能帮助你制作直线。为了使线条直线,您甚至不需要马尔可夫链,只需迭代所有索引并使它们等于前一个索引。很难确切地看到你在这里想要做什么。