【发布时间】:2017-09-04 18:36:51
【问题描述】:
嗨,我在左边有一个乱七八糟的东西,它几乎是一个带有一些孔的矩形阵列(标记为红色)。我正在寻找一种方法来组合它们,以使我最终得到尽可能少的矩形,并且最好让它们中的大多数尽可能接近正方形。看右边的图片,这就是我想要完成的事情,只是更漂亮一点,最好更自动化一点。
我在游戏中需要这个,它不会在运行时完成,所以速度并不是一个真正的问题(除非它非常慢,因为我必须在相当大的区域内完成)但我从来没有以前做这样的事情,老实说,我什至不知道从哪里开始。
我已经尝试过暴力破解数组,从左上角的正方形开始并进行某种合并,直到没有任何东西可以合并,但它确实效率不高,因为它不能考虑合并矩形 3x2、4x3、等等。
如果您能指出任何可以处理此类事情的算法,或者知道如何实现这一点,我们将不胜感激。谢谢!
【问题讨论】:
-
不久前我遇到了一个类似的问题:stackoverflow.com/questions/11002205/… 但是在我的情况下,生成的矩形可能会重叠。也许您可以调整一下,找到所有最大尺寸的重叠矩形,然后对于被多个矩形覆盖的每个区域,将其添加到这些矩形之一。
-
我完全理解,矩形是通过在一个大矩形上绘制垂直/水平线然后选择一些随机创建的矩形作为“红色”矩形创建的吗?
-
不,我从一张只有红色矩形的工作表开始,然后在它们周围切割整张工作表。
标签: algorithm merge rectangles