Группировка прямоугольников (получение ограничивающих прямоугольников) - PullRequest
0 голосов
/ 26 декабря 2010

Что является хорошим и быстрым способом получить «окончательные» ограничивающие рамки набора случайных (до 40, не так много) прямоугольников?Под финалом я подразумеваю, что все ограничивающие рамки не пересекаются с другими.

РЕДАКТИРОВАТЬ: мой первый пример был неверным.Результат, который я ищу, - это группа канатов, где каждая группа образует сплошную геометрию при наложении;они не являются отдельными.

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

Еще один пример: есть 3 ряда A, B и C. A пересекается с B, но не с C. C пересекается с B. Их следует рассматривать как 1 группу, потому что они образуют единую геометрию.

1 Ответ

0 голосов
/ 26 декабря 2010

Вы можете сравнить каждый прямоугольник после текущего.Например, если у вас есть и массив [A, B, C]

Если вы сравниваете A, B, вам не нужно сравнивать B, A или B, B только B, C.Если ничего не изменится, это уменьшит количество итераций.

Вы можете сделать это, запустив внутренний цикл for с текущего индекса ауттера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...