Side of a regular n-sided polygon circumscribed in a circle

24 Jun, 2022
Given two integers r and n where n is the number of sides of a regular polygon and r is the radius of the circle this polygon is circumscribed in. The task is to find the length of the side of polygon.  
Examples:  
Input: n = 5, r = 11 Output: 12.9256Input: n = 3, r = 5 Output: 8.6576 
Approach: Consider the image above and let angle AOB be theta then theta = 360 / n. In right angled triangle , angle ACO = 90 degrees and angle AOC = theta / 2. So, AC = OA * sin(theta / 2) = r * sin(theta / 2) Therefore, side of the polygon, AB = 2 * AC i.e. 2 * r * sin(theta / 2).
Below is the implementation of the above approach: 
C++
Java
Python3
C#
PHP
Javascript
// C++ implementation of the approach#include <bits/stdc++.h>using namespace std; // Function to calculate the side of the polygon// circumscribed in a circlefloat calculateSide(float n, float r){    float theta, theta_in_radians;     theta = 360 / n;    theta_in_radians = theta * 3.14 / 180;     return 2 * r * sin(theta_in_radians / 2);} // Driver Codeint main(){     // Total sides of the polygon    float n = 3;     // Radius of the circumscribing circle    float r = 5;     cout << calculateSide(n, r);}
// Java  implementation of the approachimport java.lang.Math;import java.io.*; class GFG {     // Function to calculate the side of the polygon// circumscribed in a circlestatic double calculateSide(double  n, double r){    double theta, theta_in_radians;     theta = 360 / n;    theta_in_radians = theta * 3.14 / 180;     return 2 * r * Math.sin(theta_in_radians / 2);} // Driver Code    public static void main (String[] args) {     // Total sides of the polygon    double n = 3;     // Radius of the circumscribing circle    double r = 5;    System.out.println (calculateSide(n, r));    }//This code is contributed by akt_mit   }
# Python 3 implementation of the approachfrom math import sin # Function to calculate the side of# the polygon circumscribed in a circledef calculateSide(n, r):    theta = 360 / n    theta_in_radians = theta * 3.14 / 180     return 2 * r * sin(theta_in_radians / 2) # Driver Codeif __name__ == '__main__':         # Total sides of the polygon    n = 3     # Radius of the circumscribing circle    r = 5     print('{0:.5}'.format(calculateSide(n, r))) # This code is contributed by# Sanjit_Prasad
// C# implementation of the approach using System; class GFG {             // Function to calculate the side of the polygon    // circumscribed in a circle    static double calculateSide(double n, double r)    {        double theta, theta_in_radians;             theta = 360 / n;        theta_in_radians = theta * 3.14 / 180;             return Math.Round(2 * r * Math.Sin(theta_in_radians / 2),4);    }         // Driver Code    public static void Main () {     // Total sides of the polygon    double n = 3;     // Radius of the circumscribing circle    double r = 5;         Console.WriteLine(calculateSide(n, r));    }    // This code is contributed by Ryuga}
<?php// PHP implementation of the approach // Function to calculate the side of the// polygon circumscribed in a circlefunction calculateSide($n, $r){    $theta; $theta_in_radians;     $theta = 360 / $n;    $theta_in_radians = $theta * 3.14 / 180;     return 2 * $r * sin($theta_in_radians / 2);} // Driver Code // Total sides of the polygon$n = 3; // Radius of the circumscribing circle$r = 5; echo calculateSide($n, $r); // This code is contributed by inder_verma..?>
<script> // javascript  implementation of the approach     // Function to calculate the side of the polygon// circumscribed in a circlefunction calculateSide( n , r){    var theta, theta_in_radians;     theta = 360 / n;    theta_in_radians = theta * 3.14 / 180;     return 2 * r * Math.sin(theta_in_radians / 2);} // Driver Code // Total sides of the polygonvar n = 3; // Radius of the circumscribing circlevar r = 5;document.write(calculateSide(n, r).toFixed(5)); // This code contributed by Princi Singh </script>
8.6576
Time Complexity: O(1), since there is no loop or recursion.Auxiliary Space: O(1), since no extra space has been taken.
jit_t
ankthon
inderDuMCA
Sanjit_Prasad
princi singh
singhh3010
souravkumar29
Geometric
Mathematical
Mathematical
Geometric
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Optimum location of point to minimize total distance
Line Clipping | Set 1 (Cohen–Sutherland Algorithm)
Check whether a given point lies inside a triangle or not
Program for Point of Intersection of Two Lines
Window to Viewport Transformation in Computer Graphics with Implementation
Set in C++ Standard Template Library (STL)
Write a program to print all permutations of a given string
C++ Data Types
Merge two sorted arrays
Operators in C / C++