Computer >> 컴퓨터 >  >> 프로그램 작성 >> C 프로그래밍

주어진 반지름을 가진 n면 정다각형의 면적은?

<시간/>

여기서 우리는 반지름이 주어진 n-면 정다각형의 면적을 구하는 방법을 볼 것입니다. 여기서 반지름은 정점의 중심으로부터의 거리입니다. 이 문제를 해결하기 위해 중심에서 한쪽으로 수직인 하나를 그렸습니다. 각 변의 길이를 '''로 둡니다. 수직은 측면을 두 부분으로 나누는 것입니다. 각 부분의 길이는 a/2입니다. 수직과 하나의 반지름이 각도 x를 만들고 있습니다. 반지름의 길이를 h라고 하자.

주어진 반지름을 가진 n면 정다각형의 면적은?

여기서 우리는 다각형이 N개의 동일한 삼각형으로 분할된 것을 볼 수 있습니다. 따라서 N면이 있는 다각형의 경우 N개의 삼각형으로 나뉩니다. 따라서 중심의 각도는 360입니다. 이는 360°/N의 다른 각도로 나뉩니다(여기서 360°/6 =60°). 따라서 각도 x는 180°/N입니다. 이제 삼각 방정식을 사용하여 h와 를 쉽게 얻을 수 있습니다.

주어진 반지름을 가진 n면 정다각형의 면적은?

이제 전체 다각형의 면적은 N*A입니다.

#include <iostream>
#include <cmath>
using namespace std;
float polygonArea(float r, int n){
   return ((r * r * n) * sin((360 / n) * 3.1415 / 180)) / 2; //convert
   angle to rad then calculate
}
int main() {
   float rad = 9.0f;
   int sides = 6;
   cout << "Polygon Area: " << polygonArea(rad, sides);
}

출력

Polygon Area: 210.44