Open In App

Program to find the Circumcircle of any regular polygon

Last Updated : 03 Sep, 2024
Comments
Improve
Suggest changes
Like Article
Like
Report

Given a n-sided polygon with side length a. The task is to find the area of the circumcircle of the polygon.

Examples:

Input: n = 10, a = 3
Output: 1.99737
Input: n = 5, a = 6
Output: 3.02487

Approach: A regular n-gon divides the circle into n pieces, so the central angle of the triangle is a full circle divided by n: 360 deg/n
Applying the law of cosines for the three side lengths of the triangle, we get

c2 = a2 + b2 - 2ab cos C 
or, a2 = r2 + r2 - 2rr cos (360/n) 
or, a2 = 2r2 - 2r2 cos (360/n) 
or, c2 = r2 (2 - 2 cos (360/n)) 
so, a=r\sqrt(2-2cos(360/n))

Therefore, 
r=a/\sqrt(2-2cos(360/n)) 

Below is the implementation of the above approach: 

C++
// C++ Program to find the radius
// of the circumcircle of the given polygon

#include <bits/stdc++.h>
using namespace std;

// Function to find the radius
// of the circumcircle
float findRadiusOfcircumcircle(float n, float a)
{

    // these cannot be negative
    if (n < 0 || a < 0)
        return -1;

    // Radius of the circumcircle
    float radius = a / sqrt(2 - (2 * cos(360 / n)));

    // Return the radius
    return radius;
}

// Driver code
int main()
{

    float n = 5, a = 6;

    // Find the radius of the circumcircle
    cout << findRadiusOfcircumcircle(n, a) << endl;

    return 0;
}
Java
// Java Program to find the radius
// of the circumcircle of the given polygon

import java.io.*;

class GFG {
  
// Function to find the radius
// of the circumcircle
static float findRadiusOfcircumcircle(float n, float a)
{

    // these cannot be negative
    if (n < 0 || a < 0)
        return -1;

    // Radius of the circumcircle
    float radius = (float)(a / Math.sqrt(2 - (2 * Math.cos(360 / n))));

    // Return the radius
    return radius;
}

// Driver code

    public static void main (String[] args) {
        float n = 5, a = 6;

    // Find the radius of the circumcircle
    System.out.println( findRadiusOfcircumcircle(n, a)) ;

    }
}
// This code is contributed 
// by anuj_67..
Python 3
# Python3 Program to find the 
# radius of the circumcircle 
# of the given polygon 

# from math import all methods
from math import *

# Function to find the radius 
# of the circumcircle 
def findRadiusOfcircumcircle(n, a) :

    # these cannot be negative
    if n < 0 or a < 0 :
        return -1

    # Radius of the circumcircle
    radius = a / sqrt(2 - (2 * cos(360 / n)))

    # Return the radius
    return radius

# Driver code
if __name__ == "__main__" :

    n , a = 5, 6

    # Find the radius of the circumcircle 
    print(round(findRadiusOfcircumcircle(n, a), 5))

# This code is contributed 
# by ANKITRAI1
C#
// C# Program to find the radius
// of the circumcircle of the given polygon
using System;

class GFG 
{

// Function to find the radius
// of the circumcircle
static float findRadiusOfcircumcircle(float n, 
                                      float a)
{

    // these cannot be negative
    if (n < 0 || a < 0)
        return -1;

    // Radius of the circumcircle
    float radius = (float)(a / Math.Sqrt(2 - 
                   (2 * Math.Cos(360 / n))));

    // Return the radius
    return radius;
}

// Driver code
public static void Main () 
{
    float n = 5, a = 6;

    // Find the radius of the circumcircle
    Console.WriteLine(findRadiusOfcircumcircle(n, a));
}
}

// This code is contributed 
// by anuj_67
JavaScript
<script>
// javascript Program to find the radius
// of the circumcircle of the given polygon

// Function to find the radius
// of the circumcircle
function findRadiusOfcircumcircle(n , a)
{

    // these cannot be negative
    if (n < 0 || a < 0)
        return -1;

    // Radius of the circumcircle
    var radius = (a / Math.sqrt(2 - (2 * Math.cos(360 / n))));

    // Return the radius
    return radius;
}

// Driver code
var n = 5, a = 6;

// Find the radius of the circumcircle
document.write( findRadiusOfcircumcircle(n, a).toFixed(5)) ;


// This code is contributed by shikhasingrajput 
</script>
PHP
<?php
// PHP Program to find the radius 
// of the circumcircle of the 
// given polygon 

// Function to find the radius 
// of the circumcircle 
function findRadiusOfcircumcircle($n, $a) 
{ 

    // these cannot be negative 
    if ($n < 0 || $a < 0) 
        return -1; 

    // Radius of the circumcircle 
    $radius = $a / sqrt(2 - (2 * 
                    cos(360 / $n))); 

    // Return the radius 
    return $radius; 
} 

// Driver code 
$n = 5;
$a = 6; 

// Find the radius of the circumcircle 
echo findRadiusOfcircumcircle($n, $a); 

// This code is contributed by Anuj_67..
?>

Output
3.02487

Time Complexity : O(log(n)) because it is using inbuilt sqrt function
Auxiliary Space: O(1)


Next Article
Article Tags :
Practice Tags :

Similar Reads