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

Posted

技术标签:

【中文标题】以最佳方式将矩形组合在一起【英文标题】:Fitting rectangles together in optimal fashion 【发布时间】:2011-03-01 05:31:02 【问题描述】:

我想知道是否有人知道任何适合将 N 个未知大小的矩形组合成尽可能小的包含矩形的算法。

优化是指减少生成的包含矩形中剩余的空白量。

我想用它从一系列图像中生成 css 精灵。

非常感谢,

伊恩

【问题讨论】:

为什么包含的形状也必须是方形的?为什么不能是长方形而不是正方形? 好点。我的意思是矩形。我会编辑。 google.com/search?q=rectangle+packing+algorithm 【参考方案1】:

我认为您所描述的是“二维装箱”问题的变体。唯一的区别是您拥有这些项目并试图找到最小的矩形。

This 调查文章是一个好的开始。

【讨论】:

【参考方案2】:

这里很好地描述了一个快速打包算法——http://www.codeproject.com/KB/web-image/rectanglepacker.aspx

【讨论】:

【参考方案3】:

保证最佳解决方案的唯一方法是暴力破解答案。当您有多个矩形并允许旋转时,这对于个人计算机来说很快就会变得难以管理。

***有一篇关于包装问题的好文章 http://en.wikipedia.org/wiki/Packing_problem

【讨论】:

【参考方案4】:

通过packing images into square texture 和Simon 的回答我得到了这个链接http://code.activestate.com/recipes/442299/

我没有检查配方,但它似乎允许使用非方形容器。

【讨论】:

以上是关于以最佳方式将矩形组合在一起的主要内容,如果未能解决你的问题,请参考以下文章

将 LIMITed SELECT 和总 COUNT 组合在一起?

SVG 矩形在 Firefox 中而不是 Chrome/Safari 中组合在一起

创建表格的最佳方式,其中包含产品选项和版本的每种可能组合

GDI-ExtSelectClipRgn将指定区域与当前剪辑区域组合在一起

VBA,语法,将单元格范围组合在一起以获取公共变量

Java编程的逻辑 (94) - 组合式异步编程