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

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

第11届蓝桥杯青少年组国赛原定于2020年4月25日举行,因疫情推迟到2020年10月31日,并且改为在线考试。Scratch分为初级组和中级组,其中初级组面向7~10岁孩子,中级组面向11~14岁孩子。

3D打印小猫,本题是第11届蓝桥杯Scratch国赛真题编程第6题,是中级组最后一题,初级组没有此题。题目要求考生使用Scratch编程模拟3D打印技术来打印一只小猫,本题难度系数为5。

本题将编程和当下最时髦的黑科技之一-3D打印相结合,非常具有前瞻性,创意十足,先来看看题目的详细说明吧。

一.题目说明

背景信息:3D打印技术,它与普通打印工作原理基本相同,打印机内装有液体或粉末等“打印材料”,与电脑连接后,通过电脑控制把“打印材料”一层层叠加起来,最终把计算机上的蓝图变成实物。

编程实现:通过滑杆控制小猫造型变化,按下空格键,传感器进行扫描并在小猫右侧打印它的造型。

具体要求

1). 当小绿旗被点击后,角色出现在舞台对应位置;

2). 通过滑杆控制小猫形状变化(外观特效:鱼眼,滑杆范围:-100~100);

3). 按下空格键,小猫左侧出现传感从下到上对小猫进行全身扫描,同时在右侧从下到上依次画出扫描过的部分身体;

4). 当完成扫描后,右侧程序完整造型效果;

5). 点击绿旗,程序可重新开始。

二.思路分析

对于大多数中小学生来说,3D打印技术是一个比较新颖的概念,如果不了解3D打印原理,是很难找到解题思路的。

什么是3D打印呢,简单来说,3D打印就是以数字模型为基础,运用可粘合材料,通过逐层打印的方式来构造物体的技术

3D打印技术有两个关键点:

  • 建立数字模型

  • 逐层打印

逐层打印相对比较好理解一点,我们可以将小猫分成若干层,比如150层,每一层又由若干个点构成的。如果能确定小猫的层数,以及每一层中所有点的位置,那么我们就可以使用Scratch画笔来绘制出黑色的小猫造型了。

每一层中各个点的位置,这就构成了数字模型,很显然,本题中并没有直接给出数字模型,而需要我们通过编程建立小猫的数字模型。我们可以模拟使用扫描仪扫描物体的过程,扫描的时候也是逐层进行,每一层都从左至右进行逐点扫描,并记录下有效打印点的位置,这样就可以建立数字模型。

这有点类似于在LED屏幕中显示文字,如图所示:

这是一个 16 x 16 的LED屏幕,点亮不同位置的点,就可以显示不同的文字,生活中的交通信号灯、电子屏都是利用这个原理来实现的。

搞清楚了3D打印过程及原理,我们的思路就变得非常清晰了,那就是先模拟扫描过程,逐行扫描小猫,记录下各个有效打印点的坐标,建立数据模型,与此同时,在小猫的右侧打印出小猫造型。

本题一共使用了4个角色,如图所示:

三.编程实现

根据上面的思路分析,我们可以分3步进行编程:

  • 鱼眼特效

  • 模拟扫描过程,建立数据模型

  • 逐层打印小猫

1.鱼眼特效

根据题目要求,通过滑杆控制小猫实现鱼眼特效在-100到100之间变化。这个功能比较简单,先建立一个变量,将其命名为”n“,并将其设置为滑杆模式,如图:

当变量变为滑杆模式时,再使用鼠标右键点击变量,会多出一个”改变滑杆范围“选项,如图:

点击”改变滑杆范围“选项,弹出如下窗口,将最小值设为-100,最大值设为100,再点击确定按钮。

接下来就可以编写代码了,切换到小猫角色,编写代码如下:

这样一来,当使用鼠标调整滑杆范围时,小猫就会呈现相应的鱼眼特效,非常有意思。

2. 模拟扫描过程,建立数据模型

根据前面的分析,我们需要建立数据模型,这就需要对小猫进行逐层扫描。在扫描过程中,对点的大小把握显得至关重要,点越小,效果越好,但需要扫描的次数也更多,一般来说,选择1个像素(等于Scratch中的1步)是最合适的。

在Scratch角色库中,没有1个像素大小的角色,该怎么办呢?

解决方案就是绘制一个小圆点作为扫描点角色,先将该角色移到小猫的左下方,并隐藏起来,等待玩家按下空格键,显示角色,并进行逐层扫描,代码如下:

这里使用了两层嵌套循环,外层的循环重复执行了125次,表示将小猫分125层进行逐行扫描,每一层扫描完毕,都回到左边,并向上移动一层,进行下一层的扫描。

内层循环则是自左至右重复执行127次,每移动1步,都需要记录下该点的x,y坐标,分别保存在变量”扫描点x“和”扫描点y“中。在扫描过程中,如果碰到小猫,就说明这个点是有效的打印点,将其x,y坐标保存到变量”打印点x“和”打印点y“中。

这里还发送了两个广播,其中”扫描“广播是发送给角色”扫描仪“的,而”打印“广播则发送给”画笔“角色,用来打印小猫。

切换到”扫描仪“角色,编写代码如下:

代码非常简单,也很容易理解,该角色的作用就是让用户看到扫描仪扫描的过程,但真正完成扫描工作的是”扫描点“角色。

3. 逐层打印小猫

在扫描过程中,我们已经通过变量”打印点x“和”打印点y“记录下有效的打印点坐标,并且发送了”打印“广播。现在,我们只需要在接收到”打印“广播时,完成打印小猫动作即可。

打印需要在一个新的角色中完成,添加一个”画笔“角色,编写代码如下:

需要注意的是,这里的x坐标值为”打印点x + 120“,其作用是在小猫的右侧120步处开始打印小猫,如果没有右移的话,那么打印出来的小猫和原来的小猫会重叠,至于右移多少,可以自己设定,比如100步、150步都可以。

四.总结与思考

本题代码并不复杂,一共50来个积木块,但涉及到的知识点不少,主要包括:

  • 绘制新角色;

  • 鱼眼特效的设置;

  • 变量的使用,尤其是滑杆变量的使用及滑杆范围设置;

  • 嵌套循环的使用;

  • 事件广播机制;

  • Scratch画图。

作为压轴题目,从代码的角度来讲,这里没有复杂的逻辑,真正的难点在于对3D打印原理的理解,并通过Scratch编程来模拟这个打印流程。

不知道你发现了没有,编程的学习完全不同于学校文化课的学习。编程学习是以解决实际问题为导向的,它没有固定的标准答案,需要孩子不停的思考(分析问题)、尝试(发现问题)、直到完成任务(解决问题),这个过程其实就是编程所倡导的项目制教学(PBL)。

针对本题,你还可以做进一步探索,尝试完成如下功能:

  • 打印出小猫的倒影;

  • 打印出一模一样的彩色小猫。

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

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

3D打印小猫-第11届蓝桥杯Scratch国赛真题第6题相关推荐

  1. 魔法师盖城墙-第11届蓝桥杯Scratch国赛真题第4题

    本文同步发表于"超平的编程课"公众号,更多教程,可移步至公众号. [导读]:超平老师计划推出Scratch蓝桥杯真题解析100讲,这是超平老师解读Scratch蓝桥真题系列的第10 ...

  2. 模拟昼夜交替-第11届蓝桥杯Scratch国赛真题第1题

    本文同步发表于"超平的编程课"公众号,更多教程,可移步至公众号. [导读]:超平老师计划推出Scratch蓝桥杯真题解析100讲,这是超平老师解读Scratch蓝桥真题系列的第13 ...

  3. 对对碰-第11届蓝桥杯Scratch省赛真题第6题

    [导读]:超平老师计划推出Scratch蓝桥杯真题解析100讲,这是超平老师解读Scratch蓝桥真题系列的第56讲. 第11届蓝桥杯青少年组省赛原定于2020年3月7日举行,因疫情延期到2020年6 ...

  4. 英雄之盾-第11届蓝桥杯Scratch省赛真题第4题

    [导读]:超平老师计划推出Scratch蓝桥杯真题解析100讲,这是超平老师解读Scratch蓝桥真题系列的第58讲. 第11届蓝桥杯青少年组省赛原定于2020年3月7日举行,因疫情延期到2020年6 ...

  5. 王子变青蛙-第11届蓝桥杯Scratch省赛真题第2题

    [导读]:超平老师计划推出Scratch蓝桥杯真题解析100讲,这是超平老师解读Scratch蓝桥真题系列的第60讲. 第11届蓝桥杯青少年组省赛原定于2020年3月7日举行,因疫情延期到2020年6 ...

  6. 海底世界-第11届蓝桥杯Scratch省赛真题第3题

    [导读]:超平老师计划推出Scratch蓝桥杯真题解析100讲,这是超平老师解读Scratch蓝桥真题系列的第59讲. 第11届蓝桥杯青少年组省赛原定于2020年3月7日举行,因疫情延期到2020年6 ...

  7. 捉迷藏之二-第10届蓝桥杯Scratch国赛真题第6题程序2

    本文同步发表于"超平的编程课"公众号,更多教程,可移步至公众号. [导读]:超平老师计划推出Scratch蓝桥杯真题解析100讲,这是超平老师解读Scratch蓝桥真题系列的第15 ...

  8. 跑酷游戏-第13届蓝桥杯Scratch国赛真题第3题

    [导读]:超平老师计划推出Scratch蓝桥杯真题解析100讲,这是超平老师解读Scratch蓝桥真题系列的第27讲. 第13届蓝桥杯青少年组国赛于2022年5月29日举行,形式为在线考试.Scrat ...

  9. 捉迷藏之四-第10届蓝桥杯Scratch国赛真题第6题程序4

    本文同步发表于"超平的编程课"公众号,更多教程,可移步至公众号. [导读]:超平老师计划推出Scratch蓝桥杯真题解析100讲,这是超平老师解读Scratch蓝桥真题系列的第17 ...

最新文章

  1. Linux在线求助 man page
  2. 2021年春季学期-信号与系统-第一次作业参考答案-第三题
  3. C# 实现多线程的同步方法详解
  4. Swift应用案例 2.闭包入门到精通
  5. H5新增特性之语义化标签
  6. Hadoop,MapReduce
  7. C++基础::字符串流(stringstream)
  8. 大数据可视化的意义在哪
  9. linux使用---automake学习(从原理到实践,一步步完成automake)
  10. 《深入浅出统计学》之统计学知识小结
  11. php huoqv 多选,镊噍虫刻蘖舌#joquycg
  12. 五大主流浏览器内核以及国内常见的几种浏览器内核总结
  13. 美国3月通胀见顶了吗?
  14. 计算机对用户的操作做出反应,云南省计算机二级VB考试真题题库
  15. 利用Data URL(data:image/jpg;base64,)加速网页加载的方法
  16. 魔兽世界编程宝典(4-1)
  17. 盘点电脑系统变慢七大原因
  18. Mac提升效率软件集锦
  19. poi实现word文档转pdf格式
  20. Django之Form表单验证组件Tyrion

热门文章

  1. Python中数字按位取反的方法
  2. 海滩上有一堆桃子,五只猴子来分。(C语言实现)
  3. ubuntu使用dvd镜像文件安装自带软件
  4. 8月1日科技资讯|微信支付将推双面屏;库克谈收购英特尔基带业务;Chrome 76 稳定版发布
  5. halcon仿射变换demo
  6. Redis如何实现消息队列
  7. UDP和TCP的报文详解
  8. (七)汇编语言——更灵活的定位内存地址的方法
  9. js下载图片、js下载文件、js文件下载插件介绍和使用方法 download.js
  10. 无法连接到逻辑磁盘管理器服务