趣学妙用Scratch编程41 进阶篇(十一) 绘制科赫雪花

预备知识

科赫雪花是瑞典数学家科赫提出的一种曲线,这种曲线形如雪花,又称为雪花曲线。它的生成方法是:

取一个等边三角形,对每条边做以下操作 – 第一步:将每一条边分成三等分(这里只显示一条边,是一条线段)

 

 

  • 第二步:以三等分中间那一份为底做等边三角形,画好之后把中间那一份“挖掉”。

 

 

  • 第三步:对上一步的结果再重复第一至第二步:

 

 

  • 第四步:如果再重复一次:

 

 

以上每一步都可以称为某一级别的“科赫曲线”,例如第一步中的线段是第一级,最后是第四级,你还可以继续重复得到级数更高的科赫曲线,不过也更复杂。

把三条这样的曲线拼成三角形(沿着箭头方向看,是不是等边三角形?),就是科赫雪花了:

 

 

不同级别的曲线组成的科赫雪花是这样的:

 

 

我们很快就可以自己画出来了。

问题

使用Scratch画笔绘制科赫雪花,要求能够调整级别,实时绘制。

分析

我们知道科赫曲线是一种分形,所以肯定可以用递归来生成。只是得找到这种规律。

一、先来看一级的科赫曲线,它是一条线段,我们用一条指令就可以画出来:

 

 

二、如果要画二级曲线呢?我们就要分解成四段来画了,移动三分之一距离 -> 左转60度 -> 移动三分之一距离 -> 右转120度 -> 移动三分之一距离 -> 左转60度 -> 移动三分之一距离:

 

 

三、如果再画多级怎么办?我们不可能一直这么写下去。我们只能通过调用自己的方式,把每次移动三分之一的操作变成调用自己,所以我们需要建立一个自制积木,这个自制积木接收“级数”和“大小”两个参数,当级数=1时直接画出线段,否则会在原来每一次移动三分之一的步骤换成对自己的调用:

 

 

有了画单条曲线的自制积木,画雪花不就轻而易举了吗?

编程

把前面介绍的自制积木用上,用程序调用三次科赫曲线的自制积木,每调用一次右转120度,这样会组成雪花形状。

 

 

为了让雪花的级数能够实时变化,我们设置了变量n,初始化为3,并把它以滑杆的形式显示在舞台区域,让程序以n这个变量为级别不断重新绘制雪花。这样,当你拖动滑杆,让变量n变化时,雪花也会随即更新成相应级数的外观:

 

 

需要注意的是,要把自制积木设置为“运行时不刷新屏幕”。另外n的取值不要太大,我的电脑上,如果把n设置成8以上,就有点卡了。你可以测试一下你的电脑性能。

总结

基本的科赫雪花我们已经画出来了,怎样把它变成彩色的呢?请你在自己的电脑上试验一下。

给TA赞助
共{{data.count}}人
人已赞助
综合资讯

趣学妙用Scratch编程40 进阶篇(十) 奇妙的分形

2023-7-1 8:21:34

综合资讯

趣学妙用Scratch编程42 进阶篇(十二) 来种一棵分形树

2023-7-1 8:25:44

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索