Задачи
May 22, 2023

Общая площадь прямоугольников

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

  • 1й прямоугольник определяется своим НИЖНИМ ЛЕВЫМ углом (ax1, ay1) и своим ВЕРХНИМ ПРАВЫМ углом (ax2, ay2).
  • 2й прямоугольник определяется своим НИЖНИМ ЛЕВЫМ углом (bx1, by1) и ВЕРХНИМ ПРАВЫМ углом (bx2, by2).

Пример:

ax1 = -3, ay1 = 0, ax2 = 3, ay2 = 4, bx1 = 0, by1 = -1, bx2 = 9, by2 = 2

Output: 45

Разбор

  1. Сначала вычилим площадь обоих прямоугольников.
  2. Далее найдем пересечение по оси Х / Y, их можно найти по след.формуле
    xOverlap = Min(ax2, bx2) - Max(ax1, bx1)
    yOverlap = Min(ay2, by2) - Max(ay1, by1)
  3. Если оба значения xOverlap, yOverlap положительны, то площадь пересечения существует. Если же хоть одно из значений отрицательно, то пересечения нет.
  4. Тогда общая площадь покрытая двумя прямоугольниками равна:
    Площадь 1го прямуогольника + Площадь 2го прямуогольника - площадь пересечения.

Реализация

Play-test

https://dotnetfiddle.net/p0edVW