여기서 우리는 반지름이 주어진 n-면 정다각형의 면적을 구하는 방법을 볼 것입니다. 여기서 반지름은 정점의 중심으로부터의 거리입니다. 이 문제를 해결하기 위해 중심에서 한쪽으로 수직인 하나를 그렸습니다. 각 변의 길이를 '''로 둡니다. 수직은 측면을 두 부분으로 나누는 것입니다. 각 부분의 길이는 a/2입니다. 수직과 하나의 반지름이 각도 x를 만들고 있습니다. 반지름의 길이를 h라고 하자.
여기서 우리는 다각형이 N개의 동일한 삼각형으로 분할된 것을 볼 수 있습니다. 따라서 N면이 있는 다각형의 경우 N개의 삼각형으로 나뉩니다. 따라서 중심의 각도는 360입니다. 이는 360°/N의 다른 각도로 나뉩니다(여기서 360°/6 =60°). 따라서 각도 x는 180°/N입니다. 이제 삼각 방정식을 사용하여 h와 를 쉽게 얻을 수 있습니다.
이제 전체 다각형의 면적은 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