<分区>
我正在 Canvas 中实现 2d-bin-packing 算法。我的任务是尽可能将矩形放置在 Canvas 上。
下面展示了如何做到这一点: http://incise.org/2d-bin-packing-with-javascript-and-canvas.html
但是,它从原点开始。我想告诉算法在哪里放置一个矩形,下一个不要放在他上面。
代码中应该更改什么?
是否有其他算法可用于它?
标签 c# java javascript c++ algorithm
<分区>
我正在 Canvas 中实现 2d-bin-packing 算法。我的任务是尽可能将矩形放置在 Canvas 上。
下面展示了如何做到这一点: http://incise.org/2d-bin-packing-with-javascript-and-canvas.html
但是,它从原点开始。我想告诉算法在哪里放置一个矩形,下一个不要放在他上面。
代码中应该更改什么?
是否有其他算法可用于它?
最佳答案
我知道一种比您链接到的算法更好的算法(在紧凑性方面,而不是速度方面)称为 MaxRects。
This是我用 C++ 实现的。虽然速度不快,但在紧凑包装方面非常有效。
This是一个 pdf 讨论和比较各种算法的时间和紧凑性。
编辑:
我拼凑了一个使用 MaxRects 打包的图像示例 .
关于c# - 2d-bin-packing 将矩形放置在 x,y 位置的算法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8637785/