我要寻找一些指针算法,应该允许瓷砖没有重叠不同大小的矩形。
给定一组不同尺寸的矩形,瓦片他们的大小高x的区域W的没有重叠。 其目标是最大限度地使用或相反的空间 - 尽量缩小差距的领域。 如果没有足够的空间,请在同尺寸等的第二区域。
据推测,各矩形的宽度和高度比矩形区域的各个尺寸。 矩形是不旋转或以其它方式转化 - 即它们的边是水平或垂直的。
我不是在找完成的代码,只是好奇,什么样的方法/算法是最好的使用来解决这个问题。
我要寻找一些指针算法,应该允许瓷砖没有重叠不同大小的矩形。
给定一组不同尺寸的矩形,瓦片他们的大小高x的区域W的没有重叠。 其目标是最大限度地使用或相反的空间 - 尽量缩小差距的领域。 如果没有足够的空间,请在同尺寸等的第二区域。
据推测,各矩形的宽度和高度比矩形区域的各个尺寸。 矩形是不旋转或以其它方式转化 - 即它们的边是水平或垂直的。
我不是在找完成的代码,只是好奇,什么样的方法/算法是最好的使用来解决这个问题。
最简单的就是用kd树树细分为垂直和水平euklidian二维空间。 然后你就可以收拾一个矩形创建的空间之一,递归细分树。 有是一个jQuery插件树状图例如可在网上。 该jQuery插件砖石可以做同样的,但它更像是一维装箱求解。 2D装箱要复杂得多,也可能意味着旋转矩形。 下面是包装光照贴图的例子: http://www.blackpawn.com/texts/lightmaps/default.html 。
我有一个想法,能走在正确的方向。 这样做是为了跟踪瓦片面积比VS白色区域的边界框。
输入:无序集合输入的矩形输出:填充区域
还有一些点来定义 - 如何最好地确定边界框的地方吗? 如何征收边框越来越多的限制? 如何有效地找到最好的边框?