分组高程块的算法

时间:2018-10-02 14:02:01

标签: algorithm grouping block

我一直在寻找一种基于邻居对对象进行分组的算法。我看过kd树和四叉树,但是我确定有人已经知道了我的确切情况,并且知道我应该使用的确切算法。

我有一些街区,我需要对它们进行分组以使街区数最少。

假设在左侧图像上所有图块均为1x1块。我想有一种算法可以对它们进行分组,这样我就可以拥有尽可能少的块,可以缩放,并且不必是正方形(它们可以是矩形)。

未分组的框 Ungrouped boxes

该算法可以返回的示例 Example of what the algorithm could return (请注意,这可能不是完美的解决方案,因为我没有检查所有可能性)

我可能最终将用这些块创建一个数组,其中1将是一个块,而0将是虚无。像这样:

[0, 1, 0, 0, 1, 0, 0, 0]
[0, 1, 1, 1, 1, 1, 1, 1]
[0, 1, 1, 1, 1, 1, 1, 0]
[0, 0, 1, 1, 1, 1, 0, 0]
[0, 0, 0, 1, 1, 0, 0, 0]

块始终具有整数比例,没有浮点值。 我还没有任何身高,所以我们可以认为一切都是平坦的。 我也知道我不会有多个“孤岛”,所有的块都连接在一起。

这样做是出于性能考虑(它将在移动设备上运行)。如果对于运行时来说太复杂或太繁琐,我会想出另一种方法,我只想知道这种情况是否有简单的解决方案。

谢谢!

0 个答案:

没有答案