#algorithm #packing #rectangle #bin #2d #numbers #boxes

bin+lib max_rects

二维装箱中最大矩形的算法实现

3 个稳定版本

1.0.2 2023年9月28日

#688图像

MIT 许可证

34KB
564

Max Rects

Jukka Jylänki 的二维装箱中最大矩形的算法实现。此crate使用MaxRects算法高效地将给定数量的箱子装入指定数量的箱子中,并生成装箱结果的可视化。

这是为了学习Rust和我的一个最喜欢的算法而创建的。包括一个png生成器来可视化结果

Output Image

特性

  • MaxRects算法的高效装箱实现。
  • 生成可视化输出以理解装箱结果。

使用方法

  1. 将此仓库克隆到本地机器。
git clone https://github.com/jeremycg/max_rects.git
cd max_rects
  1. 运行程序,指定所需的箱子和箱子数量。
cargo run -- -b 50 -n 10
  1. 您还可以在自己的代码中导入并使用此crate
use max_rects::{Bucket, MaxRects, PackingBox};

fn main() {
        let boxes = vec![PackingBox::new(5, 6), PackingBox::new(4, 4)];
        let bins = vec![Bucket::new(10, 20, 0, 0, 1)];
        let mut max_rects = MaxRects::new(boxes, bins);
        let (placed, remaining, updated_bins) = max_rects.place();
}

命令行参数

  • -b 或 --boxes: 设置要放置的箱子数量(必需)。
  • -n 或 --bins: 设置要装箱的箱子数量(必需)。

文档

您可以通过运行来生成此crate的文档

cargo doc --open

许可证

本项目采用MIT许可证 - 有关详细信息,请参阅LICENSE.md文件。

贡献

请随时提交问题和拉取请求,我们感谢您的帮助!

依赖关系

~19MB
~178K SLoC