Проверьте, если прямоугольник делит пополам другой прямоугольник - PullRequest
0 голосов
/ 17 ноября 2018

У меня есть два прямоугольника на сетке, определяемые x, y, width и height (все целые числа).

Я хочу сказать, если один из них делит на другой.То есть не только перекрывается, но и проходит через все, чтобы создать три прямоугольника.

Пример: Overlap vsbisect

Есть ли относительно эффективный по времениалгоритм для этого?

1 Ответ

0 голосов
/ 17 ноября 2018

Если мы посмотрим на второй пример в вашем вопросе, мы можем найти следующие условия, чтобы определить, является ли прямоугольник A пополам прямоугольником B по вертикали:

xA <= xB && xA + widthA >= xB + widthB && yA > yB && yA + heightA < yB + heightB

Точно так же есть еще три случая (горизонтальный и тот же для обратного). Если какой-либо из этих случаев применим, у вас есть пополам.

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