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 = 10 Output: 129.904 Input: N = 8, side = 5 Output: 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> |
129.904
Time Complexity: O(1), the code will run in a constant time.
Auxiliary Space: O(1), no extra space is required, so it is a constant.
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 neveropen!