很多优秀的程序员,都会通过阅读别人的优秀代码,来提升自己的编程水平。
Scratch 官方网站上有非常多的精彩作品,常常会给人惊喜:原来玩具似的 Scratch,可以做出那么棒的东西来。
所以,就有了“读码探秘”栏目。即使是一二年级的孩子,只要你照着 Scratch 自带的教程写过几个程序,就可以跟我一起来赏析 Scratch 官网上的精彩作品。这不但能开阔你的眼界,给你愉悦享受,还能让你学到非常多的 Scratch 编程技巧。
让我们开始吧!
003:对称画儿
标签:艺术
难度:★★☆☆☆
原作:原创
解析:(请使用电脑打开这个链接)https://kada.163.com/project/593778-288459.htm
前两天推送了个画对称画儿的Scratch程序Scratch玩艺术:一个好玩的自动作画程序,你喜欢吗?有没有用它创作出一些有趣的图画来呢?有没有琢磨过它是怎么实现的呢?
我会分三次来讲解这个程序。今天是第一部分。
请在电脑浏览器上打开 https://kada.163.com/project/593778-288459.htm 并点击“改编”进入程序页面。
你是否留意到角色中有一个向导和八支画笔。为什么要用八支笔呢?对称作画的秘密就在这里。
不管自动模式还是手动模式,主导所有画笔移动的其实是“向导”这个角色,别的画笔,不过是跟随着向导一起移动而已。
为了表达方便,程序中用 x,y 两个自定义变量来表示向导的位置。 向导移动到一个新位置后,会广播消息让画笔跟随。画笔全都跟随,但只有部分需要落笔。
从这张图中我们可以看到,画笔1始终是向导到哪里画笔就跟到哪儿的,别的画笔则是将向导的位置坐标进行一个简单转换,式子都非常简单。
有了八支笔后,我们就可以把它们组合起来,画出不同模式的图画了。程序中一共定义了七种模式:模式1是单独一笔,模式2是中心180°的旋转对称,模式3是左右对称,模式4是上下对称,模式5是左右、上下都对称,模式6是90°的中心旋转对称,模式8则最复杂,上下左右旋转都对称。
我们很容易就能知道,模式1只需要画笔1来❀,模式7需要所有画笔都落笔,模式5这种上下、左右对称,则需要画笔1、2、3、4。
所以画画时每支笔只要看看模式,如果当前模式需要自己画就落笔。八支笔的代码依次如下:
有这样的逻辑,画各种对称图案就非常容易了。
你还可以做更复杂一些。画笔的坐标不是直接把向导的坐标加加减减就能得到,我们可以引入三角函数。如果你感兴趣可以试试看哦,别忘了画出漂亮图画后通过公众号消息发给我看。
领取专属 10元无门槛券
私享最新 技术干货