【问题标题】:2d-bin-packing Algorithm to place a rectangle in x,y location? [closed]2d-bin-packing算法将矩形放置在x,y位置? [关闭]
【发布时间】:2011-12-26 17:21:52
【问题描述】:

我正在画布中实现 2d-bin-packing 算法。我的任务是尽可能将矩形放置在画布上。

下面显示了如何做到这一点: http://incise.org/2d-bin-packing-with-javascript-and-canvas.html

但是,它从原点开始。我想告诉算法把一个矩形放在哪里,下一个不要放在他上面。

代码中应该改变什么?

还有其他算法可以使用吗?

【问题讨论】:

  • 使用什么语言?您已放置 4 个语言标签。

标签: c# java javascript c++ algorithm


【解决方案1】:

我知道一种比您链接到的算法更好的算法(在紧凑性方面,而不是速度方面)称为 MaxRects。

This 是我用 C++ 实现的。虽然速度不快,但在紧凑包装方面非常有效。

This 是一个 pdf,讨论和比较各种算法的时间和紧凑性。

编辑:

我整理了一个使用 MaxRects 打包的图像示例。

【讨论】:

  • 哇!多么棒的参考!
  • 这看起来像是一张包装好的照片。
  • 谢谢伊桑!问题是这个算法是否可以有一个 x y 以将第一个矩形放在 x y 位置开始,如果没有,算法会将它放在不同的位置..可以吗?
  • @EliKd 查看我的代码的第 76 行。这是实际选择盒子位置的代码。这部分需要更改以使矩形转到其他地方。请注意,这也会强制更改逻辑的其他部分。
  • 阅读该 pdf 文件以便更好地理解算法。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多