Тяжелая задача с прямоугольниками
Два прямоугольника, расположенные в первом квадранте, со сторонами, параллельными осям координат, заданы координатами своих левого верхнего и правого нижнего углов. Для первого прямоугольника это точки с координатами (х1, у1) и (x2, 0), для второго — (х3, y3), (x4, 0).
Определить, пересекаются ли данные прямоугольники, и вычислить площадь их общей части, если они пересекаются.
Понял только то, что у меня есть точки x1, x2,x3,x4,y1, y3 а вот как решить задачу не пойму, помогите пж.
Ответы (2 шт):
Так и быть, вот Вам решение. Два прямоугольника перeсекаются, если расстояние (по оси Х) между их центрами меньше (или равно?) половины суммы их размеров (по оси Х).
Если заданы координаты левых и правых точек, значит 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
Вычисление площади пересечения тривиально.