旋转的风车-第12届蓝桥杯Scratch国赛真题第2题

本文转自于”超平的编程课“公众号,更多教程,可移步至公众号。

[导读]:超平老师计划推出Scratch蓝桥杯真题解析100讲,这是超平老师解读Scratch蓝桥真题系列的第6讲。

第12届蓝桥杯青少年组国赛于2021年5月29日举行,本次赛事仍然采取了在线考试。Scratch分为初级组和中级组,其中初级组面向7~10岁孩子,中级组面向11~14岁孩子。

旋转的风车,本题是第12届蓝桥杯Scratch国赛真题编程部分的第2题,初级组和中级组都有此题。题目要求考生使用Scratch画笔绘制一个旋转的风车,本题难度系数为4,分值为60分。

本题将Scratch编程和数学几何知识紧密结合在一起,同时又涉及到帧动画原理及其实现,是一道综合性非常强的跨多学科的好题目。

先来看看题目的详细说明吧。

一.题目说明

编程实现:旋转的风车(画笔题目,使用画笔绘制不能有其他角色出现,否则0分)。

具体要求

1). 点击绿旗,使用画笔画出风车的三角形基座(大小颜色自己设置,笔粗:20);

2). 画出四个长方形组成的扇叶(大小颜色自己设置);

3). 扇叶可以顺时针持续转动(扇叶为原地转动);

4). 在舞台上能够完整呈现画出的风车(基座和扇叶不能分离)。

评判标准

  • 10分:满足要求1;

  • 15分:满足要求2;

  • 20分:满足要求3;

  • 15分:满足要求4。

二.思路分析

乍一看,这是一道简单的编程题,但仔细阅读题目,你会发现并不简单,题目要求使用Scratch中画笔模块相关指令绘制风车,并实现动态旋转效果,而不是画一个风车造型,然后旋转。

如何编程实现呢?我们可以分两步:

  • 绘制静态的风车

  • 让风车旋转起来

其中,第一步相对比较简单,真正的难点是第二步,绘制出来的图形还可以动起来,真的有这么神奇吗?带着这个疑问,我们来看看具体的实现过程吧。

三.程序设计

1.绘制静态的风车

根据刚才的分析,我们先绘制静态的风车,风车是由1个三角形的基座4个长方形构成的扇叶组成。

这里的三角形是一个等腰三角形,也就是左右两条边的长度相同,处在底部的边要短一点。对于Scratch编程而言,其实就是画三条直线,首尾相连,其中两条直线长度一样,两个夹角大小一样,具体怎么做呢?

一般有两种处理方式:

  • 移动指定步数 + 右转某个角度

  • 确定好三个顶点的位置,直接画线

先来看一下第一种画法,其代码如下:

看到这个代码你有什么感觉,是不是有点懵,然后是疑点重重,右转75度、105度度是怎么算出来的,移动150步、80步又是如何确定的呢?

很显然,对于中小学生而言,这种方法理解起来比较困难,可操作性也不强,我们再来看看第二种方法,先确定好三个顶点的位置

第一个顶点比较好确定,就是舞台中心,其坐标为(0,0),根据坐标轴的对称性原理,另外两个顶点相对于Y轴是对称的,如果其中一个顶点到x坐标是50,那么另一个顶点的x坐标就是-50,至于y坐标就简单多了,大致估计一下即可,比如-150,如图所示:

确定好了3个顶点,绘制就非常简单了,为了方便,将这部分的代码定义为一个自制积木,如图:

和第一种方法相比较,这种方法是不是更容易理解了,关键是可操作性强,超平老师强烈推荐这种方式。

接下来我们再绘制扇叶,扇叶是有4个长方形构成的,围成一圈,这个比绘制三角形要简单多了,为了方便还是将其定义为一个自制积木,代码如下:

需要说明两点:

1). 这里使用了嵌套循环,其中内层的循环是绘制一个扇叶(长方形),长宽分别为130和30,单位是步(像素),外层循环是绘制4个扇叶。

2). 我们给自制积木添加了一个参数“方向”,这样就可以灵活设置风车的方向,为下一步的旋转做好准备。

2.让风车旋转起来

如何让风车旋转起来,这就是涉及到帧动画原理了,什么是帧动画?

所谓帧动画,就是在时间轴的每帧上逐帧绘制不同的内容,使其连续播放而成动画。

翻书动画就是一个帧动画,其中的每一页纸就是一帧,翻书的过程就是连续播放,从而形成动画效果。

简单来说,帧动画就是由N张静态图片收集起来,然后通过控制依次显示这些图片,因为人眼"视觉残留"的原因,会让我们造成动画的"错觉",跟放电影的原理一样!

一旦你理解了帧动画,我们要让风车旋转起来就变得容易多了。尽管绘制出来的风车是静止不动的,但是我们可以从一个方向开始(比如90度),先绘制一个风车,然后将方向变为91度,再绘制一个风车,依此类推...

这里的每一个风车就是一帧,每绘制一个新的风车,就将原来的内容擦除掉,这样就可以形成一个帧动画,从而得到一个动态的旋转风车效果。

代码其实非常简单,如下:

至此,一个动态旋转的风车作品就完成了,是不是挺酷的。

四.总结与思考

本题看似简单,涉及到的知识面却不少,包括:

  • Scratch画图流程及绘制相关指令;

  • Scratch中的坐标系及轴对称特性;

  • 嵌套循环的使用;

  • 自制积木及其参数的使用;

  • 三角形和长方形的特点及绘制;

  • 帧动画的原理及编程实现。

不知道你发现了没有,蓝桥杯的比赛题目还是有点水平的,通过一个作品创作就可以将多个跨学科的知识融合到一起,这也正是学习少儿编程的价值所在,培养孩子的跨学科思维和能力

如果你觉得文章对你有所帮助,别忘了点赞,你的鼓励是我坚持继续写下去的最大动力,Thanks♪(・ω・)ノ。

 要素材和源码的,可以联系本人,或者移步至”超平的编程课“公众号。

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值