# Bin-Paking-Algorithm **Repository Path**: dl-study/Bin-Paking-Algorithm ## Basic Information - **Project Name**: Bin-Paking-Algorithm - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-03-22 - **Last Updated**: 2024-03-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Bin-Paking-Algorithm 2019.12.01-2020.1.31 # 二维装箱算法 基于`二叉树`与`叶子链表`算法思维对输入的矩形数据进行动态排版,缩进式树状打印与Opengl绘制显示排版结果。
实现了将全部的矩形紧凑封装在一个近似正方形的空间中,提高了空间利用率,减少了内存资源的浪费。
[B站算法讲解与展示](https://www.bilibili.com/video/av92839895)
### 配置:
简单的使用了Glut库进行Opengl绘制窗体与矩形,首次编译需要[配置glut环境](https://blog.csdn.net/qq_31788759/article/details/104342559),这也是我博客的博文,求关注嘿嘿
配置结束后,记得将解决方案配置设置为`Debug x86`,否则glut.h文件会找不到
### 内含:
* 7个数据集,数据需为整数,5和7数据集复杂度高,新增了叶子链表查询后才跑的通
### 功能:
* 按照近似正方形的规则,添加矩形时会`自适应的不断扩充`外接矩形的大小
* 按照`宽度/高度/面积/最大边`排序算法对矩形数据集排序
* 调用`windows文件浏览窗口`,选择本地txt数据集作为输入(矩形格式为 宽 高 数量)
* 使用`Opengl显示列表`在窗口中绘制`空间利用率`
* `一次性绘制`或`左键点击逐个绘制`矩形排版结果(在glDraw.cpp中通过define设置)
### 运行结果 数据集5
`2 2 256`
`4 4 128`
`8 8 64`
`16 16 32`
`32 32 16`
`64 64 8`
`128 128 4`
`256 256 2`
![5powersOf2](https://github.com/ColorGalaxy/Bin-Paking-Algorithm/raw/master/Screenshot/5powersOf2.png)
数据集7
`100 100 3`
`60 60 3`
`50 20 20`
`20 50 20`
`250 250 1`
`250 100 1`
`100 250 1`
`400 80 1`
`80 400 1`
`10 10 100`
`5 5 500`
![7complex](https://github.com/ColorGalaxy/Bin-Paking-Algorithm/raw/master/Screenshot/7complex.png)