Я делал нечто подобное в прошлом.Идея состояла в том, чтобы сравнить новый прямоугольник с каждым из существующих (по одному)
, если есть пересечение, отбросить его (пересекаемая часть) и добавить непокрытые сегменты в массив прямоугольников
* 1004.* затем, ищите пересечение между новыми сегментами и другими существующими (все еще непроверенными) прямоугольниками.
сделать алгоритм рекурсивно отбрасывая пересечения и оставляя только непокрытые части.
в конце, если в массиве нет прямоугольников, у вас есть полное перекрытие
, если в массиве еще есть несколько прямоугольников, перекрытие не является полным, так как остаются еще некоторые части.
надеюсь, это поможет
Я могу попытаться найти свой код, если это то, что вы ищете.Я думаю, что в C #
другая идея состоит в том, чтобы преобразовать все существующие прямоугольники в многоугольник, а затем проверить, находится ли новый прямоугольник внутри многоугольника, но я не рекомендовал бы это, если вы не используете язык (илиframework) который умеет работать с полигонами.