我无法想出一个明确的优化目标,但我希望通过一些例子可以传达我想要的主观感觉。
正方形总是具有相同的大小(例如,1000x1000)。多边形可以具有不同的尺寸。有时,多边形可能足够大,一个或多个正方形可以放入其中,有时多边形可能足够小,可以放在正方形内。在后一种情况下,一个正方形应该以多边形的质心为中心。在前一种情况下,一个或多个非重叠的正方形应该或多或少地覆盖多边形。可以不覆盖多边形的整个区域。例如,如果你需要在边框附近放置一个正方形以覆盖剩余的一小块未覆盖区域,那么你不应该这样做,因为正方形的大部分区域都在多边形之外,你会花费一个正方形来增加覆盖区域。
预期解决方案或多或少的示例:
小多边形:
大多边形:
请注意,在小的多边形情况下,浪费很多正方形区域是好的,因为我们需要至少一个方格。但是在大的多边形情况下,很多广场的区域都被浪费了。
我知道我的规格定义不明确,但我希望有人可以猜出我想要的东西,也许可以更好地定义目标。
如果可以在python中显示一些代码来解决它会很棒。如果你使用它会更好,但它不是必需的。
多边形由点(x,y)列表定义,这些点按照它们在列表中出现的顺序连接。
谢谢!
编辑:不应旋转方块。