我想知道是否有人知道任何适合将 N 个未知大小的矩形组合成尽可能小的包含矩形的算法。
最佳我的意思是减少生成的包含矩形中剩余的空白量。
我想用它从一系列图像中生成 css 精灵。
非常感谢,
伊恩
我想知道是否有人知道任何适合将 N 个未知大小的矩形组合成尽可能小的包含矩形的算法。
最佳我的意思是减少生成的包含矩形中剩余的空白量。
我想用它从一系列图像中生成 css 精灵。
非常感谢,
伊恩
我认为您所描述的是“二维装箱”问题的变体。唯一的区别是您拥有这些项目并试图找到最小的矩形。
这篇调查文章是一个好的开始。
通过将图像打包成方形纹理和西蒙的答案,我得到了这个链接http://code.activestate.com/recipes/442299/
我没有检查食谱,但它似乎允许使用非方形容器。
保证和最佳解决方案的唯一方法是暴力破解答案。当您有多个矩形时,这对于个人计算机来说很快就会变得难以管理,并允许旋转。
维基百科有一篇关于包装问题的好文章 http://en.wikipedia.org/wiki/Packing_problem
这是快速打包算法的一个很好的描述 - http://www.codeproject.com/KB/web-image/rectanglepacker.aspx