# Area of circle inscribed within rhombus

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 <bits/stdc++.h>` `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

`<?php` `// PHP Program to find the area` `// of the circle which can be` `// inscribed within the rhombus` `// Function to find the area` `// of the inscribed circle` `function` `circlearea(` `$a` `, ` `$b` `)` `{` ` ` `// the diagonals cannot be negative` ` ` `if` `(` `$a` `< 0 || ` `$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` `$a` `= 8; ` `$b` `= 10;` `echo` `circlearea(` `$a` `, ` `$b` `);` `// This code is contributed by anuj_67` `?>` |

## Javascript

`<script>` `// javascript Program to find the area of the circle` `// which can be inscribed within the rhombus` ` ` `// Function to find the area` `// of the inscribed circle` `function` `circlearea(a , b)` `{` ` ` `// the diagonals cannot be negative` ` ` `if` `(a < 0 || b < 0)` ` ` `return` `-1 ;` ` ` ` ` `//area of the circle` ` ` `var` `A = ((3.14 * Math.pow(a, 2) * Math.pow(b, 2))` ` ` `/ (4 * (Math.pow(a, 2) + Math.pow(b, 2)))) ;` ` ` ` ` `return` `A ;` `}` `// Driver code` `var` `a = 8, b = 10 ;` `document.write(circlearea(a, b).toFixed(4));` `// This code is contributed by Amit Katiyar` `</script>` |

**Output:**

30.6341

**Time Complexity: **O(log_{a}) + O(log_{b}), where log_{n} is time required by pow function**Auxiliary Space: **O(1), as no extra space is required