用scratch绘图专题3

网友投稿 2019-11-26 12:09

      我们在

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

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

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

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

                                  圣诞树效果

https://cdn.china-scratch.com/timg/191128/12093CD8-0.jpg

                                            画圣诞树程序

https://cdn.china-scratch.com/timg/191128/1209363340-1.jpg

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

      第一步:画树干

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

https://cdn.china-scratch.com/timg/191128/1209361533-2.jpg

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

https://cdn.china-scratch.com/timg/191128/12093B4K-3.jpg

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

https://cdn.china-scratch.com/timg/191128/1209363O7-4.jpg

      第三步:画右侧的树枝

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

https://cdn.china-scratch.com/timg/191128/12093Bb3-5.jpg

      第四步:画礼物

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

https://cdn.china-scratch.com/timg/191128/12093MC5-6.jpg

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

https://cdn.china-scratch.com/timg/191128/1209391536-7.jpg

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

https://cdn.china-scratch.com/timg/191128/1209395245-8.jpg

         挑战一下

https://cdn.china-scratch.com/timg/191128/12094133T-9.jpg

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

https://cdn.china-scratch.com/timg/191128/1209413917-10.jpg

--end--

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