Пространственная организация группы блоков на сетке - PullRequest
0 голосов
/ 28 октября 2010

У меня есть сетка ячеек (пустая в начале) и набор блоков, которые представляют собой прямоугольники или квадраты, размер которых кратен ячейке (например, блок может быть 2 ячейки на 3 ячейки). Я не буду знать все блоки заранее, но буду располагать их по мере их поступления. В случае, если кому-то интересно, это связано с размещением множества маленьких растровых изображений на большом, где все размеры растровых изображений кратны 32.

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

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

Итак, мой вопрос в том, какие алгоритмы и структуры данных используются для такого рода задач?

1 Ответ

2 голосов
/ 28 октября 2010

Вы ищете информацию о том, что называется "упаковкой бункеров" (точнее, см. http://en.wikipedia.org/wiki/Bin_packing_problem),, 2D-версию задачи и, более конкретно, "упаковкой текстур".

Возможно, вы захотите взглянуть туда: https://gamedev.stackexchange.com/questions/2829/texture-packing-algorithm (имеется несколько алгоритмов и структур данных)

Если вы действительно мотивированы, вы также можете посмотреть статьи на эту тему!

http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.98.3502&rep=rep1&type=pdf

http://citeseerx.ist.psu.edu/search?q=texture+packing&submit=Search&sort=rel

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...