Program to find Area of Triangle inscribed in N-sided Regular Polygon

Given the triangle inscribed in an N-sided regular polygon with given side length, formed using any 3 vertices of the polygon, the task is to find the area of this triangle. **Examples:**

Input:N = 6, side = 10Output:129.904Input:N = 8, side = 5Output:45.2665

**Approach:** Consider the 1st example:

- Given is a 6 sided regular polygon ABCDEF with a triangle AEC inscribed in it.

- As it can be seen, the triangle divides given polygon into 6 equal triangular areas, where the point of intersection of triangle AEC is the centroid of the triangle.

- Find the area of the regular polygon. Area of the regular polygon can be calculated with the help of formula
**(A*P)/2**where P is the perimeter of that polygon and A is apothem of that polygon.

- Area of each of the triangulated part will be (TriangulatedArea = Area of N sided regular polygon / N) from the law of symmetry.

- Since the Triangle ACE comprises of 3 out of 6 in it, So the area of triangle ACE will be (3 * TriangulatedArea)

- Therefore, in general, if there is an N-sided regular polygon with area A, the area of a triangle inscribed in it will be
**(A/N)*3**.

Below is the implementation of the above approach:

## C++

`// C++ Program to find the area of a triangle` `// inscribed in N-sided regular polygon` `#include <bits/stdc++.h>` `#include <cmath>` `using` `namespace` `std;` `// Function to find the area of the polygon` `double` `area_of_regular_polygon(` `double` `n, ` `double` `len)` `{` ` ` `// area of a regular polygon with N sides` ` ` `// and side length len` ` ` `double` `P = (len * n);` ` ` `double` `A` ` ` `= len` ` ` `/ (2 * ` `tan` `((180 / n)` ` ` `* 3.14159 / 180));` ` ` `double` `area = (P * A) / 2;` ` ` `return` `area;` `}` `// Function to find the area of a triangle` `double` `area_of_triangle_inscribed(` `double` `n, ` `double` `len)` `{` ` ` `double` `area = area_of_regular_polygon(n, len);` ` ` `// area of one triangle` ` ` `// in an N-sided regular polygon` ` ` `double` `triangle = area / n;` ` ` `// area of inscribed triangle` ` ` `double` `ins_tri = (triangle * 3);` ` ` `return` `ins_tri;` `}` `// Driver code` `int` `main()` `{` ` ` `double` `n = 6, len = 10;` ` ` `cout << area_of_triangle_inscribed(n, len)` ` ` `<< endl;` ` ` `return` `0;` `}` |

## Java

`// Java Program to find the area of a triangle` `// inscribed in N-sided regular polygon` `import` `java.util.*;` `class` `GFG` `{` `// Function to find the area of the polygon` `static` `double` `area_of_regular_polygon(` `double` `n,` ` ` `double` `len)` `{` ` ` `// area of a regular polygon with N sides` ` ` `// and side length len` ` ` `double` `P = (len * n);` ` ` `double` `A = len / (` `2` `* Math.tan((` `180` `/ n) *` ` ` `3.14159` `/ ` `180` `));` ` ` `double` `area = (P * A) / ` `2` `;` ` ` `return` `area;` `}` `// Function to find the area of a triangle` `static` `double` `area_of_triangle_inscribed(` `double` `n,` ` ` `double` `len)` `{` ` ` `double` `area = area_of_regular_polygon(n, len);` ` ` `// area of one triangle` ` ` `// in an N-sided regular polygon` ` ` `double` `triangle = area / n;` ` ` `// area of inscribed triangle` ` ` `double` `ins_tri = (triangle * ` `3` `);` ` ` `return` `ins_tri;` `}` `// Driver code` `static` `public` `void` `main(String[] arg)` `{` ` ` `double` `n = ` `6` `, len = ` `10` `;` ` ` `System.out.printf(` `"%.3f"` `,` ` ` `area_of_triangle_inscribed(n, len));` `}` `}` `// This code is contributed by PrinciRaj1992` |

## Python3

`# Python3 Program to find the area` `# of a triangle inscribed in` `# N-sided regular polygon` `import` `math` `# Function to find the area of the polygon` `def` `area_of_regular_polygon(n, ` `len` `):` ` ` `# area of a regular polygon with` ` ` `# N sides and side length len` ` ` `P ` `=` `(` `len` `*` `n);` ` ` `A ` `=` `len` `/` `(` `2` `*` `math.tan((` `180` `/` `n) ` `*` ` ` `3.14159` `/` `180` `))` ` ` `area ` `=` `(P ` `*` `A) ` `/` `2` ` ` `return` `area` `# Function to find the area of a triangle` `def` `area_of_triangle_inscribed(n, ` `len` `):` ` ` `area ` `=` `area_of_regular_polygon(n, ` `len` `)` ` ` `# area of one triangle` ` ` `# in an N-sided regular polygon` ` ` `triangle ` `=` `area ` `/` `n` ` ` `# area of inscribed triangle` ` ` `ins_tri ` `=` `(triangle ` `*` `3` `);` ` ` `return` `ins_tri` `# Driver code` `n ` `=` `6` `len` `=` `10` `print` `(` `round` `(area_of_triangle_inscribed(n, ` `len` `), ` `3` `))` `# This code is contributed by divyamohan` |

## C#

`// C# Program to find the area of a triangle` `// inscribed in N-sided regular polygon` `using` `System;` ` ` `class` `GFG` `{` `// Function to find the area of the polygon` `static` `double` `area_of_regular_polygon(` `double` `n,` ` ` `double` `len)` `{` ` ` `// area of a regular polygon with N sides` ` ` `// and side length len` ` ` `double` `P = (len * n);` ` ` `double` `A = len / (2 * Math.Tan((180 / n) *` ` ` `3.14159 / 180));` ` ` `double` `area = (P * A) / 2;` ` ` `return` `area;` `}` `// Function to find the area of a triangle` `static` `double` `area_of_triangle_inscribed(` `double` `n,` ` ` `double` `len)` `{` ` ` `double` `area = area_of_regular_polygon(n, len);` ` ` `// area of one triangle` ` ` `// in an N-sided regular polygon` ` ` `double` `triangle = area / n;` ` ` `// area of inscribed triangle` ` ` `double` `ins_tri = (triangle * 3);` ` ` `return` `ins_tri;` `}` `// Driver code` `static` `public` `void` `Main(String[] arg)` `{` ` ` `double` `n = 6, len = 10;` ` ` `Console.Write(` `"{0:F3}"` `,` ` ` `area_of_triangle_inscribed(n, len));` `}` `}` `// This code is contributed by PrinciRaj1992` |

## Javascript

`<script>` `// javascript Program to find the area of a triangle` `// inscribed in N-sided regular polygon` `// Function to find the area of the polygon` `function` `area_of_regular_polygon(n, len)` `{` ` ` `// area of a regular polygon with N sides` ` ` `// and side length len` ` ` `let P = (len * n);` ` ` `let A` ` ` `= len` ` ` `/ (2 * Math.tan((180 / n)` ` ` `* 3.14159 / 180));` ` ` `let area = (P * A) / 2;` ` ` `return` `area;` `}` `// Function to find the area of a triangle` `function` `area_of_triangle_inscribed( n, len)` `{` ` ` `let area = area_of_regular_polygon(n, len);` ` ` `// area of one triangle` ` ` `// in an N-sided regular polygon` ` ` `let triangle = area / n;` ` ` `// area of inscribed triangle` ` ` `let ins_tri = (triangle * 3);` ` ` `return` `ins_tri;` `}` `// Driver code` `let n = 6, len = 10;` ` ` `document.write( area_of_triangle_inscribed(n, len).toFixed(3));` `// This code is contributed by todaysgaurav` `</script>` |

**Output:**

129.904

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the **DSA Self Paced Course** at a student-friendly price and become industry ready.