Позиционировать коробки, как в Exposé - PullRequest
0 голосов
/ 27 ноября 2009

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

Спасибо, eWolf

1 Ответ

1 голос
/ 07 января 2010

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

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

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

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

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

...