Geometry Help

Пересечение прямоугольников

Пускай у нас есть два прямоугольника, которые ориентированы по осям и заданы двумя точками и соответветственно. Где точки для своих прямоугольников являются верхними левыми, а соответственно правыми нижними.

Если прямоугольники заданы по другому, то их небходимо привести к такому виду:

Далее необходимо воспользоваться методом, который мы применяли при нахождении пересечений отрезков на числовой прямой — спроецировать точки на оси и найти их пересечения:

Оратите внимание, из-за того, что ось растёт вверх, точки в функции переданы в обратном порядке:

Если пересечение существует, тогда должны выполняться следующие условия:

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

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

.

Для большей наглядности сместим оси и нарисуем линии проекции:

.

Last modified: 25 November 2024