• 折扇-第10届蓝桥杯Scratch省赛真题第4题


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

    第10届蓝桥杯青少年组省赛于2019年3月24日举行,形式为线下考试。Scratch分为初级组和中级组,其中初级组面向7~10岁孩子,中级组面向11~14岁孩子。

    折扇,本题是第10届蓝桥杯Scratch省赛真题编程第4题,初级组和中级组都有此题,题目要求考生使用Scratch画笔绘制一把折扇,以坐标(0,0)点为中心绘制一把扇子:扇面和扇把都是三分之一圆,扇面的半径为 100 左右,扇把的半径为 20 左右。

    先来看看题目的要求吧。

    一.题目说明

    编程实现:

    以坐标(0,0)点为中心绘制一把扇子:扇面和扇把都是三分之一圆,扇面的半径为 100 左右,扇把的半径为 20 左右。

    具体要求:

    1、每次点击绿旗后,舞台背景为白色,舞台上不显示任何内容。然后连贯地画出扇子图案,中间不可停顿;

    2、画出的扇子颜色为黑色,画笔粗细为 1,扇面和扇把的张角都为三分之一圆(120 度),扇面的半径为 100 左右,扇把的半径为 20 左右;

    3、坐标(0,0)点是构成扇子的这些线段的相交点。

    将程序保存到桌面,命名为“4.sb2”。

    评判标准:

    • 10 分:设置背景为白色,每次运行程序都会清空屏幕;

    • 30 分:在 10 分标准基础上,能够连贯地画出扇面;但是:颜色不是黑色,或者扇面、扇把的长度明显不合乎要求,或者扇子的张角明显不是 120 度;

    • 50 分:完全符合题目要求。 

    二.思路分析

    这是一道画图题,在Scratch中,画图通常分为3步:

    • 准备画布

    • 准备画笔

    • 绘制图形

    其中,准备画布就是清空舞台,通常是使用指令”全部擦除“,准备画笔包括画笔的颜色和粗细,而绘制图形则需要在落笔之后控制角色移动,画笔就会在角色运动的轨迹上按设置好的颜色和粗细涂色,绘制完成之后抬笔即可,这和我们日常生活中画画的过程是完全一致的。

    本题要求绘制的折扇,由扇面和扇把两部分组成,很多同学自然而然采取了分别绘制扇面和扇把的方案,这个当然是可行的,但实际上还有更简单的方案。

    如果将实心圆看成是由360条直线构成的图形,那么这里的折扇则是由120条直线构成。除此之外,它们的旋转点也不一样,对于圆而言,旋转点在直线的中间位置,对于折扇而言,旋转点在靠近扇把的一端,如图:

    如此一来,问题就变得简单了,只需要控制好旋转点就可以一次性画出折扇。

    三.编程实现

    根据前面的思路分析,我们可以分3步来编写程序:

    • 准备工作

    • 绘制折扇

    1. 准备工作

    准备工作比较简单,包括清空舞台和设置画笔,代码如图:

    2. 绘制折扇

    首先要确定好旋转点和绘制第一条直线的方法,如图:

    从图中可以看出,旋转点处于舞台下方,y坐标大概为-100,x坐标直接设置为0即可。而绘制第一条线的方向是左上方,整个扇面为120度,根据对称原理,左右各占60度,所以初始方向可以设置为-60。

    然后就是要确定扇面和扇把的长度了,这里我将扇面长度设置为200步,扇把长度设置为30步。

    接下来就可以开始绘制了,具体过程也比较简单,就是让小猫沿着-60度方向移动200步,然后反向移动230步,这样第一条直线就绘制完成了,接着继续移动30步,这样小猫就回到旋转点了,此时需要右转1度,重复此过程120次即可,具体的代码如下:

    需要说明一点,就是这里的落笔和抬笔,为了确保不重复画线,在此处我只让反向移到230步的时候才落笔。在实际编程的时候,重复绘制问题也是可以的。

    四.总结与思考

    本题难度系数为5,积木块数量在14个左右,涉及到的知识点主要包括:

    • 熟悉Scratch舞台坐标系,并快速确定角色的坐标;

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

    • 灵活设置角色方向;

    • 绘制圆形和扇形的编程技巧。

    本题的代码并不多,有一定的难度,关键是如何找到最简单最高效的方法,所谓最简单,就是代码量最少;所谓最高效,就是效果好,比如这里将折扇的旋转点作为关键,就可以非常精确的控制折扇的位置了,而不是像很多同学要通过多次尝试的方法来确定折扇的位置,增加了很多不确定性。

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

  • 相关阅读:
    Flink之DataStream API开发Flink程序过程与Flink常见数据类型
    解决kafka启动成功后然后又关闭了的问题
    java毕业设计旧物置换网站(附源码、数据库)
    【C++】哈希的应用 -- 位图
    解决uniapp软键盘弹起导致页面fixed定位元素被顶上去
    openEuler快速入门-Navicat远程链接openGauss数据库
    pytest合集(11)— conftest.py文件
    如何在 Protocol Buffers (Proto) 文件中弃用一个字段
    C#学习相关系列之Linq用法---where和select用法(二)
    Java计算机毕业设计实验室设备管理系统演示录像2020源码+系统+数据库+lw文档
  • 原文地址:https://blog.csdn.net/diamondwang2012/article/details/127670098