UniLecs #Task. Rectangle intersection
Задача: на плоскости даны два прямоугольника, каждый прямоугольник задан координатами левого нижнего и правого верхнего угла. Найдите площадь пересечения этих прямоугольников.
Входные данные:
- (x1,y1) — координаты левого нижнего угла 1го прямоугольника;
- (x2,y2) — координаты правого верхнего угла 1го прямоугольника;
- (x3,y3) — координаты левого нижнего угла 2го прямоугольника;
- (x4,y4) — координаты правого верхнего угла 2го прямоугольника;
Примечание: координаты — целые числа в диапазоне [−10000, 10000].
Вывод: площадь пересечения данных прямоугольников.
Пример:
(1, 1) — (4, 3)
(2, 2) — (6, 4)
Output: 2.
Разбор
Задачу можно решить следующим способом:
- Сначала нужно найти координаты пересечения прямоугольников:
- левая граница пересечения это максимум из левых границ данных прямоугольников,
- правая граница — минимум из правых границ,
- нижняя граница — максимум из нижних границ прямоугольников,
- верхняя граница — минимум из верхних границ.
2. Затем посчитаем длины сторон прямоугольника и перемножим их.
Случай, когда прямоугольники не пересекаются, возникает когда левая граница пересечения окажется больше правой, или когда нижняя граница окажется больше верхней.
Реализация
https://gist.github.com/unilecs/8e70748a4d4d47a1f54dabd758866a21