读码探秘003-1:对称画儿

很多优秀的程序员,都会通过阅读别人的优秀代码,来提升自己的编程水平。

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。

所以画画时每支笔只要看看模式,如果当前模式需要自己画就落笔。八支笔的代码依次如下:

有这样的逻辑,画各种对称图案就非常容易了。

你还可以做更复杂一些。画笔的坐标不是直接把向导的坐标加加减减就能得到,我们可以引入三角函数。如果你感兴趣可以试试看哦,别忘了画出漂亮图画后通过公众号消息发给我看。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180514G1XSAH00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券