Open in App
Not now

# Area of a Regular Pentagram

• Difficulty Level : Medium
• Last Updated : 01 Sep, 2022

Given a Pentagram and its inner side length(d). The task is to find out the area of Pentagram. The Pentagram is a five-pointed star that is formed by drawing a continuous line in five straight segments.

Examples:

Input: d = 5
Output: Area = 139.187
Area of regular pentagram = 139.187

Input: d = 7
Output: Area = 272.807

Idea is to use Golden Ratio between a/b, b/c, and c/d which equals approximately 1.618
Inner side length d is given so
c = 1.618 * d
b = 1.618 * c
a = 1.618 * b
AB, BC and CD are equal(both side of regular pentagram)
So AB = BC = CD = c and BD is given by d.

Area of pentagram = Area of Pentagon BDFHJ + 5 * (Area of triangle BCD)
Area of Pentagon BDFHJ = (d2 * 5)/ (4* tan 36)
Area of triangle BCD = [s(s-d)(s-c)(s-c)]1/2 {Heron’s Formula}
where
s = (d + c + c)/2

Below is the implementation of the above approach:

## C++

 // C++ implementation of the approach #include #define PI 3.14159 using namespace std;   // Function to return the area of triangle BCD double areaOfTriangle(float d) {     // Using Golden ratio     float c = 1.618 * d;     float s = (d + c + c) / 2;       // Calculate area of triangle BCD     double area = sqrt(s * (s - c) * (s - c) * (s - d));       // Return area of all 5 triangle are same     return 5 * area; }   // Function to return the area of regular pentagon double areaOfRegPentagon(float d) {     // Calculate the area of regular     // pentagon using above formula     double cal = 4 * tan(PI / 5);     double area = (5 * d * d) / cal;       // Return area of regular pentagon     return area; }   // Function to return the area of pentagram double areaOfPentagram(float d) {     // Area of a pentagram is equal to the     // area of regular  pentagon and five times     // the area of Triangle     return areaOfRegPentagon(d) + areaOfTriangle(d); }   // Driver code int main() {     float d = 5;     cout << areaOfPentagram(d) << endl;       return 0; }

## Java

 // Java implementation of above approach public class GFG {       static double PI = 3.14159;       // Function to return the area of triangle BCD     static double areaOfTriangle(float d)     {         // Using Golden ratio         float c = (float)(1.618 * d);         float s = (d + c + c) / 2;           // Calculate area of triangle BCD         double area             = Math.sqrt(s * (s - c) * (s - c) * (s - d));           // Return area of all 5 triangle are same         return 5 * area;     }       // Function to return the area of regular pentagon     static double areaOfRegPentagon(float d)     {         // Calculate the area of regular         // pentagon using above formula         double cal = 4 * Math.tan(PI / 5);         double area = (5 * d * d) / cal;           // Return area of regular pentagon         return area;     }       // Function to return the area of pentagram     static double areaOfPentagram(float d)     {         // Area of a pentagram is equal to the         // area of regular pentagon and five times         // the area of Triangle         return areaOfRegPentagon(d) + areaOfTriangle(d);     }       // Driver code     public static void main(String[] args)     {         float d = 5;         System.out.println(areaOfPentagram(d));     } }   // This code has been contributed by 29AjayKumar

## Python3

 # Python3 implementation of the approach   import math   PI = 3.14159   # Function to return the area of triangle BCD def areaOfTriangle(d):       # Using Golden ratio     c = 1.618 * d     s = (d + c + c) / 2       # Calculate area of triangle BCD     area = math.sqrt(s * (s - c) *                      (s - c) * (s - d))       # Return area of all 5 triangles are the same     return 5 * area     # Function to return the area of regular pentagon def areaOfRegPentagon(d):       global PI     # Calculate the area of regular     # pentagon using above formula     cal = 4 * math.tan(PI / 5)     area = (5 * d * d) / cal       # Return area of regular pentagon     return area     # Function to return the area of pentagram def areaOfPentagram(d):       # Area of a pentagram is equal to the     # area of regular pentagon and five times     # the area of Triangle     return areaOfRegPentagon(d) + areaOfTriangle(d)     # Driver code d = 5 print(areaOfPentagram(d))     # This code is contributed by ihritik

## C#

 // C# implementation of the above approach using System;   class GFG {       static double PI = 3.14159;       // Function to return the area of triangle BCD     static double areaOfTriangle(float d)     {         // Using Golden ratio         float c = (float)(1.618 * d);         float s = (d + c + c) / 2;           // Calculate area of triangle BCD         double area             = Math.Sqrt(s * (s - c) * (s - c) * (s - d));           // Return area of all 5 triangle are same         return 5 * area;     }       // Function to return the area of regular pentagon     static double areaOfRegPentagon(float d)     {         // Calculate the area of regular         // pentagon using above formula         double cal = 4 * Math.Tan(PI / 5);         double area = (5 * d * d) / cal;           // Return area of regular pentagon         return area;     }       // Function to return the area of pentagram     static double areaOfPentagram(float d)     {         // Area of a pentagram is equal to the         // area of regular pentagon and five times         // the area of Triangle         return areaOfRegPentagon(d) + areaOfTriangle(d);     }       // Driver code     public static void Main()     {         float d = 5;         Console.WriteLine(areaOfPentagram(d));     } }   // This code has been contributed by ihritik

## Javascript



Output

139.187

Time Complexity : O(log(N)), for using in-built sqrt() function.
Auxiliary Space: O(1)

My Personal Notes arrow_drop_up
Related Articles