Оптимальное сочетание прямоугольников
Мне было интересно, знает ли кто-нибудь какие-либо алгоритмы, подходящие для объединения N прямоугольников неизвестного размера в наименьший возможный содержащий прямоугольник.
под оптимальным я подразумеваю уменьшение количества пробелов, оставшихся в результирующем прямоугольнике.
Я хотел бы использовать это для создания CSS-спрайтов из серии изображений.
Большое Спасибо,
Иэн
4 ответов
через упаковка изображений в квадратную текстуру и Симонответ я получил по этой ссылке http://code.activestate.com/recipes/442299/
Я не проверял рецепт, но, похоже, позволяет использовать неквадратные контейнеры.
Я думаю, что то, что вы описываете, является вариантом проблемы "двумерной упаковки бункера". Единственная разница в том, что у вас есть элементы и вы пытаетесь найти самый маленький прямоугольник.
этой статья обзора-хорошее начало.
единственный способ гарантировать и оптимальное решение-это грубая сила ответа. Это быстро становится неуправляемым для персональных компьютеров, когда у вас есть несколько прямоугольников и возможность поворота.
Википедия имеет хорошую статью о проблеме упаковки http://en.wikipedia.org/wiki/Packing_problem
вот хорошее описание алгоритма быстрой упаковки -http://www.codeproject.com/KB/web-image/rectanglepacker.aspx