Тяжелая задача с прямоугольниками

Два прямоугольника, расположенные в первом квадранте, со сторонами, параллельными осям координат, заданы координатами своих левого верхнего и правого нижнего углов. Для первого прямоугольника это точки с координатами (х1, у1) и (x2, 0), для второго — (х3, y3), (x4, 0).

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

Понял только то, что у меня есть точки x1, x2,x3,x4,y1, y3 а вот как решить задачу не пойму, помогите пж.


Ответы (2 шт):

Автор решения: Igor

Так и быть, вот Вам решение. Два прямоугольника перeсекаются, если расстояние (по оси Х) между их центрами меньше (или равно?) половины суммы их размеров (по оси Х).

→ Ссылка
Автор решения: Alex Rudenko

Если заданы координаты левых и правых точек, значит x1 < x2, x3 < x4.

Прямоугольники НЕ БУДУТ пересекаться, если правая вершина одного находится левее левой вершины другого: x2 < x3 или x4 < x1.

Иначе координаты пересечения будут такие:

  • левая вершина: xL = Math.max(x1, x3), yL = Math.min(y1, y3)
  • правая вершина: xR = Math.min(x2, x4), yR = 0

Вычисление площади пересечения тривиально.

→ Ссылка