# Maximum area of quadrilateral

Given four sides of quadrilateral a, b, c, d, find the maximum area of the quadrilateral possible from the given sides .

Examples:

Input : 1 2 1 2 Output : 2.00 It is optimal to construct a rectangle for maximum area .

According to **Bretschneider’s formula**, the area of a general quadilateral is given by

Here a, b, c, d are the sides of a quadilateral, s is the semiperimeter of a quadilateral and angles are two opposite angles.

So, this formula is maximized only when opposite angles sum to pi(180) then we can use a simplified form of Bretschneider’s formula to get the (maximum) area K.

This formula is called as **Brahmagupta’s formula** .

Below is the implementation of given approach

## C++

`// CPP program to find maximum are of a ` `// quadrilateral ` `#include <bits/stdc++.h> ` `using` `namespace` `std; ` ` ` `double` `maxArea(` `double` `a, ` `double` `b, ` ` ` `double` `c, ` `double` `d) ` `{ ` ` ` `// Calculating the semi-perimeter ` ` ` `// of the given quadilateral ` ` ` `double` `semiperimeter = (a + b + c + d) / 2; ` ` ` ` ` `// Applying Brahmagupta's formula to ` ` ` `// get maximum area of quadrilateral ` ` ` `return` `sqrt` `((semiperimeter - a) * ` ` ` `(semiperimeter - b) * ` ` ` `(semiperimeter - c) * ` ` ` `(semiperimeter - d)); ` `} ` ` ` `// Driver code ` `int` `main() ` `{ ` ` ` `double` `a = 1, b = 2, c= 1, d = 2; ` ` ` `printf` `(` `"%.2f\n"` `,maxArea(a, b, c, d)); ` ` ` `return` `0; ` `}` |

*chevron_right*

*filter_none*

## Java

`// Java program to find maximum are of a ` `// quadrilateral ` `import` `java.io.*; ` ` ` `class` `GFG ` `{ ` ` ` `static` `double` `maxArea(` `double` `a, ` `double` `b, ` ` ` `double` `c, ` `double` `d) ` ` ` `{ ` ` ` `// Calculating the semi-perimeter ` ` ` `// of the given quadilateral ` ` ` `double` `semiperimeter = (a + b + c + d) / ` `2` `; ` ` ` ` ` `// Applying Brahmagupta's formula to ` ` ` `// get maximum area of quadrilateral ` ` ` `return` `Math.sqrt((semiperimeter - a) * ` ` ` `(semiperimeter - b) * ` ` ` `(semiperimeter - c) * ` ` ` `(semiperimeter - d)); ` ` ` `} ` ` ` ` ` `// Driver code ` ` ` `public` `static` `void` `main (String[] args) ` ` ` `{ ` ` ` `double` `a = ` `1` `, b = ` `2` `, c= ` `1` `, d = ` `2` `; ` ` ` `System.out.println(maxArea(a, b, c, d)); ` ` ` `} ` `} ` ` ` `// This code is contributed by sunnysingh ` |

*chevron_right*

*filter_none*

## Python3

`# Python3 program to find maximum ` `# area of a quadrilateral ` `import` `math ` ` ` `def` `maxArea (a , b , c , d ): ` ` ` ` ` `# Calculating the semi-perimeter ` ` ` `# of the given quadilateral ` ` ` `semiperimeter ` `=` `(a ` `+` `b ` `+` `c ` `+` `d) ` `/` `2` ` ` ` ` `# Applying Brahmagupta's formula to ` ` ` `# get maximum area of quadrilateral ` ` ` `return` `math.sqrt((semiperimeter ` `-` `a) ` `*` ` ` `(semiperimeter ` `-` `b) ` `*` ` ` `(semiperimeter ` `-` `c) ` `*` ` ` `(semiperimeter ` `-` `d)) ` ` ` `# Driver code ` `a ` `=` `1` `b ` `=` `2` `c ` `=` `1` `d ` `=` `2` `print` `(` `"%.2f"` `%` `maxArea(a, b, c, d)) ` ` ` `# This code is contributed by "Sharad_Bhardwaj". ` |

*chevron_right*

*filter_none*

## C#

`// C# program to find maximum are of a ` `// quadrilateral ` `using` `System; ` ` ` `class` `GFG { ` ` ` ` ` `static` `double` `maxArea(` `double` `a, ` `double` `b, ` ` ` `double` `c, ` `double` `d) ` ` ` `{ ` ` ` ` ` `// Calculating the semi-perimeter ` ` ` `// of the given quadilateral ` ` ` `double` `semiperimeter = (a + b + c + d) / 2; ` ` ` ` ` `// Applying Brahmagupta's formula to ` ` ` `// get maximum area of quadrilateral ` ` ` `return` `Math.Sqrt((semiperimeter - a) * ` ` ` `(semiperimeter - b) * ` ` ` `(semiperimeter - c) * ` ` ` `(semiperimeter - d)); ` ` ` `} ` ` ` ` ` `// Driver code ` ` ` `public` `static` `void` `Main () ` ` ` `{ ` ` ` `double` `a = 1, b = 2, c= 1, d = 2; ` ` ` ` ` `Console.WriteLine(maxArea(a, b, c, d)); ` ` ` `} ` `} ` ` ` `// This code is contributed by vt_m. ` |

*chevron_right*

*filter_none*

## PHP

`<?php ` `// PHP program to find maximum are of a ` `// quadrilateral ` ` ` `function` `maxArea( ` `$a` `, ` `$b` `, ` `$c` `, ` `$d` `) ` `{ ` ` ` ` ` `// Calculating the semi-perimeter ` ` ` `// of the given quadilateral ` ` ` `$semiperimeter` `= (` `$a` `+ ` `$b` `+ ` `$c` `+ ` `$d` `) / 2; ` ` ` ` ` `// Applying Brahmagupta's formula to ` ` ` `// get maximum area of quadrilateral ` ` ` `return` `sqrt((` `$semiperimeter` `- ` `$a` `) * ` ` ` `(` `$semiperimeter` `- ` `$b` `) * ` ` ` `(` `$semiperimeter` `- ` `$c` `) * ` ` ` `(` `$semiperimeter` `- ` `$d` `)); ` `} ` ` ` `// Driver code ` `$a` `= 1; ` `$b` `= 2; ` `$c` `= 1; ` `$d` `= 2; ` `echo` `(maxArea(` `$a` `, ` `$b` `, ` `$c` `, ` `$d` `)); ` ` ` `// This code is contributed by vt_m. ` `?> ` |

*chevron_right*

*filter_none*

Output:

2.00

## Recommended Posts:

- Find the area of quadrilateral when diagonal and the perpendiculars to it from opposite vertices are given
- Maximum of smallest possible area that can get with exactly k cut of given rectangular
- Maximum area of rectangle possible with given perimeter
- Rectangle with Maximum Area using Java Pair
- Maximum area of triangle having different vertex colors
- Number of squares of maximum area in a rectangle
- Maximum area rectangle by picking four sides from array
- Find maximum volume of a cuboid from the given perimeter and area
- Program to find the angles of a quadrilateral
- Check whether Quadrilateral is valid or not if angles are given
- Exterior angle of a cyclic quadrilateral when the opposite interior angle is given
- Find area of the larger circle when radius of the smaller circle and difference in the area is given
- Calculate Volume, Curved Surface Area and Total Surface Area Of Cylinder
- Area of a Hexagon
- Area of a Regular Pentagram

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.