随机平铺布局

Ste*_*man 11 algorithm math grid layout tiles

我需要将瓷砖放在从中心点辐射的大网格上,看起来是有机和随机的.新的瓷砖需要在网格上找到至少接触另一个瓷砖的开放空间.

任何人都可以指出我有权指导任何可能有助于此的事情吗?或者我能读到的一些基本概念就是这样吗?

例如,在这张图片中,有一个已经创建的形状(黄色),我可能正在接收一个新的图块,可能是1x1,2x2或3x3.试图找到一个好方法来找出我可以放置新瓷砖的位置,以便它将触及最大量的当前瓷砖.

图片: 替代文字http://osomer.com/grid.JPG

Jus*_* L. 3

或者,您可以通过黄色瓷砖“侵蚀”蓝色/背景来解决此问题。为此,在每一步中,让黄色图块将固定数字添加到与它沿基本方向相邻的所有背景图块的“侵蚀和” E(也许可能是与它对角线相邻的背景图块的一小部分) )。

然后,当需要放置新图块时,您可以为每个背景图块选择一个从 0 到E的随机数;最伟大的一个被“侵蚀”掉了。或者,您可以进行简单的加权随机选择,其中E是它们的权重。

对于 2x2 或 3x3 瓷砖,您只能从适合其中“适合”2x2 或 3x3 正方形的瓷砖中挑选(即,边缘有侵蚀的 2x2 或 3x3 瓷砖,这样就不会导致与已经-的重叠)放置的瓷砖)。但实际上,你永远不会得到像一对一侵蚀/瓷砖放置那样自然的东西。

您可以通过让侵蚀总和在每次迭代中持续存在来节省重新计算侵蚀总和的时间,仅当您添加新图块时,增加其周围的侵蚀总和(简单的+=)。在这一点上,它与另一个建议的答案本质上是相同的,尽管具有不同的观点/哲学。

侵蚀和E的样本网格,直接基数邻居为 +4,对角邻居为 +1:

侵蚀总和 http://img199.imageshack.us/img199/4766/erosion.png

E较高的最有可能被“侵蚀”掉;例如,在这个例子中,西面和南面的两个小海湾最有可能被黄色侵蚀掉,其次是北面和东面的较小海湾。最不可能的是那些几乎一角触及黄色的球。您可以通过为每个图块分配一个从 0 到E的随机数并侵蚀具有最高随机数的随机数,或者进行简单的加权随机选择,或者通过您选择的任何决策方法来决定哪一个。