# 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
- Find if two rectangles overlap
- Number of rectangles in N*M grid
- Sum of Areas of Rectangles possible for an array
- Smallest square formed with given rectangles
- Number of rectangles in a circle of radius R
- Maximum given sized rectangles that can be cut out of a sheet of paper
- Check if it is possible to rearrange rectangles in a non-ascending order of breadths
- Number of unique rectangles formed using N unit squares
- Intersecting rectangle when bottom-left and top-right corners of two rectangles are given
- Count the number of rectangles such that ratio of sides lies in the range [a,b]
- Total number of Spanning trees in a Cycle Graph
- Optimum location of point to minimize total distance
- Find the total marks obtained according to given marking scheme
- Count of different straight lines with total n points with m collinear

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.