Вопрос

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

Спасибо, Эволф

Это было полезно?

Решение

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

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top