S5Q1 圆内接与圆外切多边形
第五季将推出另一系列的挑战任务,主要是呈现案例,并说明指令。但细部的制作顺序就留给大家去探究。而这次要登场的也是配合 Pi Day 来做一个圆的任务。

背景介绍
当初南北朝的冲冲之(429~500),利用割圆术,计算到正 24576 边形。关于割圆术的递推算法,可参考李永乐的视频:

关于不同时期对圆周率的计算方式推荐视频

从早期阿基米德的96边形得到的3.14 到祖冲之的密率3.14159 与近似分数 355/133 。到16世纪后开始用数列级数来逼近圆周率,例如莱布尼兹的 1-1/3+ 1/5-1/7 ,后来计算机引入后,开始上千位的计算。
任务说明
这个任务的结构就是用滑动条控制 n = 6,12,24,48,96 的变化,让图形可绘制出圆内接与圆外切多边形。对于多边形的制作主要用 Sequence 来达成。然而点数多到 96 边形时,多边形的效果已看不出来,因此用表格区来观察内外多边形周长的变化。
Part1 正方形的边数与滑动条

说明:利用滑动条 p 来控制边数 n = 3*2^p 的变化。在正 96 边形时,外切周长-内接周长 (6.28543-6.28206)< 0.0037,与圆长的误差 0.0037/(2*3.14159) <0.0053 , 图形上已经看不太出差异。因此,边数显示到 96 边即可。
操作:
p = Slider(1,5,1)
n = 2^p
Part2 内接圆与外切圆区的制作

说明:利用序列取得圆上的等分点的内接正多变形。而对于圆外切的多边形,将半径设定为 sec(pi/n)。
操作:
is = Sequence((1;2*k*pi/n),k,0,n)
os = Sequence((sec(pi/n); (2*k-1)*pi/n), k, 0, n)
sis = Sequence(Segment(is(k),is(k+1)), k, 1, n)
sos = Sequence(Segment(os(k),os(k+1)), k, 1, n)
inLen = sum(sis)
outLen = sum(sos)
Part3 表格区的n边形数值

说明:通过表格区显示正内接与正外切多边形的边长差异。
操作:
B2 = A2*2*sin(pi/A2)
C2 = 2*pi
D2 = A2*2*tan(pi/A2)
相关链接
【GGB】https://www.geogebra.org/m/ttft42y8
【Bili】https://www.bilibili.com/video/av95843819