以最佳方式将矩形组合在一起
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 中组合在一起