小码农

趣味编程-面向每个人的创意编程

Scratch画圆

avatar 2022-12-12 14:40 641次浏览 0 条评论 Scratch

今天我们学习如何画圆。画正方形和长方形我们很清楚每画一个边之后旋转90度画另外一个边,旋转4次就可以了。但是圆形我们却不能直观看成每次移动的角度以及移动多少次。因此要画圆,先了了解一些圆的基本概念。

虽然生活中圆形随处可见,但是关于圆形的知识要到小学6年级才会学习。(参考 小学数学六年级圆练习题)圆的相关概念很多,但我们利用Scratch画圆目前只需要理解“圆心”和“半径”这个概念。这两个概念决定了我们的圆的位置和大小。

圆心(the centre of a circle):圆的中心,到圆上任何点的距离都相等。图中的O点。
半径(radius):从其中心到其周边的任何线段。图中O到A或者B的距离
圆周角度:圆的一周角度是360度

编程

1、思路

Scratch并没有直接提供画圆的指令,与画长方形和正方形只需要向上下左右不同方向移动画笔不同,圆形从直观上并没有直接移动的方向。但是我们实际上也只有转方向,移动,落笔这几个指令可以用上。如果一定要说有方向的话那就是每个点的方向都不同。

今天我们要用的方法是切线相似逼近法– 也就是说每次移动一小段距离然后转动中心点切线方向的角度。这样实际上是用正n边型来模拟圆形。我们以六边形为例来计算:

2、计算每次旋转的角度

  • 已知: 半径r和每次移动的距离len,
  • 求:每次旋转的角度a
  • 算法:计算如图所示,计算过程用到了三角函数。(这部分内容孩子理解会有困难,但是需要告诉孩子这种模拟逼近的思维方式)以正六边形为例计算出来a是60°
    计算要旋转的角度a

3、计算需要移动次数。

  • 已知:圆一圈360°,每次移动角度是上面计算出来的a
  • 求:移动次数
  • 算法:360/a

4、完成脚本

有了算法,整个编码过程就出来了

脚本

这里的圆的半径是100,为了最大程度逼近圆形,每次移动长度是2。
下面是我们运行的结果:

画圆

怎么样, 这个看上去还是挺圆的吧!

总结:

孩子会画正方形后自然提出了画圆形的想法。我们首先介绍了圆形的概念和圆形的基本参数。然后介绍了我们这里用的是正n边型来模拟和逼近圆形的方法,其中画圆用到了三角函数的知识还是有些难度的,给孩子讲的时候这部分可以略过,但是要让孩子理解到这些长度和角度的关系,以及整个逼近法的思路。最后用scratch提供的asin三角函数计算完成我们的整个算法和绘制过程。

发表评论