Open In App

Area of a Regular Pentagram

Improve
Improve
Like Article
Like
Save
Share
Report

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 <bits/stdc++.h>
#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




<script>
// Javascript implementation of the approach
var PI = 3.14159
 
// Function to return the area of triangle BCD
function areaOfTriangle(d)
{
    // Using Golden ratio
    var c = 1.618 * d;
    var s = (d + c + c) / 2;
 
    // Calculate area of triangle BCD
    var 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
function areaOfRegPentagon( d)
{
    // Calculate the area of regular
    // pentagon using above formula
    var cal = 4 * Math.tan(PI / 5);
    var area = (5 * d * d) / cal;
 
    // Return area of regular pentagon
    return area;
}
 
// Function to return the area of pentagram
function 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
var d = 5;
document.write(areaOfPentagram(d).toFixed(3));
 
// This code is contributed by ShubhamSingh10
</script>


Output

139.187

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



Last Updated : 01 Sep, 2022
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads