scratch 画分形图系列69:《迷人的数学》中谜题209——实心科赫雪花和反雪花
一、雪花曲线与反雪花曲线——1904年
黑色与红色的图形显示了著名的雪花曲线与反雪花曲线最初的四代衍生图形,这些雪花曲线又被称为科赫分形。假设有一个等边三角形,每条边的长度都是单位长度。在每条边中间的三分之一处都添加(或减去)一个边长为其三分之一的等边三角形,然后重复这个过程。
当这个过程无限延续下去的时候,你能计算出这条曲线的长度以及这条曲线所包围的面积吗?这些曲线基本呈成长模式,创造出一系列多边形。是否存在类似雪花曲线的三维物体呢?
雪花曲线以及与此相似的所谓病理曲线证明了一个重要的原则:那就是复杂的图形是可以通过对非常简单的规则的重复运用得到的。
这样的形状就称为分形图。雪花曲线是数学家黑尔格·冯·科赫(Helge von Koch)于1904年发现的,这种曲线是最早发现的分形图之一。
二、scratch编程实现
1.算法分析:许多关于科赫雪花和反雪花的程序都是画出书中图右上角的科赫曲线,在本人前面的头条文章里面也有所见。
本文重点探讨如何画出书中那样的实心雪花呢?
看来需要一个画实心三角形的子程序,进而需要一个保存和恢复位置的子程序,每一级在起始位置开始画一个以上一级长度为边长的实心正三角形。
2.画实心正三角形的程序:
3.画实心科赫雪花的递归子积木:
4.画实心科赫雪花的主程序:
5.雪花用白色,各级实心科赫雪花:
三、反雪花
1.算法分析:常规的空心反雪花,就是把空心科赫雪花的递归子程序的转角度数变为相反数即可。
那么如何画出实心的反雪花分形呢?
从上图可见,先画出一个红色的正三角形,然后从它的左下角开始画黑色实心的正科赫雪花,只不过每一级的实心正三角形边长是同级长度,而且位于中间向内的,那么剩下的红色部分就是实心的反科赫雪花了。注意看下图体会。
2.程序实现:
因此只需对画正三角形子程序做一些改动:
改变转角方向使得实心正三角形向内
再对递归子程序和主程序做一些改动即可。
实心正三角形的大小和位置方向都变化了
3.实心反雪花程序和图形截图:
实心科赫雪花截图
Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved