找到填充容器的矩形的最大大小

时间:2012-01-22 06:45:17

标签: algorithm packing

我有一个宽度和高度一定的容器。我有一堆块需要放在容器中,但是我需要计算这些块可以适合的最大尺寸。

例如:

enter image description here

为:

enter image description here

我猜它与此question类似,但他的代码是jquery并适用于文本。我想要伪代码或某种形式的算法如何做到这一点。

1 个答案:

答案 0 :(得分:1)

假设,如图所示,所有块具有相同的高度和方向,您可以创建一个具有块长度的数组A

如果目标是在给定的边界矩形中最佳地打包块,则求解subset sum problem以找到最接近最大长度的块集而不是更大。删除第一行的那些块,然后用剩余的块重复该过程。

如果目标是找到最小(按区域)的边界矩形,那么您应该看看本文:Fast Optimizing Rectangle Packing Algorithm for Building CSS Sprites。它还涵盖了块的高度可能变化的情况。

如果块可以有不同的方向,那么问题就更难了packing problem