다각형(polygon)은 'n'개의 변으로 이루어진 닫힌 도형입니다. n변 정다각형이란 길이가 모두 같은 n개의 변을 가진 다각형을 의미하며, 다각형의 반지름(radius)은 중심에서 꼭짓점까지의 거리를 말합니다.
아래 그림에서 확인할 수 있듯이, 하나의 정다각형은 중심을 기준으로 n개의 동일한 삼각형으로 나눌 수 있습니다.
삼각형의 넓이를 구하는 기본 공식은 다음과 같습니다.
삼각형의 넓이 = (밑변 × 높이) / 2
여기에 삼각법(trigonometry)을 적용하면, 중심에서 나뉜 작은 삼각형 하나의 넓이는 다음과 같이 표현할 수 있습니다.
넓이 = r2·sin(t)·cos(t) = (r2·sin(2t)) / 2
따라서 정다각형의 전체 넓이는 한 삼각형의 넓이에 변의 개수 n을 곱한 값이 됩니다.
정다각형의 넓이 = n × (한 삼각형의 넓이)
= n × r2 × sin(2t) / 2
= n × r2 × sin(360/n) / 2

예제 코드
#include <stdio.h>
#include <math.h>
int main() {
float r = 4, n = 12;
float area = ((r * r * n) * sin((360 / n) * 3.14159 / 180)) / 2;
printf("area = %f", area);
return 0;
}
위 코드에서 r은 반지름, n은 변의 개수를 나타냅니다. C 언어의 sin() 함수는 라디안 단위를 사용하므로, 각도인 360/n을 라디안으로 변환하기 위해 π/180(3.14159/180)을 곱해주는 것이 핵심입니다.
출력 결과
area = 47.999962
반지름이 4이고 변이 12개인 정다각형의 넓이가 약 48.0으로 계산된 것을 확인할 수 있습니다. 이 공식은 변의 개수와 반지름만 알면 어떤 정다각형이든 넓이를 손쉽게 구할 수 있다는 장점이 있습니다.