Skip to content
Related Articles

Related Articles

Side of a regular n-sided polygon circumscribed in a circle
  • Last Updated : 15 Jan, 2019

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.
image

Examples:

Input: n = 5, r = 11
Output: 12.9256

Input: 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 $\Delta AOC$, 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++




// C++ implementation of the approach
#include <bits/stdc++.h>
using namespace std;
  
// Function to calculate the side of the polygon
// circumscribed in a circle
float 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 Code
int main()
{
  
    // Total sides of the polygon
    float n = 3;
  
    // Radius of the circumscribing circle
    float r = 5;
  
    cout << calculateSide(n, r);
}


Java




// Java  implementation of the approach
import java.lang.Math;
import java.io.*;
  
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 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    
}


Python3




# Python 3 implementation of the approach
from math import sin
  
# Function to calculate the side of 
# the polygon circumscribed in a circle
def calculateSide(n, r):
    theta = 360 / n
    theta_in_radians = theta * 3.14 / 180
  
    return 2 * r * sin(theta_in_radians / 2)
  
# Driver Code
if __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#




// 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
// PHP implementation of the approach
  
// Function to calculate the side of the 
// polygon circumscribed in a circle
function 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..
?>


Output:

8.6576

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.

My Personal Notes arrow_drop_up
Recommended Articles
Page :