Friday, January 10, 2025
Google search engine
HomeData Modelling & AIProgram to find the Circumcircle of any regular polygon

Program to find the Circumcircle of any regular polygon

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?(2-2cos(360/n))

Therefore, 
r=a/?(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


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


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>


Output: 

3.02487

 

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

Feeling lost in the world of random DSA topics, wasting time without progress? It’s time for a change! Join our DSA course, where we’ll guide you on an exciting journey to master DSA efficiently and on schedule.
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 neveropen!

Dominic Rubhabha-Wardslaus
Dominic Rubhabha-Wardslaushttp://wardslaus.com
infosec,malicious & dos attacks generator, boot rom exploit philanthropist , wild hacker , game developer,
RELATED ARTICLES

Most Popular

Recent Comments