Подходящие прямоугольники вместе оптимальным способом

Я задавался вопросом, знает ли кто-либо о каких-либо алгоритмах, подходящих для совмещения N количество прямоугольников неизвестного размера в самое маленькое, содержащее прямоугольник.

Оптимальным я имею в виду с сокращением количества пробела, перенесенного в получающемся, содержащем прямоугольник.

Я хотел бы использовать это для генерации спрайтов CSS от ряда изображений.

Большое спасибо,

Ian

10
задан mqchen 8 June 2010 в 15:54
поделиться

3 ответа

Через упаковку изображений в квадратную текстуру и ответ Саймона я попал на эту ссылку http://code.activestate.com/recipes/442299/

Я не проверял рецепт, но, кажется, он позволяет использовать неквадратные контейнеры.

1
ответ дан 4 December 2019 в 04:01
поделиться

Единственным способом гарантировать оптимальное решение является перебор. Это быстро становится неуправляемым для персональных компьютеров, когда у вас есть несколько прямоугольников, и вы допускаете возможность вращения.

В Википедии есть хорошая статья о проблеме упаковки http://en.wikipedia.org/wiki/Packing_problem

1
ответ дан 4 December 2019 в 04:01
поделиться

Я думаю, то, что вы описали, является вариантом проблемы "упаковки двумерных корзин". Разница лишь в том, что у вас есть предметы, и вы пытаетесь найти наименьший прямоугольник.

Эта обзорная статья - хорошее начало.

2
ответ дан 4 December 2019 в 04:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: