给定一个用给定的边长在N边规则多边形中内接的三角形,并使用该多边形的任意3个顶点形成该三角形,任务是找到该三角形的面积。
例子:
Input: N = 6, side = 10
Output: 129.904
Input: N = 8, side = 5
Output: 45.2665
方法:考虑第一个示例:
- 给定一个六面正多边形ABCDEF,其中刻有三角形AEC。
- 可以看出,三角形将给定的多边形划分为6个相等的三角形区域,其中三角形AEC的交点为三角形的质心。
- 找到正多边形的面积。可以使用公式(A * P)/ 2来计算规则多边形的面积,其中P是该多边形的周长,而A是该多边形的阿特姆。
- 根据对称定律,每个三角剖分的面积将为(TriangulatedArea = N边正多边形的面积/ N)。
- 由于三角形ACE包含6个元素中的3个,因此三角形ACE的面积为(3 * TriangulatedArea)
- 因此,通常,如果存在一个N边的规则多边形,其面积为A,则内接三角形的面积将为(A / N)* 3 。
下面是上述方法的实现:
C++
// C++ Program to find the area of a triangle
// inscribed in N-sided regular polygon
#include
#include
using namespace std;
// Function to find the area of the polygon
double area_of_regular_polygon(double n, double len)
{
// area of a regular polygon with N sides
// and side length len
double P = (len * n);
double A
= len
/ (2 * tan((180 / n)
* 3.14159 / 180));
double area = (P * A) / 2;
return area;
}
// Function to find the area of a triangle
double area_of_triangle_inscribed(double n, double len)
{
double area = area_of_regular_polygon(n, len);
// area of one triangle
// in an N-sided regular polygon
double triangle = area / n;
// area of inscribed triangle
double ins_tri = (triangle * 3);
return ins_tri;
}
// Driver code
int main()
{
double n = 6, len = 10;
cout << area_of_triangle_inscribed(n, len)
<< endl;
return 0;
}
Java
// Java Program to find the area of a triangle
// inscribed in N-sided regular polygon
import java.util.*;
class GFG
{
// Function to find the area of the polygon
static double area_of_regular_polygon(double n,
double len)
{
// area of a regular polygon with N sides
// and side length len
double P = (len * n);
double A = len / (2 * Math.tan((180 / n) *
3.14159 / 180));
double area = (P * A) / 2;
return area;
}
// Function to find the area of a triangle
static double area_of_triangle_inscribed(double n,
double len)
{
double area = area_of_regular_polygon(n, len);
// area of one triangle
// in an N-sided regular polygon
double triangle = area / n;
// area of inscribed triangle
double ins_tri = (triangle * 3);
return ins_tri;
}
// Driver code
static public void main(String[] arg)
{
double n = 6, len = 10;
System.out.printf("%.3f",
area_of_triangle_inscribed(n, len));
}
}
// This code is contributed by PrinciRaj1992
Python3
# Python3 Program to find the area
# of a triangle inscribed in
# N-sided regular polygon
import math
# Function to find the area of the polygon
def area_of_regular_polygon(n, len):
# area of a regular polygon with
# N sides and side length len
P = (len * n);
A = len / (2 * math.tan((180 / n) *
3.14159 / 180))
area = (P * A) / 2
return area
# Function to find the area of a triangle
def area_of_triangle_inscribed(n, len):
area = area_of_regular_polygon(n, len)
# area of one triangle
# in an N-sided regular polygon
triangle = area / n
# area of inscribed triangle
ins_tri = (triangle * 3);
return ins_tri
# Driver code
n = 6
len = 10
print(round(area_of_triangle_inscribed(n, len), 3))
# This code is contributed by divyamohan
C#
// C# Program to find the area of a triangle
// inscribed in N-sided regular polygon
using System;
class GFG
{
// Function to find the area of the polygon
static double area_of_regular_polygon(double n,
double len)
{
// area of a regular polygon with N sides
// and side length len
double P = (len * n);
double A = len / (2 * Math.Tan((180 / n) *
3.14159 / 180));
double area = (P * A) / 2;
return area;
}
// Function to find the area of a triangle
static double area_of_triangle_inscribed(double n,
double len)
{
double area = area_of_regular_polygon(n, len);
// area of one triangle
// in an N-sided regular polygon
double triangle = area / n;
// area of inscribed triangle
double ins_tri = (triangle * 3);
return ins_tri;
}
// Driver code
static public void Main(String[] arg)
{
double n = 6, len = 10;
Console.Write("{0:F3}",
area_of_triangle_inscribed(n, len));
}
}
// This code is contributed by PrinciRaj1992
Javascript
输出:
129.904