2010-06-08 8 views
10

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

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

Я хотел бы использовать это, чтобы генерировать css спрайты из серии изображений.

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

Ян

+0

Почему содержащая форма также должна быть квадратными? Почему он не может быть прямоугольным, но не квадратным? –

+0

Хорошая точка. Я имел в виду прямоугольник. Я отредактирую. – madcapnmckay

+5

http://www.google.com/search?q=rectangle+packing+algorithm – Dan

ответ

2

Я думаю, что вы описываете вариант проблемы с «двумерной корзиной». Единственное отличие состоит в том, что у вас есть элементы и вы пытаетесь найти самый маленький прямоугольник.

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

+0

Теперь это мертвая ссылка. –

1

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

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