Skip to content
Related Articles

Related Articles

Improve Article

Area of a n-sided regular polygon with given side length

  • Last Updated : 17 Mar, 2021

Given a regular polygon of N sides with side length a. The task is to find the area of the polygon. 
Examples: 
 

Input : N = 6, a = 9
Output : 210.444

Input : N = 7, a = 8
Output : 232.571

 

 

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 t = 180/n 
Now, tan(t) = a/2*h
So, h = a/(2*tan(t))
Area of each triangle = (base * height)/2 = a * a/(4*tan(t)) 
So, area of the polygon, 
 



A = n * (area of one triangle) = a2 * n/(4tan t)

Below is the implementation of the above approach: 
 

C++




// C++ Program to find the area of a regular
// polygon with given side length
 
#include <bits/stdc++.h>
using namespace std;
 
// Function to find the area
// of a regular polygon
float polyarea(float n, float a)
{
    // Side and side length cannot be negative
    if (a < 0 && n < 0)
        return -1;
 
    // Area
    // degree converted to radians
    float A = (a * a * n) / (4 * tan((180 / n) * 3.14159 / 180));
 
    return A;
}
 
// Driver code
int main()
{
    float a = 9, n = 6;
 
    cout << polyarea(n, a) << endl;
 
    return 0;
}

Java




// Java  Program to find the area of a regular
// polygon with given side length
 
import java.io.*;
 
class GFG {
   
 
// Function to find the area
// of a regular polygon
static float polyarea(float n, float a)
{
    // Side and side length cannot be negative
    if (a < 0 && n < 0)
        return -1;
 
    // Area
    // degree converted to radians
    float A = (a * a * n) /(float) (4 * Math.tan((180 / n) * 3.14159 / 180));
 
    return A;
}
 
// Driver code
 
    public static void main (String[] args) {
    float a = 9, n = 6;
 
    System.out.println( polyarea(n, a));
    }
}
// This code is contributed by inder_verma..

Python3




# Python 3 Program to find the area
# of a regular polygon with given
# side length
from math import tan
 
# Function to find the area of a
# regular polygon
def polyarea(n, a):
     
    # Side and side length cannot
    # be negative
    if (a < 0 and n < 0):
        return -1
 
    # Area degree converted to radians
    A = (a * a * n) / (4 * tan((180 / n) *
                      3.14159 / 180))
 
    return A
 
# Driver code
if __name__ == '__main__':
    a = 9
    n = 6
 
    print('{0:.6}'.format(polyarea(n, a)))
 
# This code is contributed by
# Shashank_sharma

C#




// C# Program to find the area of a regular
// polygon with given side length
using System;
 
class GFG
{
 
// Function to find the area
// of a regular polygon
static float polyarea(float n, float a)
{
    // Side and side length cannot be negative
    if (a < 0 && n < 0)
        return -1;
 
    // Area
    // degree converted to radians
    float A = (a * a * n) / (float)(4 * Math.Tan((180 / n) *
                                           3.14159 / 180));
 
    return A;
}
 
// Driver code
public static void Main ()
{
    float a = 9, n = 6;
     
    Console.WriteLine(polyarea(n, a));
}
}
 
// This code is contributed
// by Akanksha Rai

PHP




<?php
// PHP Program to find the area of a regular
// polygon with given side length
 
// Function to find the area
// of a regular polygon
function polyarea($n, $a)
{
    // Side and side length cannot
    // be negative
    if ($a < 0 && $n < 0)
        return -1;
 
    // Area
    // degree converted to radians
    $A = ($a * $a * $n) / (4 * tan((180 / $n) *
                              3.14159 / 180));
 
    return $A;
}
 
// Driver code
$a = 9 ;
$n = 6 ;
 
echo round(polyarea($n, $a), 3);
 
// This code is contributed by Ryuga
?>

Javascript




<script>
// javascript  Program to find the area of a regular
// polygon with given side length
 
// Function to find the area
// of a regular polygon
function polyarea(n , a)
{
 
    // Side and side length cannot be negative
    if (a < 0 && n < 0)
        return -1;
 
    // Area
    // degree converted to radians
    var A = (a * a * n) / (4 * Math.tan((180 / n) * 3.14159 / 180));
 
    return A;
}
 
// Driver code
var a = 9, n = 6;
document.write( polyarea(n, a).toFixed(5));
 
// This code contributed by Princi Singh
</script>
Output: 
210.444

 

Attention reader! Don’t stop learning now. Participate in the Scholorship Test for First-Step-to-DSA Course for Class 9 to 12 students.




My Personal Notes arrow_drop_up
Recommended Articles
Page :