我有一堆矩形对象,我需要将它们打包到尽可能小的空间中(此空间的尺寸应为2的幂)。
我知道各种各样的打包算法,这些算法会将项目尽可能地打包到给定的空间中,但是在这种情况下,我需要该算法来计算出该空间也应该有多大。
例如,说我有以下矩形
- 128 * 32
- 128 * 64
- 64 * 32
- 64 * 32
它们可以包装成128 * 128的空间
_________________ | 128 * 32 | | ________________ | | 128 * 64 | | | | | | ________________ | | 64 * 32 | 64 * 32 | | _______ | ________ |
但是,如果同时有160 * 32和64 * 64,则需要256 * 128的空间
________________________________ | 128 * 32 | 64 * 64 | 64 * 32 | | ________________ | | _______ | | 128 * 64 | | 64 * 32 | | | _______ | _______ | | | | | ________________ | ___ | | 160 * 32 | | | ____________________ | ___________ |
有哪些算法可以打包一堆矩形并确定容器所需的尺寸(2的幂,并且在每个尺寸的给定最大尺寸内)?