python turtle,科赫雪花源码

#KochDrawV1.py
#导入海龟画图的基本库
import turtle
#koch函数是是对科赫函数的基本绘制
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)
#main函数是对科赫函数的拓展,即koch函数可以看作是绘制三角形的一条边,main函数就是通过调用三次koch画一个完整的三角形
def main():turtle.setup(600,600)#设置窗口大小turtle.penup()#拿起笔turtle.goto(-200,100)#设置距离对应窗口的横坐标X:-200的地方和Y:100的地方turtle.pendown()#放下笔,准备画图turtle.pensize(2)#画笔的尺寸,即粗细koch(400, 3)#调用koch函数画一条科赫图形边turtle.left(-120)#画笔移动方向向逆时针旋转120度koch(400, 3)#调用koch函数画一条科赫图形边turtle.left(-120)#画笔移动方向向逆时针旋转120度koch(400, 3)#调用koch函数画一条科赫图形边turtle.hideturtle()#关闭turtle
main()

重点解析一下koch函数

def koch(size,n):if n = 0:turtle.fd(size)#如果阶数下降到0,以size/(最大阶数)作为长度,angle作为偏移角度来绘制一条直线else:for angle in [0,60,-120,60]:#循环从angle = 0开始, 经过angle = 60,再到angle = -120, 最后到angle = 60结束,一共循环4次turtle.left(angle)#画笔移动方向向顺时针旋转angle度koch(size/3, n-1)#递归执行函数

运行结果

科赫雪花的绘制的关键在于递归函数的使用,这也是递归函数的神奇之处。以科赫雪花程序来分析,这里使用递归来实现,是因为递归函数满足让一个基本的样式实现在细分的时候可以重复调用。

例如,我们写了一个程序实现了把一根长棍子平均分成两段,那么我写的这个程序就是实现这个平分的操作,然后递归就是可以在我平分的这两段棍子中的任一一段再进行这个平分的操作。这就是一个简单的递归过程。

turtle科赫雪花的源码分析相关推荐

  1. 【C语言】——C语言实现科赫雪花及科赫曲线

    1.题目描述: (1) 科赫雪花和科赫曲线 科赫曲线(Koch curve)是一个简单的分形(fractal)图形 给定一直线线段,把它等分三段,加入一个等边三角形,以三段的中间一段为底对齐,再去除该 ...

  2. 【Python】Turtle绘制科赫雪花

    科赫曲线 科赫曲线是一种像雪花的几何曲线,所以又称为雪花曲线,它是de Rham曲线的特例.科赫曲线是出现在海里格·冯·科赫的论文中,是分形曲线中的一种. 画法: 1.任意画一个正三角形,并把每一边三 ...

  3. turtle绘制科赫雪花

    代码如下: import turtledef koch(size, n):if n == 0:turtle.fd(size)else:for angle in [0, 60, -120, 60]:tu ...

  4. python中pyinstaller库的使用(第三方库) 实例8:科赫雪花小包裹

    模块一:turtle库 模块二:time库 模块三:random库 模块四:pyinstaller库(第三方库) 我们希望用可执行文件的方式来执行一段代码 而不是直接用源代码 将.py源代码转换成无需 ...

  5. python算法分析与设计实验:科赫雪花实验

    算法分析与设计实验:科赫雪花实验 一.实验目的 1.熟悉python编程环境,包括程序安装 2.熟悉python基本语法 3.递归算法程序分析与调试 二.实验工具 Win10操作系统.python3. ...

  6. 【Python】递归绘制科赫曲线及科赫雪花及转换成可执行文件打包

    科赫曲线 ----------- 绘制科赫曲线 import turtle def koch(size, n):if n == 0:turtle.fd(size)else:for angle in [ ...

  7. Python学习笔记--科赫雪花的绘制

    科赫雪花 科赫雪花: 科赫雪花小程序的打包(带图标) 百度百科的解释: 科赫雪花: 科赫雪花的绘制思想: 我们使用递归和tutle库来实现科赫雪花的绘制 首先调用turtle库. import tur ...

  8. python观察日志(part3)--绘制科赫雪花图

    学习笔记 理论部分:分形与混沌 科赫雪花图 分形(fractal)是一种不同于欧氏几何学中元素的几何图形,科赫曲线就是一个分形. 如上图所示,科赫曲线可以用如下方法产生: 在一段直线中间,以边长为1/ ...

  9. 【Python】科赫雪花绘制

     科赫曲线绘制 代码 #KochDrawV1.py import turtle def koch(size,n):#size表示绘制科赫曲线的每一个直线的长度,n表示绘制的阶数if n==0:turt ...

最新文章

  1. 新的理念、 新的解决方案、 新的Azure Stack技术预览
  2. pypy解释器提高python的效率之安装pypy
  3. Mysql服务器问题(2013.3.5日发现)
  4. iOS 可能用到的三方框架
  5. java 依赖算法_java – Maven 2 – 从传递依赖版本定义依赖版本
  6. 从零点五开始用Unity做半个2D战棋小游戏(七)
  7. 分布式系统概念 | 分布式理论:CAP、BASE
  8. supesite 相关 修改
  9. [Elasticsearch] es 6.6 编译报错 SSL peer shut down incorrectly
  10. linux写语句自动执行一次,Linux系统下自动执行指定任务 cron
  11. 怎样用python控制别人的电脑_python实现远程控制电脑
  12. JavaScript页面刷新的所有方法
  13. 红黑树模拟软件_红黑树,超强动静图详解,简单易懂
  14. 新手织梦建站教程:设置网页文档默认点击数为0方法
  15. 环境搭建以及一些命令的记录
  16. 西门子plc博图与优傲UR机器人进行Profinet通讯,s7-1200/1500 与UR机器人通讯,实际应用案例使用中
  17. 更换IP地址方式简介。
  18. 音频文件wav转gsm
  19. InternalError: Dst tensor is not initialized. 的产生原因和解决办法
  20. 系统架构设计笔记(88)—— 身份认证与访问控制

热门文章

  1. 横评美国IaaS“8匹狼”:AWS、GCE、Azure、Rackspace、SoftLayer、Dell、HP、Joyent
  2. 月入5万的程序员,日子过得就像月薪5000
  3. python打开一个不存在的文件报错,python中的文件操作(一)
  4. 和平精英苹果系统显示服务器暂未开放,和平精英苹果更新不了 苹果无法进行版本更新如何解决...
  5. 金茂服务通过聆讯:9个月营收超10亿 中化与平安人寿是股东
  6. DNS协议与请求的C语言实现
  7. 【iOS 开发】活动指示器控件 UIActivityIndicatorView
  8. 随笔之看雷军视频有感//2021-2-24
  9. 《EROFS: A Compression-friendly Readonly File System for Resource-scarce Devices》
  10. python求不规则图形面积_Python求阴影部分面积