# Total area of two overlapping rectangles

Given two overlapping rectangles on a plane. We are given bottom left and top right points of the two rectangles. We need to find the total area (Green and pink areas in below diagram).

Examples:

Input : Point l1 = {2, 2}, r1 = {5, 7}; Point l2 = {3, 4}, r2 = {6, 9}; Output : Total Area = 24 Input :Point l1 = {2, 1}, r1 = {5, 5}; Point l2 = {3, 2}, r2 = {5, 7}; Output : Total Area = 16

Asked in Juniper

We basically add areas of two rectangles. This includes intersecting part twice, so we subtract area of intersecting part.

Total Area = (Area of 1st rectangle + Area of 2nd rectangle) - Area of Intersecting part

Area of Rectangle = x_distance * y_distance

Where,

x_distance for 1st rectangle = abs(l1.x – r1.x)

y_distance for 1st rectangle = abs(l1.y – r1.y)

Similarly, we can compute area of 2nd rectangle.

For area of intersecting part,

x_distance for intersecting rectangle =

min(r1.x, r2.x) – max(l1.x, l2.x)

y_distance for 1st rectangle =

min(r1.y, r2.y) – max(l1.y, l2.y)

`// C++ program to find total area of two ` `// overlapping Rectangles ` `#include <bits/stdc++.h> ` `using` `namespace` `std; ` ` ` `struct` `Point { ` ` ` `int` `x, y; ` `}; ` ` ` `// Returns Total Area of two overlap ` `// rectangles ` `int` `overlappingArea(Point l1, Point r1, ` ` ` `Point l2, Point r2) ` `{ ` ` ` `// Area of 1st Rectangle ` ` ` `int` `area1 = ` `abs` `(l1.x - r1.x) * ` ` ` `abs` `(l1.y - r1.y); ` ` ` ` ` `// Area of 2nd Rectangle ` ` ` `int` `area2 = ` `abs` `(l2.x - r2.x) * ` ` ` `abs` `(l2.y - r2.y); ` ` ` ` ` `// Length of intersecting part i.e ` ` ` `// start from max(l1.x, l2.x) of ` ` ` `// x-coordinate and end at min(r1.x, ` ` ` `// r2.x) x-coordinate by subtracting ` ` ` `// start from end we get required ` ` ` `// lengths ` ` ` `int` `areaI = (min(r1.x, r2.x) - ` ` ` `max(l1.x, l2.x)) * ` ` ` `(min(r1.y, r2.y) - ` ` ` `max(l1.y, l2.y)); ` ` ` ` ` `return` `(area1 + area2 - areaI); ` `} ` ` ` `// Driver's Code ` `int` `main() ` `{ ` ` ` `Point l1 = { 2, 2 }, r1 = { 5, 7 }; ` ` ` `Point l2 = { 3, 4 }, r2 = { 6, 9 }; ` ` ` `cout << overlappingArea(l1, r1, l2, r2); ` ` ` `return` `0; ` `} ` |

*chevron_right*

*filter_none*

**Output:**

24

## Recommended Posts:

- Calculate Volume, Curved Surface Area and Total Surface Area Of Cylinder
- Number of rectangles in N*M grid
- Sum of Areas of Rectangles possible for an array
- Find if two rectangles overlap
- Number of rectangles in a circle of radius R
- Smallest square formed with given rectangles
- Maximum given sized rectangles that can be cut out of a sheet of paper
- Find area of the larger circle when radius of the smaller circle and difference in the area is given
- Check if it is possible to rearrange rectangles in a non-ascending order of breadths
- Count of distinct rectangles inscribed in an equilateral triangle
- Intersecting rectangle when bottom-left and top-right corners of two rectangles are given
- Number of unique rectangles formed using N unit squares
- Count the number of rectangles such that ratio of sides lies in the range [a,b]
- Largest subset of rectangles such that no rectangle fit in any other rectangle
- Find the total guests that are present at the party

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.