이 글에서는 반지름이 주어졌을 때 n변 정다각형의 넓이를 구하는 방법을 살펴보겠습니다. 여기서 말하는 반지름은 다각형의 중심에서 임의의 꼭짓점까지의 거리를 의미합니다.
문제를 해결하기 위해 중심에서 한 변으로 수선을 내립니다. 각 변의 길이를 a라고 하면, 수선은 이 변을 두 부분으로 나누며 각 부분의 길이는 a/2가 됩니다. 수선과 반지름이 이루는 각을 x, 반지름의 길이를 r이라고 하겠습니다.

정다각형을 삼각형으로 나누기
그림에서 확인할 수 있듯이 정다각형은 N개의 합동인 삼각형으로 나눌 수 있습니다. 중심에서의 각도 총합은 360°이므로, 이를 N등분하면 각 중심각은 360°/N이 됩니다(N=6일 경우 360°/6 = 60°). 따라서 그 절반에 해당하는 각 x는 180°/N입니다. 이제 삼각함수 공식을 활용하면 높이와 한 변의 길이를 손쉽게 계산할 수 있습니다.

넓이 공식
한 개의 삼각형 넓이를 A라고 할 때, 다각형 전체의 넓이는 N × A입니다. 이를 식으로 정리하면 다음과 같습니다.
Area = (n × r² × sin(360°/n)) / 2
여기서 삼각함수 계산을 위해서는 각도를 라디안 단위로 변환해야 하므로, 360°/n 값에 π/180을 곱해주어야 합니다.
예제 코드
#include <iostream>
#include <cmath>
using namespace std;
float polygonArea(float r, int n){
return ((r * r * n) * sin((360 / n) * 3.1415 / 180)) / 2; // 각도를 라디안으로 변환한 후 계산
}
int main() {
float rad = 9.0f;
int sides = 6;
cout << "Polygon Area: " << polygonArea(rad, sides);
}실행 결과
Polygon Area: 210.44
위 예제에서는 반지름이 9이고 변의 개수가 6인 정육각형의 넓이를 계산하여 약 210.44라는 결과를 얻었습니다. 이처럼 도형을 삼각형으로 분할하는 아이디어만 있으면, 변의 개수와 상관없이 어떤 정다각형의 넓이든 간단한 공식 하나로 구할 수 있습니다.