รูปหลายเหลี่ยมปกติ N ด้าน สามารถแบ่งเป็น N สามเหลี่ยมเท่ากัน โดยแต่ละสามเหลี่ยมมีฐานเป็นด้านของรูปหลายเหลี่ยม และความสูงคือ apothem
กำหนดรัศมี (ระยะจากศูนย์กลางถึงจุดยอด) = r
มุมกลางแต่ละด้าน = 360°/n
พื้นที่สามเหลี่ยมหนึ่งรูป = ½ × r² × sin(360°/n)
พื้นที่รูปหลายเหลี่ยม = n × ½ × r² × sin(360°/n) = (n × r² × sin(360°/n)) / 2
โค้ดตัวอย่าง
#include <stdio.h>
#include <math.h>
int main() {
float r = 4;
int n = 12;
float area = (r * r * n * sin((360.0 / n) * M_PI / 180)) / 2;
printf("area = %f", area);
return 0;
}
ผลลัพธ์
area = 47.999962