问题描述:
很久以前推送过这样一篇文章,Python使用matplotlib绘制正多边形逼近圆周
很容易得知,当正多边形的边数变多时,多边形的周长会越来越接近外接圆的周长。
对于圆周,我们知道周长与直径的关系,也就是下面的计算公式
(1)改写如下
(2)如果使用正多边形模拟圆周的话,把正多边形的周长和外接圆的半径带入上面的公式,可以得到圆周率的近似值,边数越多,计算得到的圆周率近似值越接近真实值。
假设我们使用正n边形模拟圆周,上图中O为圆心,A和B是正多边形上两个相邻的顶点,这两个点必然在圆周上,OD垂直于AB,那么OD平分角AOB,而角AOB=360/n。于是有,上图中多边形边长的一半,也就是AD,等于半径OA与角AOD正弦值的乘积,也就是
(3)那么多边形周长、外接圆直径和上图中角AOD之间的关系为
(4)联立公式(2)和公式(4),可得
根据上面的结论,编写程序如下:
运行结果如下: