首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

圆周率π很难求?教你巧用编程软件Scratch再现千年算法“割圆术”

如果说万有引力是牛顿的小苹果,那么圆周率一定是砸中冲之大叔的那只小苹果,因为祖冲之的家喻户晓主要源于“圆周率”π。

祖冲之到底是采用什么样的方法获得这个π值(3.1415926~3.1415927)的呢?

根据古籍记载,三国时期伟大的数学家刘徽利用“割圆术”把圆内接正多边形的面积一直算到了正3072边形,由此而求得了圆周率为 3.1415和 3.1416这两个近似数值。

编程汪查了资料,祖冲之大师推理的具体方法已无据可考,但是很多资料和权威人士倾向于认为祖冲之采用的也是割圆术的方法。

截图来自维基百科

24576边形?这在当时的条件下绝对不是一个小的工程,这要耗费多大的心力和时间才能完成一次推导计算?

想到这里编程汪大胆做了一个假设:如果祖冲之有编程软件Scratch,是不是会取得更大的成绩?

为什么?因为用Scratch画圆简单方便直观啊。

下面我们一起看看用Scratch如何简单方便地画出圆以及圆的内接正多边形吧!

画圆之前,编程汪先给大家科普一下“割圆术”,这个看起来散发着尘土味儿的概念其实没有那么难懂啦。

我们上学的时候都知道圆的内接正多边形“正”的意思就是多边形的每条边都相等

除了圆的内接正三角形、正六边形,还会有圆的内接正七边形、内接正八边形、内接正九边形,以致无限。

割圆术就是利用了“随着内接正多边形边数的增加,内接正多边形的周长和面积也会无限接近圆的周长和面积”这一原理。通过对内接正多边形周长和面积的计算,依据公式求得π值。

科普完毕,接下来编程汪就和大家一起看看如果祖冲之大师穿越,他将如何用Scratch如何简单方便地画出圆以及圆的内接多边形。

我们这次需要用Scratch画出几个圆作为背景,同时在这些背景上绘制出相应的内接正多边形 。

第一步,画圆。

首先,我们在Scratch里的背景区画一个圆,再用同样的方法多复制出几个背景圆。

第二步,画内接正多边形。

画好圆以后,我们就要开始画内接的多边形了,这些多边形怎么画呢?

我们以画等边三角形为例:

只要确定每个角的旋转角度和每条边的边长,就确定一个圆的内接正多边形的形状。

先设计一个非常小的点作为角色,再多复制六个,待会画其他形状会用到。

选中三角形,添加“当小绿旗被点击”积木、控制里的等待1秒、画笔里的清空和抬笔积木,再添加将背景切换为背景1。

准备完成,这样程序初始阶段舞台区只有一个圆,没有其它图形。

我们画圆的内接多边形,设置每个多边形的第一笔都是在同一个坐标(X4,Y164)的位置,即背景圆中图形最上方的中点即可。

顶点确定好以后再画正三角形,动脑想一想这个该怎么实现呢?

先确定每个角的旋转角度:

在舞台区每次角度需要向右旋转120度,所以我们让初始的面向角度是30度,右转120度后,就是150度,150度画出三角形第一条边,旋转120度画出第二条边,再旋转120度画出第三条边,这样画出来的图形就是等边三角形了。

再确定每条边的边长:

我们可以通过移动鼠标,分别移动到圆上距离最远的两个点,观察这两个点的坐标,可以计算出圆的直径(半径*2),通过圆的直径和三角函数可以计算出三角形的三条边长。

编程汪给大家算出来了,我们这个图形里三角形每条边长是Scratch里288步的长度。

最后完善积木代码:

在三角形角色积木的最后添加“广播三角形画完”积木。接着把等边三角形的代码依次复制到正方形、正六边形和正八边形里。

选中正方形,把正方形初始运行的条件改变成当接收到“三角形画完”,把背景切换、画笔颜色、重复执行次数,初始角度和旋转角度都进行相应修改,每次移动步数根据背景圆的大小也进行修改。

一个等边三角形就画好了,想一想我们用了哪些知识?

再看看比较难的正八边形:

让孩子动脑想一想,积木里的面向多少度方向和向右旋转多少度,其具体角度值又是如何得到的?

多边形的内角和是180*(n-2)度,所以正八边形每个角就是180*(8-2的差)再除以8得到135度,如图所示,它的补角就是45度,这也是我们每次需要向右旋转的度数,每次向右旋转45度。

正八边形旋转一周是360度,所以每条边对应的内角就是45度。而每个顶角到正八边形中心的直线恰好平分这个顶角。

所得到的角就是135度的一半,也就是67.5度,她的对顶角也是67.5度,Scratch里竖直朝上是0度,往右旋转是正数角度,因此,画正八边形的初始角度也是67.5度。

好了,我们点击小绿旗运行下:

看起来似乎随着多边形边数的增多,多边形越来越接近一个圆,我们继续增加边数,依次修改代码,画圆的内接正二十边形,正四十边形,正三百六十边形。

(圆内接等边三角形、正八边形、正三百六十边形完整代码)

大家可以尝试下其余几个圆内接正多边形旋转角度和边长是如何算出来的?

可以看到内接正四十边形已经基本上与圆重合,而内接正三百六十边形,我们肉眼已经分辨不出是多边形还是圆形了。

一个简单的例子,就能让孩子从“知其然,更知其所以然”中感受数学的乐趣,激发学习兴趣,让孩子试着从另一种角度解读科学开拓思维,还能提高孩子对极限概念的理解哈。

中国原创免费Scratch教程:

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180116A0VGLS00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券