Open In App

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

Last Updated : 04 Jun, 2022
Comments
Improve
Suggest changes
Like Article
Like
Report

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>

Output: 
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.


Next Article
Practice Tags :

Similar Reads