神奇画笔-第10届蓝桥杯Scratch国赛真题第2题

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

第10届蓝桥杯青少年组国赛于2019年5月25日举行,形式为线下考试,考生自带电脑。Scratch分为初级组和中级组,其中初级组面向7~10岁孩子,中级组面向11~14岁孩子。

神奇画笔,本题是第10届蓝桥杯Scratch国赛真题编程第2题,题目要求考生使用Scratch画笔模块相关指令绘制图形,包括三个子程序。其中,程序1要求绘制一个圆形,程序2要求绘制一个颜色变化的圆形螺旋,程序3要求绘制颜色渐变的螺旋多边形。

先来看看题目的要求吧。

作品说明

程序1

编程实现:

利用画笔(不是造型编辑工具)绘制1个圆形,画笔的颜色、粗细自行定义,但最终画成的圆形需要完全在画布范围内。

提示:画圆的方法:前进一点点,再旋转一点点,如此循环多次。

具体要求:

1). 点击绿旗,清空舞台;

2). 在舞台上逐步连贯地画出一个圆,圆的大小,画笔颜色、粗细不限制,圆形完全在画布范围内。

评判标准:

  • 10分:符合具体要求1),即点击绿旗,舞台能够清空;
  • 30分:在10分基础上,符合具体要求2),即能够逐步连贯地画出圆形(用画笔功能而不是用造型编辑功能实现)。

程序2

编程实现:

绘制一个颜色变化的圆形螺旋,画螺旋与画圆形的方法类似。

提示:画圆形的方法:前进一点点,旋转一点点,如此循环多次。画螺旋的方法:前进的距离比上次多一点点,或者旋转的角度比上次小一点点,如此循环多次。

图片[1]-scratch神奇画笔_第10届蓝桥杯scratch国赛教程-超平的编程课

具体要求:

1). 点击绿旗,清空舞台;

2). 在舞台上画出一个螺旋,螺旋的大小、旋转方向和画笔粗细不限制;

3). 螺旋的颜色逐渐化。

评判标准:

  • 10分:符合具体要求1),即点击绿旗,舞台清空;
  • 30分:在10分基础上,符合具体要求2),即连贯地画出螺旋;
  • 40分:在30分基础上,符合具体要求3),即螺旋颜色渐变。

程序3

编程实现:

点击绿旗,询问边数,绘制出颜色渐变的螺旋多边形。例如,下图分别为输入“4”和“5”的绘制效果。

图片[2]-scratch神奇画笔_第10届蓝桥杯scratch国赛教程-超平的编程课

具体要求:

1). 点击绿旗,清空舞台,询问“请输入边数”;

2). 按照输入边数,连贯地绘制螺旋多边形;

3). 绘制的螺旋多边形是颜色渐变的。

评判标准:

  • 10分:符合具体要求1),即点击绿旗,清空舞台,询间“请输入边数”;
  • 30分:在10分基础上,符合具体要求2),即能够连贯地画出螺旋多边形;
  • 40分:在30分基础上,符合具体要求3),即颜色渐变。

效果预览

在编程之前,先来看看作品的完整效果吧:

思路分析

本题有3个程序,由易到难,而且它们之间是有关联的,程序1是程序2的基础,程序2又是程序3的基础。

其中程序1要求绘制一个空心的圆形,关于绘制圆形,在Scratch中一般有两种方式,一是指定圆心和半径,并在圆心和圆周上来回移动及旋转的绘制方法,二是只在圆周上移动和旋转。

题目已经给出了提示,前进一点点,再旋转一点点,如此循环多次,很明显,这指的是第二种方式。搞定了圆形的绘制,圆形螺旋也就比较简单了,而且题目也给出了提示,在绘制圆的基础上,让前进的距离比上次多一点点,或者旋转的角度比上次小一点点,如此循环多次。

程序3,则是要绘制指定边数的螺旋多边形,其画法和程序2基本一致,不同的是循环的次数和旋转的角度。

编程实现

根据题意和思路分析,我们可以分如下3步来编写程序:

  • 绘制空心圆(程序1)
  • 绘制渐变的螺旋圆形(程序2)
  • 绘制渐变的螺旋多边形(程序3)

1. 绘制空心圆(程序1)

在绘制圆形之前,我们先来看看正方形的绘制,正方形有4条边,对应的4个角都是直角,也就是90度。绘制起来也很简单,先绘制一条边,然后旋转90度,重复4次这个过程即可,注意这里的数学关系,重复次数 = 边数,旋转角度 = 360 ÷ 边数。

如果是正六边形呢,可以先绘制一条边,然后旋转60度,重复6次这个过程即可,你发现这里的数学关系了么?重复次数 = 边数,旋转角度 = 360 ÷ 边数。

实际上,对于任何一个正多边形,都遵循一个万能公式,即:重复次数 x 转角 = 360。而圆形可以看作是一个360条边的正多边形,所以需要重复360次,每次旋转的角度就是1了。题目中提示的“前进一点点,再旋转一点点,如此循环多次”就是这个意思,只是没有明确循环的次数和旋转角度。

明白了圆形的绘制原理,编程就变得非常简单了,编写代码如下:

图片[3]-scratch神奇画笔_第10届蓝桥杯scratch国赛教程-超平的编程课

需要注意的是,这里的移动步数不宜过大,由于舞台的大小是固定的,随着边数的增加,步数要逐渐减小,在编程的时候,可以多尝试几次,找到合适的步数。

2. 绘制渐变的螺旋圆形(程序2)

有了程序1的基础,绘制螺旋圆形也就简单了,题目的提示中,给出了两种方法,一是前进的距离比上一次多一点点,二是旋转的角度比上一次小一点点。我们只需要采取其中一种即可,这里我们使用前者。

在循环的过程中,每次前进的距离比上一次多一点点,这说明移动的步数不是固定的,而应该使用变量,每循环一次,就将变量增加一点点,同时需要变化的是颜色,编写代码如下:

图片[4]-scratch神奇画笔_第10届蓝桥杯scratch国赛教程-超平的编程课

代码中的重复次数是300,右转了15度,边长每次增加0.1,这些值并不是唯一的,你可以多尝试几次。

3. 绘制渐变的螺旋多边形(程序3)

根据上面的思路分析,所谓的正多边形,只需要确定其边数,那么就可以通过万能公式重复次数(边数) x 转角 = 360来计算其旋转角度了。

那边数是多少呢,需要通过询问才能得知,所以这里需要使用问答指令,即“询问并等待”和“回答”两个指令了,具体的代码如下:

图片[5]-scratch神奇画笔_第10届蓝桥杯scratch国赛教程-超平的编程课

核心代码和程序2基本一样,不同的是这里的转角是根据“回答”计算出来的,至于重复的次数和边长的大小及每次增加的值都是可以灵活调整的。

总结与思考

本题有一定的难度,3个程序的总代码量在60个积木块左右,涉及到的知识点主要包括:

  • Scratch绘图的流程及相关指令;
  • 有限循环,这里主要是指“重复执行10次”指令;
  • 和用户的问答交互,包括“询问并等待”和“回答”指令;
  • 变量的使用,包括变量的定义,初始化和修改;
  • 运动编程,包括移动和转向;
  • 数学几何知识。

看似是一道简单的画图编程题,实际上包含了不少数学知识,比如正多边形和圆形的特点,角度的计算,尤其是边数和转角之间的关系。

所以说,编程和数学是相辅相成的,通过编程,平时看起来貌似无用的数学知识立刻变得价值连城,这不就是我们经常挂在嘴边的学以致用嘛。反之,有了良好的数学基础,在编写程序的时候,你会显得游刃有余, 比别人编写地更快、更优。

不要忘了,计算机最初发明的时候,都是用于解决科学计算问题的。


需要素材和源代码的,可以转到这里,神奇画笔-2019.5.25蓝桥杯国赛第2题

© 版权声明
THE END
喜欢就支持一下吧
点赞13 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容