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
Time Complexity: O(1)
Auxiliary Space: O(1)