赞
踩
理解:
一条线,分为3段,去掉中间一段,向上形成三角,循环多次,最终形成科赫雪花。
代码:( 科赫雪花程序)
- #KochDrawV1.py
- import turtle
- def koch(size,n):
- if n==0:
- turtle.fd(size)
- else:
- for angle in [0,60,-120,60]:
- turtle.left(angle)
- koch(size/3,n-1)
- def main():
- turtle.setup(600,600)
- turtle.penup()
- turtle.goto(-200,100)
- turtle.pendown()
- turtle.pensize(2)
- level=3
- koch(400,level)
- turtle.right(120)
- koch(400,level)
- turtle.right(120)
- koch(400,level)
- turtle.done()
- main()
打包的时候就用pyinstaller库打包
python PyInstaller 库的使用_华泽的花的博客-CSDN博客
逐行分析:
#KochDrawV1.py
import turtle
调用海龟函数绘图体系
def koch(size,n):
定义koch函数
if n==0:
turtle.fd(size)
如果n=0,就绘制一条直线
else:
for angle in [0,60,-120,60]:
turtle.left(angle)
koch(size/3,n-1)
循环n次,依次按顺序向左转相应的角度
def main():
turtle.setup(600,600)
程序运行框高600像素,宽600像素
turtle.penup()
抬起笔
turtle.goto(-200,100)
来到当前位置的向左200,向上100处
turtle.pendown()
落下笔
turtle.pensize(2)
笔的宽度为2
level=3
定义循环次数(此处可修改)
koch(400,level)
调用koch函数绘制一个方向的雪花
turtle.right(120)
向右转120度
koch(400,level)
再次调用koch函数绘制下一个方向上的雪花
turtle.right(120)
koch(400,level)
解释同上
turtle.done()
运行程序结束后不退出
main()
调用main函数运行此程序
我们不妨将level定义成0,运行结果如下图:
所以构成雪花的最原始的图形是三角形,为了使三角形封上口所以需要转120度
但并不要求原始图形一定使三角形,只要是封闭图形即可
因此,我们可以
1.修改几何绘制阶数
2.修改科赫曲线的基本定义及旋转角度
3.修改绘制科赫雪花的基本框架图形
同时,可绘制图形也不仅限于科赫曲线
-康托尔集、谢尔宾斯基三角形、门格海绵
-龙形曲线、空间填充曲线、科赫曲线
-深入理解函数递归的思想,尝试编写程序运行它们。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。