Area of largest Circle inscribe in N-sided Regular polygon

Given a regular polygon of **N** sides with side length **a**. The task is to find the area of the Circle which inscribed in the polygon.

Note : This problem is mixed version of This and This **Examples:**

Input: N = 6, a = 4Output: 37.6801Explanataion:

In this, the polygon have 6 faces and as we see in fig.1 we clearly see that the anglexis 30 degree so the radius of circle will be ( a / (2 * tan(30))) Therefore,r = a√3/2Input:N = 8, a = 8Output:292.81Explanataion:

In this, the polygon have 8 faces and as we see in fig.2 we clearly see that the anglexis 22.5 degree so the radius of circle will be ( a / (2 * tan(22.5))) Therefore,r = a/0.828

**Approach**: In the figure above, we see the polygon can be divided into **N** equal triangles. Looking into one of the triangles, we see that the whole angle at the center can be divided into = **360/N**

So, angle **x = 180/n**

Now, **tan(x) = (a / 2) * r**

So, **r = a / ( 2 * tan(x))**

So, Area of the Inscribed Circle is,

A = Πr² = Π * (a / (2 * tan(x))) * (a / (2*tan(x)))

Below is the implementation of the above approach:

## C++

`// C++ Program to find the area of a circle in` `// inscribed in polygon` `#include <bits/stdc++.h>` `using` `namespace` `std;` `// Function to find the area` `// of a circle` `float` `InscribedCircleArea(` `float` `n, ` `float` `a)` `{` ` ` `// Side and side length cannot be negative` ` ` `if` `(a < 0 && n < 0)` ` ` `return` `-1;` ` ` `// degree converted to radians` ` ` `float` `r = a / (2 * ` `tan` `((180 / n) * 3.14159 / 180));` ` ` `// area of circle` ` ` `float` `Area = (3.14) * (r) * (r);` ` ` `return` `Area;` `}` `// Driver code` `int` `main()` `{` ` ` `// no. of sides` ` ` `float` `n = 6;` ` ` `// side length` ` ` `float` `a = 4;` ` ` `cout << InscribedCircleArea(n, a) << endl;` ` ` `return` `0;` `}` |

## Java

`// Java Program to find the area of a circle` `// inscribed in a polygon` `import` `java.io.*;` `class` `GFG {` ` ` `// Function to find the area` ` ` `// of a regular polygon` ` ` `static` `float` `InscribedCircleArea(` `float` `n, ` `float` `a)` ` ` `{` ` ` `// Side and side length cannot be negative` ` ` `if` `(a < ` `0` `&& n < ` `0` `)` ` ` `return` `-` `1` `;` ` ` `// degree converted to radians` ` ` `float` `r = a / (` `float` `)(` `2` `* Math.tan((` `180` `/ n) * ` `3.14159` `/ ` `180` `));` ` ` `// area of circle` ` ` `float` `Area = (` `float` `)(` `3.14` `) * (r) * (r);` ` ` `return` `Area;` ` ` `}` ` ` `// Driver code` ` ` `public` `static` `void` `main(String[] args)` ` ` `{` ` ` `// no. of sides` ` ` `float` `n = ` `6` `;` ` ` `// side length` ` ` `float` `a = ` `4` `;` ` ` `System.out.println(InscribedCircleArea(n, a));` ` ` `}` `}` |

## Python3

`# Python 3 Program to find the area` `# of a circle inscribed` `# in a polygon` `from` `math ` `import` `tan` `# Function to find the area of a` `# circle` `def` `InscribedCircleArea(n, a):` ` ` `# Side and side length cannot` ` ` `# be negative` ` ` `if` `(a < ` `0` `and` `n < ` `0` `):` ` ` `return` `-` `1` ` ` `# degree converted to radians` ` ` `r ` `=` `a` `/` `(` `2` `*` `tan((` `180` `/` `n) ` `*` `3.14159` `/` `180` `));` ` ` `# area of circle` ` ` `Area ` `=` `3.14` `*` `r ` `*` `r` ` ` `return` `Area` `# Driver code` `if` `__name__ ` `=` `=` `'__main__'` `:` ` ` `a ` `=` `4` ` ` `n ` `=` `6` ` ` `print` `(` `'{0:.6}'` `.` `format` `(InscribedCircleArea(n, a)))` `# This code is contributed by` `# Chandan Agrawal` |

## C#

`// C# Program to find the area of a circle` `// inscribed in a polygon` `using` `System;` `class` `GFG` `{` `// Function to find the area` `// of a regular polygon` `static` `float` `InscribedCircleArea(` `float` `n, ` `float` `a)` `{` ` ` `// Side and side length cannot be negative` ` ` `if` `(a < 0 && n < 0)` ` ` `return` `-1;` ` ` `// degree converted to radians` ` ` `float` `r = a / (` `float` `)(2 * Math.Tan((180 / n) *` ` ` `3.14159 / 180));` ` ` `// area of circle` ` ` `float` `Area = (` `float` `)(3.14) * (r) * (r);` ` ` `return` `Area;` `}` `// Driver code` `public` `static` `void` `Main()` `{` ` ` `// no. of sides` ` ` `float` `n = 6;` ` ` `// side length` ` ` `float` `a = 4;` ` ` `Console.WriteLine(InscribedCircleArea(n, a));` `}` `}` `// This code is contributed by Ryuga` |

## PHP

`<?php` `// PHP Program to find the area` `// of a circle inscribed` `// in a polygon` `// Function to find the area of a` `// circle` `function` `InscribedCircleArea(` `$n` `, ` `$a` `)` `{` ` ` `// Side and side length cannot` ` ` `// be negative` ` ` `if` `(` `$a` `< 0 && ` `$n` `< 0)` ` ` `return` `-1;` ` ` `// degree converted to radians` ` ` `$r` `= ` `$a` `/ (2 * tan((180 / ` `$n` `) * 3.14159 / 180));` ` ` `// area of circle` ` ` `$Area` `= 3.14 * ` `$r` `* ` `$r` `;` ` ` `return` `$Area` `;` `}` `// Driver code` `$a` `= 4;` `$n` `= 6;` `echo` `(InscribedCircleArea(` `$n` `, ` `$a` `));` `// This code contributed by PrinciRaj1992` `?>` |

## Javascript

`<script>` `// Javascript Program to find the area of a circle` `// inscribed in a polygon` ` ` `// Function to find the area` ` ` `// of a regular polygon` ` ` `function` `InscribedCircleArea( n ,a)` ` ` `{` ` ` ` ` `// Side and side length cannot be negative` ` ` `if` `(a < 0 && n < 0)` ` ` `return` `-1;` ` ` `// degree converted to radians` ` ` `let r = a / (2 * Math.tan((180 / n) * 3.14159 / 180));` ` ` `// area of circle` ` ` `let Area = (3.14) * (r) * (r);` ` ` `return` `Area;` ` ` `}` ` ` `// Driver code` ` ` `// no. of sides` ` ` `let n = 6;` ` ` `// side length` ` ` `let a = 4;` ` ` `document.write(InscribedCircleArea(n, a).toFixed(4));` ` ` `// This code is contributed by 29AjayKumar` `</script>` |

**Output:**

37.6801