用于随机均匀地平铺不同大小的网格的算法

时间:2011-10-31 16:28:13

标签: algorithm geometry 2d

假设N x M网格。在此我需要随机布置尺寸从1x1到I X J网格单元的瓷砖。关键问题是找到一种方法,在相同的次数内使用每种不同的大小,并且相当随机地分布。

作为一个例子,想象一个10 x 20平方英尺的地板,你有1x1,1x2和2x2瓷砖的堆叠,你想要布局地板,你希望设计是随机的,并使用大约相同的数量每个瓷砖。

您也可以反过来考虑问题,将地板切割成这些尺寸的碎片。

我见过树图算法,但它们并不完全符合要求。如果你将碎片限制为1 x I,那么问题就是一维且容易。这是2D版本似乎更难。任何想法或指示都是有帮助的。

放宽(1)随机或(2)类似的需要确实使它更容易,但两者都很重要。我有一些想法,但没有任何感觉。

1 个答案:

答案 0 :(得分:0)

一种替代解决方案是随机排序您的图块并使用空间索引来填充网格。这个想法是空间索引将网格细分为2维,以便您可以检查四边形。否则,您希望使用DFS来找到最佳解决方案。