极客小将

您现在的位置是:首页 » scratch编程资讯

资讯内容

用scratch绘图专题3

极客小将2020-11-17-
      我们在              《 用scratch绘图专题1》里说了画直线和多边型,在                《用scratch绘图专题2》里说了画雪花,今天说说用Scratch画一棵圣诞树吧!

      我们在

             《 用scratch绘图专题1》里说了画直线和多边型,在

               《用scratch绘图专题2》里说了画雪花,今天说说用Scratch画一棵圣诞树吧!

      这篇文章介绍使用分形技术绘制一棵圣诞树的方法。分形图是一种具有自相似特性的图案,它的每一部分都是整体缩小后的形状。分形图展示了数学之美,颇有老子“道生一,一生二,二生三,三生万物”的哲学意味。分形图使用简单的基本图案构成,通常利用递归技术编程实现。Scratch是面向青少年的图形化编程语言,与Python语言等高级语言相比,虽然只是个玩具,但是Scratch的递归是作了专门优化、简化,反倒使得递归调用的效率大大提高了,特别适合用来绘制分形图。

     下面将介绍在Scratch中使用递归技术绘制圣诞树分形图,并在其基础上演化出几种其他类型的分形树。

                                  圣诞树效果

upload/article/images/2020-11-17/b2ee69872ba16a71044f876f94ee1c4a.jpg

                                            画圣诞树程序

upload/article/images/2020-11-17/a11e6d1437c301b5aab69fa815afe281.jpg

      下面对画圣诞树的程序脚本进行简单讲解。

      第一步:画树干

      树干从最初的30个单位开始,每次以0.9的比率缩减。画笔大小设定为每段树干长度的0.2。

upload/article/images/2020-11-17/8f32cee9a6634196467d57bf1100ccbf.jpg

      第二步:画左侧的树枝在上面的”旋转”模块中,使用“右转…度”指令设置画笔角度,所以这里设置负值,可在树干左侧画出树枝。设置-120度,每次以0.55的缩减比率画出左侧的树枝。

upload/article/images/2020-11-17/842a6a6003c8a1c0421e7b3070354c08.jpg

      这里为了演示,将递归结束条件设置为“长度<5”,可以看到树枝的脉络。小海豚科学馆提示,实际的效果是树枝会不断的变短变小,并在小于某个阈值时把将画笔颜色设为绿色,就能画出树叶效果。变化过程如下图所示。

upload/article/images/2020-11-17/b4f8b625f77e4dde067e7f30c7730315.jpg

      第三步:画右侧的树枝

      同理,设置旋转角度为120度,画出右侧的树枝。为了增加变化,让右侧的树枝与左侧的树枝错开一下,避免左右对称。这里以每段树枝长度的0.2作为偏移量。

upload/article/images/2020-11-17/06fce47aac0474d23fec739de83f749d.jpg

      第四步:画礼物

使用画笔大小设置为5,在树枝末梢随机画出彩色的圆点,给圣诞树挂上许多礼物。

upload/article/images/2020-11-17/e438aa07ca397cf7d5cba3ef85a4f372.jpg

       这样利用分形技术绘制出了一棵圣诞树。为了让树枝有一些变化,在设置旋转角度时,设置为从100到120之间随机选一个数作为角度。

upload/article/images/2020-11-17/9e099a53c5ce331576540deeb065b846.jpg

      可以自行调整这个角度,让树枝以不同的角度画出,或向下,右向上,最终使整棵树具有不同的外观。小小的声音提示您,这就像是一棵刚买回来的“圣诞树”,慢慢调整各个树枝的角度,把树冠调整到合适状态。当然,你可以随心所欲地调整,只要你喜欢就好。

upload/article/images/2020-11-17/d911ee6b265b9574fa76140c95cd2b10.jpg

         挑战一下

upload/article/images/2020-11-17/a503e257ae7aa89065ac31e486073ba2.jpg

      这两个模块的脚本,自己实现吧,就是设置画树时的画笔大小、颜色,以及画礼物的画笔大小和颜色。

upload/article/images/2020-11-17/9634e100dfab135c2d39025362715d05.jpg

声明:本文章由网友投稿作为教育分享用途,如有侵权原作者可通过邮件及时和我们联系删除

网友点评

共有5条评论来说两句吧...

在线客服