Отображение дерева с заданным соотношением сторон - PullRequest
4 голосов
/ 26 февраля 2011

Я хотел бы создать TreeMap, используя картинки для заполнения treemap прямоугольников. Я могу предположить, что все картинки имеют одинаковую ширину и высоту (то есть соотношение сторон). Таким образом, мне нужен treemapping алгоритм для создания прямоугольников с заданным соотношением, смогу ли я поместить туда картинки (и, возможно, масштабировать картинки, если мне нужно).

Не могли бы вы порекомендовать один?

1 Ответ

8 голосов
/ 27 февраля 2011

В общем, решение невозможно - Альбин Суннанбо представил контрпример на контрпримере. Предполагая, что у вашего ограничивающего прямоугольника такое же соотношение сторон, как у целевых прямоугольников, вы можете получить достаточно хорошее решение, если масштабировать ограничивающий прямоугольник до квадрата, запустив алгоритм squarified treemap [pdf] это, а затем масштабирование обратно в прямоугольник. Поскольку квадратная древовидная карта не гарантирует идеальных квадратов, у ваших конечных прямоугольников не будет идеального соотношения сторон, но на практике это может не слишком сильно исказить ваши изображения.

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

...