用scratch绘图专题3
我们在
《 用scratch绘图专题1》里说了画直线和多边型,在
《用scratch绘图专题2》里说了画雪花,今天说说用Scratch画一棵圣诞树吧!
这篇文章介绍使用分形技术绘制一棵圣诞树的方法。分形图是一种具有自相似特性的图案,它的每一部分都是整体缩小后的形状。分形图展示了数学之美,颇有老子“道生一,一生二,二生三,三生万物”的哲学意味。分形图使用简单的基本图案构成,通常利用递归技术编程实现。Scratch是面向青少年的图形化编程语言,与Python语言等高级语言相比,虽然只是个玩具,但是Scratch的递归是作了专门优化、简化,反倒使得递归调用的效率大大提高了,特别适合用来绘制分形图。
下面将介绍在Scratch中使用递归技术绘制圣诞树分形图,并在其基础上演化出几种其他类型的分形树。
圣诞树效果
画圣诞树程序
下面对画圣诞树的程序脚本进行简单讲解。
第一步:画树干
树干从最初的30个单位开始,每次以0.9的比率缩减。画笔大小设定为每段树干长度的0.2。
第二步:画左侧的树枝在上面的”旋转”模块中,使用“右转…度”指令设置画笔角度,所以这里设置负值,可在树干左侧画出树枝。设置-120度,每次以0.55的缩减比率画出左侧的树枝。
这里为了演示,将递归结束条件设置为“长度<5”,可以看到树枝的脉络。小海豚科学馆提示,实际的效果是树枝会不断的变短变小,并在小于某个阈值时把将画笔颜色设为绿色,就能画出树叶效果。变化过程如下图所示。
第三步:画右侧的树枝
同理,设置旋转角度为120度,画出右侧的树枝。为了增加变化,让右侧的树枝与左侧的树枝错开一下,避免左右对称。这里以每段树枝长度的0.2作为偏移量。
第四步:画礼物
使用画笔大小设置为5,在树枝末梢随机画出彩色的圆点,给圣诞树挂上许多礼物。
这样利用分形技术绘制出了一棵圣诞树。为了让树枝有一些变化,在设置旋转角度时,设置为从100到120之间随机选一个数作为角度。
可以自行调整这个角度,让树枝以不同的角度画出,或向下,右向上,最终使整棵树具有不同的外观。小小的声音提示您,这就像是一棵刚买回来的“圣诞树”,慢慢调整各个树枝的角度,把树冠调整到合适状态。当然,你可以随心所欲地调整,只要你喜欢就好。
挑战一下
这两个模块的脚本,自己实现吧,就是设置画树时的画笔大小、颜色,以及画礼物的画笔大小和颜色。
--end--
声明:本文章由网友投稿作为教育分享用途,如有侵权原作者可通过邮件及时和我们联系删除:freemanzk@qq.com