Area of a n-sided regular polygon with given side length
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)