Отображение дерева с заданным соотношением сторон

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

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

1 ответ

Решение

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

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

Другие вопросы по тегам