2009-11-27 3 views
0

Кто-нибудь знает, как найти прямоугольники, чтобы лучше всего соответствовать определенной области? Прямоугольники можно масштабировать до определенного предела, но они должны сохранять свои пропорции. основном я хочу восстановить Mac OS»Exposé: PictureПозиционные шкафы, как в Exposé

Спасибо, eWolf

+0

Есть несколько вопросов о размещении прямоугольника в SO. Например, этот http://stackoverflow.com/questions/1799662/object-positioning-algorithm/1799752#1799752, или этот http://stackoverflow.com/questions/716558/place-random-non-overlapping-rectangles -он-а-панель – Anna

ответ

1

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

Поэтому я предлагаю искать алгоритмы, которые делают данные полезными. Как только я захотел компоновки изображений для DeepZoom Composer, и я попытался переработать алгоритм, основанный на силовом взаимодействии графика. http://en.wikipedia.org/wiki/Force-based_algorithms

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

  • Какое расстояние подсчитано?
  • Какие функции вы используете для сил притяжения и отталкивания?
  • Как много совпадений вы собираетесь принять?

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

Смежные вопросы