如何让用scratch实现一个倒影的效果?效果如下:

咱们先直接看代码

Scratch3.0编程绘制角色倒影【图文教程】

思路:

scratch绘制倒影的过程所采用的方法我暂且称之为扫描法,他的原理很简单,就是从被扫描对象区域的一个角开始,逐行扫描,如果碰到扫描对象,此时侦测颜色,设置好画笔的颜色,然后将画笔移动到此对象的对称位置去绘制出这个点,再回到刚才扫描的位置,继续扫描,如此反复,直到把所有区域扫描完。

实现步骤:

1、添加背景和熊(角色),将熊放置到图中的位置(可适当调整下角色大小)

Scratch3.0编程绘制角色倒影【图文教程】

2、然后确定一个扫描区域,这个区域要把熊全部包括进去,否则倒影就不完整

Scratch3.0编程绘制角色倒影【图文教程】

3、大概测出这个区域的左下角坐标(-17,-45),扫描区域的宽度(100)和高度(90)[注:在scratch2可以根据鼠标当前的坐标很快确定这些数据,scratch3中可以借助其它角色来确定这这个数据,这个数据不需要多么精确,只要能把熊全部扫描到即可]

Scratch3.0编程绘制角色倒影【图文教程】

4、添加一个画笔角色,这个角色有两个重要任务,首先是扫描,其次是绘图。我们采用绘制角色的方式,绘制一个1像素的点即可。(为什么要画的这么小呢?我们等会再说)

Scratch3.0编程绘制角色倒影【图文教程】

5、添加画笔扩展,编写程序,当绿旗点击时,我们需要清空舞台,这一步是为了后期二次执行时,将上次绘制的倒影擦除。将角色移动到扫描起始位置,用变量存储此时y坐标,因为后面扫描与绘制都会以此对称,还没明白?没关系继续往下看。

Scratch3.0编程绘制角色倒影【图文教程】

Scratch3.0编程绘制角色倒影【图文教程】

6,实现扫描,这个操作很简单,就是让角色从左下角开始向右移动,到达右端,再往上移动一格继续扫描,运动轨迹覆盖整个扫描区域。

Scratch3.0编程绘制角色倒影【图文教程】

7、扫描过程中加入侦测,如果画笔碰到熊,此时判断是什么颜色(如果画笔角色过大,侦测范围就会变大,画出的倒影就不准确,大家后期可以尝试对比),根据不同的颜色要对应修改画笔的颜色。(例如咱们的熊角色就有四种颜色,身体是棕色,鼻子周围的棕色稍浅,眼睛和鼻子的颜色虽然看起来一样,但还是有差别的。)

Scratch3.0编程绘制角色倒影【图文教程】

Scratch3.0编程绘制角色倒影【图文教程】

Scratch3.0编程绘制角色倒影【图文教程】

8、画笔的颜色设置好了,接下来就要让画笔到对称的位置去画出对应的点来(因为是沿x轴对称,所以只需要改变y坐标即可),再把画笔移回去,继续扫描,这样整个程序也就完成了。那么如何找到对称位置的点呢?还记得第5步那个对称的横线吗?看下图,我们怎么才能确定对称位置呢?

Scratch3.0编程绘制角色倒影【图文教程】

下面是新绘制倒影的程序部分

Scratch3.0编程绘制角色倒影【图文教程】

程序源码下载:Scratch3.0编程绘制角色倒影 或者微信公众号回复“倒影”

本站内容未经许可,禁止任何网站及个人进行转载。

   口袋儿题库-青少儿编程自测题库