У меня есть куча прямоугольных объектов, которые мне нужно упаковать в наименьшее возможное пространство (размеры этого пространства должны быть равны двум).
Я знаю различные алгоритмы упаковки, которые будут упаковывать элементы, а также, возможно, в заданное пространство, однако в этом случае мне нужен алгоритм для определения того, насколько большим будет это пространство.
Скажем, Ive получил следующие прямоугольники
- 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 и в пределах заданного максимального размера для каждого измерения)?