如何用nodejs打包二维盒子?

How to pack 2D boxes with nodejs?

我正在用 node js 开发一个 web 应用程序,我需要使用装箱算法来找到最优解。我可以尝试自己做一个算法 (http://en.wikipedia.org/wiki/Packing_problems),但我想知道是否已经存在这样的算法?有什么想法吗?

目前我有一组看起来像这样的对象。

var box = [
    {info: 'some info', width:200, height: 50},
    {info: 'some info', width:200, height: 50}
];

而且我想要 (x,y) 坐标,以了解将每个盒子打包到 2D 中的位置 space。

您有 backpacking node js module(我是开发人员)可以满足您的需要。

示例

您可以传递任何对象列表,只要它们定义了 heightwidth 属性。这是一个简短的例子:

var BackPack = require("backpacking");

var boxes = [];
for(var i = 0; i<20; i++){
    var width = Math.floor(Math.random() * (20 - 5 + 1)) + 5;
    var height = Math.floor(Math.random() * (20 - 5 + 1)) + 5;
    boxes.push({info: 'box_'+i, 'width': width, 'height': height});
}

// Define the width and the height of the container where you want to pack your boxes.
backPack = new BackPack(40, 10000);

// Here you have the packedBoxes with de x and y coordinates.
packedBoxes = backPack.pack(boxes);

免责声明

解决方案不是最优的。但它是一种快速算法。下个月包装质量要提高

更多信息

查看 github.com 自述文件了解更多详细信息 https://github.com/paulfournel/backpacking/