Given a regular polygon of N sides with radius(distance from the center to any vertex) R. The task is to find the area of the polygon.
Examples:
Input : r = 9, N = 6 Output : 210.444 Input : r = 8, N = 7 Output : 232.571
In the figure, we see that the polygon can be divided into N equal triangles.
Looking into one of the triangles, we see that the whole angle at the centre can be divided into = 360/N parts.
So, angle t = 180/N.
Looking into one of the triangles, we see,
h = rcost a = rsint
We know,
area of the triangle = (base * height)/2
= r2sin(t)cos(t)
= r2*sin(2t)/2
So, area of the polygon:
A = n * (area of one triangle) = n*r2*sin(2t)/2 = n*r2*sin(360/n)/2
Below is the implementation of the above approach:
C++
// C++ Program to find the area// of a regular polygon with given radius#include <bits/stdc++.h>using namespace std;// Function to find the area// of a regular polygonfloat polyarea(float n, float r){ // Side and radius cannot be negative if (r < 0 && n < 0) return -1; // Area // degree converted to radians float A = ((r * r * n) * sin((360 / n) * 3.14159 / 180)) / 2; return A;}// Driver codeint main(){ float r = 9, n = 6; cout << polyarea(n, r) << endl; return 0;} |
Java
// Java Program to find the area// of a regular polygon with given radiusimport java.util.*;class GFG{ // Function to find the area // of a regular polygon static double polyarea(double n, double r) { // Side and radius cannot be negative if (r < 0 && n < 0) return -1; // Area // degree converted to radians double A = ((r * r * n) * Math.sin((360 / n) * 3.14159 / 180)) / 2; return A; } // Driver code public static void main(String []args) { float r = 9, n = 6; System.out.println(polyarea(n, r)); }}// This code is contributed// By ihritik (Hritik Raj) |
Python3
# Python3 Program to find the area # of a regular polygon with given radius # form math lib import sin functionfrom math import sin# Function to find the area # of a regular polygon def polyarea(n, r) : # Side and radius cannot be negative if (r < 0 and n < 0) : return -1 # Area # degree converted to radians A = (((r * r * n) * sin((360 / n) * 3.14159 / 180)) / 2); return round(A, 3)# Driver code if __name__ == "__main__" : r, n = 9, 6 print(polyarea(n, r))# This code is contributed by Ryuga |
C#
// C# Program to find the area// of a regular polygon with given radiususing System;class GFG{ // Function to find the area // of a regular polygon static double polyarea(double n, double r) { // Side and radius cannot be negative if (r < 0 && n < 0) return -1; // Area // degree converted to radians double A = ((r * r * n) * Math.Sin((360 / n) * 3.14159 / 180)) / 2; return A; } // Driver code public static void Main() { float r = 9, n = 6; Console.WriteLine(polyarea(n, r)); }}// This code is contributed// By ihritik (Hritik Raj) |
PHP
<?php // PHP Program to find the area of a// regular polygon with given radius// Function to find the area// of a regular polygonfunction polyarea($n, $r){ // Side and radius cannot be negative if ($r < 0 && $n < 0) return -1; // Area // degree converted to radians $A = (($r * $r * $n) * sin((360 / $n) * 3.14159 / 180)) / 2; return $A;}// Driver code$r = 9;$n = 6;echo polyarea($n, $r)."\n";// This code is contributed by ita_c?> |
Javascript
<script>// javascript Program to find the area// of a regular polygon with given radius// Function to find the area// of a regular polygonfunction polyarea(n , r){ // Side and radius cannot be negative if (r < 0 && n < 0) return -1; // Area // degree converted to radians var A = ((r * r * n) * Math.sin((360 / n) * 3.14159 / 180)) / 2; return A;}// Driver codevar r = 9, n = 6;document.write(polyarea(n, r).toFixed(5));// This code contributed by Princi Singh </script> |
210.444
Time Complexity: O(1)
Auxiliary Space: O(1)
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 neveropen!

