algorithm - 找到填充容器的最大矩形尺寸

标签 algorithm packing

我有一个容器,有一定的宽度和高度。我有一堆 block 需要放入容器中,但我需要计算这些 block 可以容纳的最大尺寸。

例如:

enter image description here

到:

enter image description here

我猜它类似于这个question但他的代码是 jquery 并且适用于文本。我只想要伪代码或某种形式的算法来说明如何执行此操作。

最佳答案

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

如果目标是在给定的边界矩形中最优地打包 block ,那么解决 subset sum problem找到最接近最大长度但又不会变大的一组 block 。删除第一行的那些 block ,并对其余 block 重复该过程。

如果目标是找到最小的(面积)边界矩形,那么您应该看看这篇论文:Fast Optimizing Rectangle Packing Algorithm for Building CSS Sprites .它还涵盖了 block 的高度可能不同的情况。

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

关于algorithm - 找到填充容器的最大矩形尺寸,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8959533/

相关文章:

python tkinter 打包

python - Numpy 将二进制字符串解包为单个变量

c - 对 C 结构中两个连续点的包装做出假设是否安全?

algorithm - 不同质数的乘积作为完全平方和

algorithm - 判断线段的方向是顺时针还是逆时针

algorithm - 如何返回这个 F# minimax 中最好的第一级?

algorithm - 以最佳方式将矩形组合在一起

python - 将不同大小的矩形放入圆形的优雅算法是什么?

algorithm - 基本算法书,需要说明

将值范围内的元素分类为簇的算法?