Выявление геометрических отношений между двумя прямоугольниками

Я недавно начал заниматься программированием и искал какую-то помощь.

Для алгоритма, который я пытаюсь реализовать, есть две прямоугольные сетки, каждая ячейка содержит объект. Вы можете думать об этом как о двумерном массиве с координатой x-y, назначенной в его начале.

Учитывая два целых числа «m» и «n», я собираюсь отметить n ячеек в одной сетке и (m-n) ячеек в другой сетке, так что отмеченная область в одной сетке является ближайшим местоположением для отмеченной области в другой сетке (наоборот).

Например, скажем, сетка A существует между координатами (x1, y1) и (x2, y2), а сетка B существует между (a1, b1) и (a2, b2) (x1 < х2, у1 < у2 и т. д.).
Если х2 < а1 и у2 < b1 (т.е. сетка B находится в верхней правой части сетки A), будет отмечен верхний правый угол сетки A и нижний левый угол сетки B.

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

Если мой вопрос был слишком неопределенным, чтобы понять, не стесняйтесь указывать на них 🙂

1

Решение

Я не уверен, что понимаю, но думаю, вы имеете в виду обнаружение столкновений. Если я прав, это будет выглядеть примерно так, для квадрата:

(x + xYWidth >= a && x <= a + aBWidth) && (y + xYWidth >= b && y <= b + aBWidth)

Для прямоугольников: Определить, перекрывают ли два прямоугольника друг друга?

0

Другие решения


По вопросам рекламы [email protected]