c# - 2d-bin-packing 将矩形放置在 x,y 位置的算法?

标签 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 打包的图像示例 enter image description here .

关于c# - 2d-bin-packing 将矩形放置在 x,y 位置的算法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8637785/

相关文章:

c# - 验证列表中的 bool 方法(约束)

C# 如何获取下载文件的大小以显示进度条百分比

java - 如何在渲染 View 之前对其进行屏幕截图或快照?

javascript - jQuery/JS – 单击时滚动到下一个元素(可滚动的 div 问题)

c# - 通过互操作接收字符串

java - Cursor 是否有独立的数据,或者它只是一个指向数据的指针?

java - Prim算法实现错误,Empty Heap

javascript - facebook javascript sdk getLoginStatus() 问题

javascript - Angular - 无法获取父组件数据

c# - 更改Word文档中的文字字体颜色