每个正n边型都可以分成n个如图所示的三角形,每个三角形的角a都相等,假设斜边长都为1. 当n=4时,角a=90°;当n=8时,角a=45°;当n=16时,角a=22.5°...... 当n=2的a次方时,角a=360/n°. 又因为sin的半角公式:
可以算出每个角a的sin值,又三角形面积公式=absinc/2,可得三角形面积,n边形面积为n个三角形相加,,而n边形的面积又近似等于圆的面积,根据圆面积公式s=Πr²可得Π值. 下面的代码计算了2²²边形的面积计算出的Π值:
当次数超过22时,因为浮点数精度的问题,sin值的计算结果出现偏差,Π的结果也会出现错误.