[导读]:超平老师的《Scratch蓝桥杯真题解析100讲》已经全部完成,后续会不定期解读蓝桥真题,这是Scratch蓝桥真题解析第216讲。
第16届蓝桥第3次STEMA测评已于2024年12月22日落下帷幕,编程题一共有5题(初级组只有前4道编程题),分别如下:
旋转旋涡,本题是2024年12月22日举行的蓝桥STEMA测评Scratch编程中级组编程第5题。题目要求编程创作旋转旋涡作品,旋涡持续逆时针旋转,然后使用画笔绘制两个空心圆和9个实心圆,按下左键,实心圆逆时针持续转动,按下右键,实心圆顺时针持续转动。
先来看看题目的要求吧。
一.题目说明
编程实现:
旋转旋涡。
具体要求:
1). 点击绿旗,角色、背景如图所示;

2). 1 秒后,漩涡角色开始逆时针持续旋转;
3). 以漩涡角色的中心为圆心,绘制一个半径为 60 的蓝色圆(能看到绘制的过程),
如图所示;

4). 1 秒后,以漩涡角色的中心为圆心,瞬间绘制一个半径为 110 的红色圆,如图所
示;

5). 1 秒后,瞬间绘制 9 个颜色各不相同的实心圆,它们均匀分布在蓝色圆与红色圆
之间,如图所示;
注意:9 个实心圆不能触碰到蓝色圆与红色圆。

6). 如果按下键盘←按键,9 个实心圆开始逆时针持续转动;
7). 如果按下键盘→按键,9 个实心圆开始顺时针持续转动;
8). 重复执行“具体要求”6)、7)。
二.思路分析
本题只有1个旋涡角色,如图所示:

本题考查的知识点包括画笔、运动编程、按键处理、事件广播机制、变量和自制积木等。
本题和第1次STEMA测评的第5题《旋转的图形-第16届蓝桥第1次STEMA测评Scratch真题第5题》非常类似,重点都是画笔编程。
旋涡角色的功能比较简单,这里就不再讨论了,我们重点来分析圆形绘制及旋转的相关功能和效果。
1. 绘制空心圆
在Scratch编程中,空心圆的绘制一般有如下两种方式:
-
边线法;
-
中心法;
通常来说,我们可以将圆形看成是正360边形,边线法的核心思想是选定一个起点,移动一定的距离,然后旋转1度,重复360次,代码如下:

中心法的核心思想是确定一个圆心,离开圆心一定的距离(半径),绘制一个点,然后回到圆心,旋转1度,再移动半径的距离,绘制下一个点,重复执行360次,代码如下:

两种方法本身没有优劣之分,选择哪种方案要看具体的场景和需求,通常来说,对于有确定中心的图形来说,选择后者更为简单。
本作品要绘制两个不同颜色和大小的空心圆,为了重复利用代码,可以定义一个自制积木,用于绘制指定半径的空心圆。
2.绘制实心圆
实心圆则比较简单,在Scratch编程中,实心圆本质上就是一个点,只需要根据要求设置好画笔的大小即可。
3.旋转图形
关于图形的旋转,在之前的教程中已经介绍过很多次了,其本质就是先擦除再重新绘制,然后重复这个过程,只是每一次绘制的方向发生了变化。
这里的实心圆有左转也有右转,按下←键,实心圆逆时针旋转(左转),按下→键,实心圆顺时针旋转(右转),怎么控制呢?
其实很简单,运用变量思维,定义一个速度变量,默认值为0,按下←键时,将其设置为负数(比如-2),按下→键时,设置为正数(比如2),在主代码中,只需要旋转速度变量即可。
由于绘制图形的代码不能直接在旋涡角色中进行,因此我们需要添加一个画笔角色,一般建议选择画笔,如下:

思路有了,接下来,我们就进入具体的编程实现环节。
三.编程实现
根据上面的思路分析,我们分4步编写程序:
-
旋涡角色的旋转
-
绘制空心圆
-
绘制实心圆
-
圆形的旋转
1. 漩涡角色的旋转
在旋涡角色中编写代码如下:

代码非常简单,说明2点:
1). 一定要养成初始化的好习惯,设置角色的位置;
2). 左转的度数可以自行设定,题目没有具体的要求,不要太快,也不要太慢;
2. 绘制空心圆
根据前面的思路分析,我们采取中心法,切换到画笔角色,定义自制积木如下:

代码不多,说明3点:
1). 这里的画笔粗细设置为2,是根据题目的效果图进行调整得到的,之所以放到自制积木中,是因为后续绘制实心圆还需要改变画笔的粗细;
2). 打点包括落笔和抬笔两个动作,落笔之后立刻抬笔,不要漏了抬笔;
3). 题目要求看到绘制的过程,因此自制积木不能勾选“运行时不刷新屏幕”选项,一定要细心了;
3. 绘制实心圆
接下来,定义绘制9个实心圆的自制积木,代码如下:

代码相对要多一些,强调5点:
1). 要确保每一次绘制的都一样,因此在绘制之前先设置好颜色;
2). 画笔的粗细,也就是实心圆的大小,是根据题目给出的效果进行调整得到的,题目并没有具体的大小,通常需要多尝试几次;
3). 这里要绘制9个实心圆,因此要重复9次,旋转40度,9 * 40 = 360,这就是经典的“360万能公式”模型的应用;
4). 在绘制9个实心圆的时候,采取的也是中心法,从中心点出发,移动到85步的位置,绘制一个实心圆后回到中心,右转40度后,再重复这个过程;
5). 题目要求瞬间绘制,因此在定义自制积木时要勾选“运行时不刷新屏幕”选项;
在画笔角色中,编写代码如下:

点击绿旗,执行代码,效果如下:

4. 圆形的旋转
根据前面的思路分析,旋转的核心是先擦除再重新绘制,这里需要注意一个细节,即所有图形的绘制要在瞬间完成。
前面我们在绘制空心圆时,是慢慢绘制的,可以看到绘制过程的,因此需要重新定义一个自制积木,用于瞬间绘制两个空心圆,代码如下:

代码非常简单,定义“快速绘制空心圆”自制积木的时候,一定要勾选“运行时不刷新屏幕”选项。
接下来,在绿旗代码的末尾继续编写如下代码:

这就是图形旋转的核心代码,每次先擦除所有图形,再快速绘制两个空心圆和9个实心圆,默认情况下,速度为0,因此图形是静止的。
在循环之前,发送了一个“按键”广播,用于处理按键的,在画笔角色中,继续编写代码如下:

代码不难,强调两个细节:
1). 之所以使用广播而不是直接使用“当按下xx键”指令,是确保在图形绘制好之后按键才有效,而不是任何时候按键都能改变速度的值;
2). 每次按键时增加了一个“按键不成立”组合指令,是通常的做法,当然在这个作品中不加也是可以的,不影响效果;
至此,整个作品就创作好了。
四.总结与思考
本题是中级组编程部分第5题,分数为80分,积木块数量66个左右,涉及到的知识点主要包括:
-
运动编程;
-
画笔编程;
-
按键处理;
-
事件广播机制;
-
自制积木;
这是本次stema测评的第5题,也是中级组最后一题,初级组没有此题,难度不小,创作时间约30分钟左右。
本题的重点有两个,一是使用中心法绘制空心圆和实心圆,二是让图形旋转起来,请熟练掌握如下几个模型:
-
中心法绘制;
-
360万能公式;
-
先擦除再绘制;
-
自制积木不刷新;
-
变量思维;
实际上,最近3次的STEMA测评最后一题都是画笔题目,都是基于这几个模型的,你可以将这几道题目放在一起来学习:
如果你觉得文章对你有帮助,别忘了点赞和转发,予人玫瑰,手有余香😄
2万+

被折叠的 条评论
为什么被折叠?



