如何用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(我是开发人员)可以满足您的需要。
示例
您可以传递任何对象列表,只要它们定义了 height
和 width
属性。这是一个简短的例子:
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/
我正在用 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(我是开发人员)可以满足您的需要。
示例
您可以传递任何对象列表,只要它们定义了 height
和 width
属性。这是一个简短的例子:
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/