# Area of circle inscribed within rhombus

• Last Updated : 24 Jul, 2022

Given a rhombus with diagonals a and b, which contains an inscribed circle. The task is to find the area of that circle in terms of a and b.
Examples:

```Input: l = 5, b = 6
Output: 11.582

Input: l = 8, b = 10
Output: 30.6341``` Approach: From the figure, we see, the radius of inscribed circle is also a height h=OH of the right triangle AOB. To find it, we use equations for triangle’s area :

Area AOB = 1/2 * (a/2) * (b/2) = ab/8 = 12ch

where c = AB i.e. a hypotenuse. So,

r = h = ab/4c = ab/4√(a^2/4 + b^2/4) = ab/2√(a^2+b^2)

and therefore area of the circle is

A = Π * r^2 = Π a^2 b^2 /4(a2 + b2)

Below is the implementation of above approach:

## C++

 `// C++ Program to find the area of the circle``// which can be inscribed within the rhombus``#include ``using` `namespace` `std;` `// Function to find the area``// of the inscribed circle``float` `circlearea(``float` `a, ``float` `b)``{` `    ``// the diagonals cannot be negative``    ``if` `(a < 0 || b < 0)``        ``return` `-1;` `    ``// area of the circle``    ``float` `A = (3.14 * ``pow``(a, 2) * ``pow``(b, 2))``            ``/ (4 * (``pow``(a, 2) + ``pow``(b, 2)));``    ``return` `A;``}` `// Driver code``int` `main()``{``    ``float` `a = 8, b = 10;``    ``cout << circlearea(a, b) << endl;` `    ``return` `0;``}`

## Java

 `// Java Program to find the area of the circle``// which can be inscribed within the rhombus` `public` `class` `GFG {``    ` `    ``// Function to find the area``    ``// of the inscribed circle``    ``public` `static` `float` `circlearea(``double` `a, ``double` `b)``    ``{``        ``// the diagonals cannot be negative``        ``if` `(a < ``0` `|| b < ``0``)``            ``return` `-``1` `;``        ` `        ``//area of the circle``        ``float` `A = (``float``) ((``3.14` `* Math.pow(a, ``2``) * Math.pow(b, ``2``))``                        ``/ (``4` `* (Math.pow(a, ``2``) + Math.pow(b, ``2``)))) ;``        ` `        ``return` `A ;``    ``}` `    ``// Driver code``    ``public` `static` `void` `main(String[] args) {``        ``float` `a = ``8``, b = ``10` `;``        ` `        ``System.out.println(circlearea(a, b));` `    ``}``// This code is contributed by ANKITRAI1``}`

## Python 3

 `# Python 3 Program to find the area of the circle``# which can be inscribed within the rhombus`  `# Function to find the area``# of the inscribed circle``def` `circlearea(a, b):` `    ``# the diagonals cannot be negative``    ``if` `(a < ``0` `or` `b < ``0``):``        ``return` `-``1` `    ``# area of the circle``    ``A ``=` `((``3.14` `*` `pow``(a, ``2``) ``*` `pow``(b, ``2``))``/``        ``(``4` `*` `(``pow``(a, ``2``) ``+` `pow``(b, ``2``))))``    ``return` `A` `# Driver code``if` `__name__ ``=``=` `"__main__"``:``    ``a ``=` `8``    ``b ``=` `10``    ``print``( circlearea(a, b))` `# This code is contributed by ChitraNayal`

## C#

 `// C# Program to find the area of the circle``// which can be inscribed within the rhombus``using` `System;` `public` `class` `GFG {``    ` `    ``// Function to find the area``    ``// of the inscribed circle``    ``public` `static` `float` `circlearea(``double` `a, ``double` `b)``    ``{``        ``// the diagonals cannot be negative``        ``if` `(a < 0 || b < 0)``            ``return` `-1 ;``        ` `        ``//area of the circle``        ``float` `A = (``float``) ((3.14 * Math.Pow(a, 2) * Math.Pow(b, 2))``                        ``/ (4 * (Math.Pow(a, 2) + Math.Pow(b, 2)))) ;``        ` `        ``return` `A ;``    ``}` `    ``// Driver code``    ``public` `static` `void` `Main() {``        ``float` `a = 8, b = 10 ;``        ` `        ``Console.WriteLine(circlearea(a, b));` `    ``}``// This code is contributed by inder_verma..``}`

## PHP

 ``

## Javascript

 ``

Output:

`30.6341`

Time Complexity: O(loga) + O(logb), where logn is time required by pow function
Auxiliary Space: O(1), as no extra space is required

My Personal Notes arrow_drop_up