admin 管理员组

文章数量: 1086019


2024年1月18日发(作者:typedef struct information)

Scratch少儿趣味编程

Scratch克隆体快速画奥运五环

前面讲了用Scratch画奥运五环,总觉得画的太慢,有没有更好的办法呢?忽然想到用克隆体同时画五个环,然后修改环与环之间的叠加问题。请看下图:

有了想法就要想如何实现这一过程,要同时画五个环,那就要克隆五个克隆体,让他们同时去画五个圆环,如何能让他们正好各自去画自己的圆环呢?这就要每克隆一个克隆体给它编个号,让它对号入座,让满足条件的克隆体去干他该干的事,这样就能同时画五个圆环。

一、画五环。

先建立一个自定义积木“画圆”解决画圆的问题。

1

Scratch少儿趣味编程

如上图,先输入布尔值“条件”再输入“圆心x”、“圆心y”、“半径”。下面给出这个“画圆”积木的定义。

2

Scratch少儿趣味编程

首先是“抬笔”,将角色的大小设定为40,面向90°的方向,移到“圆心x”、“圆心y+半径”的坐标,“落笔”,重复执行360次:移动“半径×3.14×2÷360”步,右转1°,然后“抬笔”。这是有“条件”的,这是本文最为重要的一点,在自定义积木中加了一个条件,也是我琢磨了很久才想到的。

下面是画五环的开始程序,当绿旗被点击时,全部擦除,将笔的粗细设为10,隐藏本体,此处需要定义一个全局变量“五环”,将“五环”的3

Scratch少儿趣味编程

初始值设为0,重复执行5次,产生五个克隆体,每次将五环的值增加1,这样就相当于给克隆体编了号,

当克隆体启动时,首先显示克隆体,设置好相应的颜色,让满足条件的克隆体对号入座去画各自的圆环。

4

Scratch少儿趣味编程

用上面的代码画出的五环如下图:

5

Scratch少儿趣味编程

二、修改环与环之间的叠加问题。

要想实现环环相扣,就需要在环与环的两个交接处把其中的一个交接处用下面的颜色覆盖上面的颜色,即重画一小段圆弧,这样两个环就看起来连在一起了。

仿照画圆的方法,我们定义一个画圆弧的积木:画圆弧,如下图:

首先移到圆心,面向“起点”方向移动“半径”步,到了圆弧的起点位置,面向“起点”+90度的方向,准备画圆弧。此时需要建立一个变量6

Scratch少儿趣味编程

“圆弧度数”,而圆弧的度数的计算方法可以用“终点”-“起点”算出,如果“终点”在6点钟到12点钟方向或“起点”也在这个方向,那么算出的“圆弧度数”就是负数,这怎么解决呢?根据角度向量原理,因为圆周是360度,给这个“圆弧度数”加360度圆弧度数是不变的。现在落笔,重复执行“圆弧度数”次,移动圆周长的360分之一,右转1度,画出的图形就是一段圆弧。

那么奥运五环的环环相扣怎么画呢?根据实际图形判断需要覆盖的圆弧的起始位置与终止位置,下面是我的画法:需要改动四处,也就是画四段圆弧。

当接受到“五环已经画完”时,删除克隆体,为什么要广播一条消息来删除克隆体呢?这是由克隆体的特性决定的,通过多次试验才得出一个圆满的解决办法,同时接收到这条广播才能开始画圆弧,实现环环相扣的效果。

7

Scratch少儿趣味编程

注:此文若用Office2019打开会效果更好,其中的动图更能展示程序的效果。

8


本文标签: 圆弧 需要 画圆