
29.01.2016, 10:48
|
|
Регистрация: May 2011
Сообщений: 221
|
Похоже плохо выразил мысль (
В общем, смотрите, есть какая-то ограниченная прямоугольная область. Есть прямоугольные домики, различных соотношений сторон. Задача в том, чтобы случайным образом расположить эти домики, но так, чтобы они не вылезли за пределы и не пересекали друг друга.
По моему алгоритму у меня появились еще пара дополнений (пока не знаю насколько соответствующих реальной жизни).
Я предполагаю, что каждый прямоугольник разбивает пространство вокруг не более чем на четыре прямоугольные области (слева, справа, сверху, снизу), ограниченные близлежащими прямоугольниками. На 1000 прямоугольников это будет уже 4000 областей, многие из которых вероятно будут дублировать друг друга. Поиски ближайших скорее всего потребуют работы по написанию двоичного дерева (чего мне хотелось бы избежать), плюс, мне кажется, что должен существовать какой-то механизм вставки, чтобы не перерасчитывать все-все области по новой, но у меня абсолютно 0 идей о том как это воплотить.
Мне кажется это задача лежащая где-то в области графов, но я очень плохо с ними знаком и даже не знаю в какую сторону посмотреть.
|