最新消息:680元/半年,推荐全网最具性价比的一站式编程学习平台码丁实验室

Scratch教程:图形复制机

Scratch 少儿编程 2711浏览 0评论

友情提示:680元/半年,儿童学编程,就上码丁实验室

在本系列文章中,作者提出了对周围环境进行探测的“探测器”概念。

给出了探测器的多种分类,并进行了研究和说明。

 

总结

1基于角色运动的“位置探测器”

2基于大小的“尺寸探测器”

3基于不同造型的“造型探测器”

4基于颜色的“颜色探测器”

(点击以上文字,可阅读原文。)

图形复制机
本篇将研究另一种扫描探测器,用于对舞台上的图形进行检测和处理。

这个探测器的原理源于传真机。

在只有电话的时代,人们发明了传真机,使用一条线一条线扫描的方式,得到源文件上的黑色点数据,之后通过电话线,将数据传递到另一方。另一方根据收到的数据,在对应的位置上绘制黑色点,就得到了原来的图像。当然,随着网络的发展,已经很少有人使用传真机了,但类似的原理还是应用于扫描仪或复印机中。

 

 

今天,我们就应用探测器的概念,来完成扫描的算法。通过例子的制作,大家一方面能够对探测器有更深入的了解,另一方面也会对传真机的原理有更深入的理解。

 

例子:

在背景的左边,放置一个图形。

图形复制机

设计几个变量,确定需要扫描的范围。

 

图形复制机

其中x0,y0为开始扫描的位置,W和H分别为扫描区的宽度和高度。由于我们对左半侧进行扫描,所以将x0设置为-240,y0设置为-180,W设置为240,H设置为360。

编写程序,一条线一条线进行扫描,如果碰到了黑色,则将角色移动到右半侧对应的位置上绘制一个点。

 

程序如下
图形复制机

其中y从-180到180进行循环,对应每一行的y,x从-240到0循环。如果角色碰到了黑色,就在对应的位置上使用画笔绘制一个点。这样,就可以将左侧的图形复制到右边了。

图形复制机

运行中可以看到,角色在一条线一条线的运动进行扫描。

图形复制机

这就是使用扫描的方式进行探测的基本想法。这个方法还有很多可以扩展和修改的地方。

这里写出几点抛砖引玉:

1  现在例子中,是检测碰到黑色后绘制,也可以试着修改为碰到角色时绘制。

2  在图形中有多种颜色时,可以检测碰撞多个颜色。

3  在现在的例子中,使用了一个小点进行检测,可以试验使用不同形状的探测器(横线,竖线,十字等),会得到很有趣的结果。

4  在现在的例子中,在右侧使用画笔绘制了一个小点,还可以使用其它的造型进行图章进行绘制。

5  在绘制点时,可以进行坐标的变换,这样就可以将扫描得到的图形进行变换了。比如放大、缩小等。

例如,结合上面说到的第4和第5条,可以得到下面的镜像结果。

 

  

图形复制机

 

图形复制机

总结

 

 

 

1  使用扫描探测器,应用按线扫描的方式,可以对于一个区域的角色分布情况进行进行检测。

2  由于SCRATCH没有提供对于某个点颜色的检测,如果能够提供取得舞台上任一点的颜色,这个过程将更加强大。

3  这个算法的实现,已经包括了一些图形学的基本算法和一些人工智能探测环境的思路。

 

您必须 登录 才能发表评论!