算法分析与设计实验:科赫雪花实验
一、实验目的
1、熟悉python编程环境,包括程序安装
2、熟悉python基本语法
3、递归算法程序分析与调试

二、实验工具
Win10操作系统、python3.7编译环境、IDLE编译器

三、实验内容
本次实验是利用递归算法,用python中的绘图库turtle,实现画出科赫雪花。雪花曲线的构造从一个正三角形开始,把每条边分成三等份,然后以各边的中间长度为底边,分别向外作正三角形,再把“底边”线段抹掉,这样就得到一个六角形,它共有12条边,再把每条边分成三等份,以各中间部分的长度为底边,向外作正三角形后,抹掉底边线段,反复进行这一过程,就会得到有个“雪花”样子的科赫曲线。

四、实验过程
本实验采用递归算法完成曲线绘制:如果n=0,直接画出长度为L的直线。如果n=1(第一次迭代),画出长度为L/3的线段;画笔向左转60度再画长度为L/3长的线段;画笔向右转120度画长度为L/3长的线段;画笔再向左转60度画出长度为L/3的线段。如果n>1,第n次迭代相当于:第n-1次迭代;画笔左转60度;n-1次迭代;画笔右转120度;第n-1次迭代;画笔左转60度;第n-1次迭代。本次实验设n=3,用for遍历循环角度,在最外层的循环执行后,再调用下一阶及相应的长度。程序代码如下:

import turtle as t
def koch(size, order):if order == 0:t.forward(size)else:for angle in [0, 60, -120, 60]:t.left(angle)koch(size/3, order-1)
def main():t.setup(800, 800)t.penup()t.goto(-120, 100)t.pendown()t.pensize(2)t.pencolor('green')koch(300, 3)t.right(120)koch(300, 3)t.right(120)koch(300, 3)t.done()t.hideturtle()
main()

五、实验结果与分析

python算法分析与设计实验:科赫雪花实验相关推荐

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

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

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

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

  3. 用python绘制科赫雪花分形图,迭代

    以上用python迭代绘制的3阶科赫雪花分形图. 原理 将一段直线截成3段,去掉中间一段,并用等长的直线搭建起夹角60°,此为一阶科赫分形. 如果将一阶分形每一段再重复以上步骤,便得到二阶分形 pyt ...

  4. python学习笔记 第五章(科赫雪花与科赫曲线)

    科赫曲线,也叫做雪花曲线.是一种分形几何,分形几何是一种迭代的几何图形,广泛存在于自然界中. 科赫曲线是一种迭代的图形,所以我们是可以利用python中的迭代法来绘制. 我们先考虑如何实现迭代. 首先 ...

  5. 用python画雪花 科赫曲线递归_【TCE的编程小讲堂】【Python】【第三期】如何画出科赫雪花?(下)...

    大家还记得上期讲的科赫雪花吗?我们上次讲过画出一条边的方法,大家看看代码复习一下 import turtle#包含turtle库 def koch(l): turtle.forward(l / 4)# ...

  6. Python算法分析与设计实验:动态规划算法

    Python算法分析与设计实验:动态规划算法 一.实验目的 1.理解动态规划求解优化问题的典型步骤,以及动态规划算法求解计算问题的时间复杂度分析 2.熟练掌握利用动态规划算法求解一维.二维等典型优化问 ...

  7. python用科赫迭代正方形_基于python绘制科赫雪花

    什么是科赫曲线 科赫曲线是de Rham曲线的特例.给定线段AB,科赫曲线可以由以下步骤生成: 将线段分成三等份(AC,CD,DB) 以CD为底,向外(内外随意)画一个等边三角形DMC 将线段CD移去 ...

  8. python画两个科赫雪花_【TCE的编程小讲堂】【Python】【第二期】如何画出科赫雪花?(上)...

    还有两天就是圣诞节了,提前祝大家圣诞节快乐!(我的昵称中的TCE指的是The Christmas Eve哦!) 还有今天之所以要讲科赫雪花,不仅因为圣诞节快到了,还有一个原因,是因为我在某次信息竞赛的 ...

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

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

最新文章

  1. 64位环境启用ASP.net 2.0的32位扩展
  2. 最近项目重构的一些感想
  3. 网站优化之尽量避免重定向(301/302)
  4. 类与类之间关系,用C#和JavaScript体现
  5. 算法设计与分析python_Python算法设计与分析
  6. 科研绘图工具软件_如何在Windows 10 Mail中使用绘图工具
  7. 字节一面 —— List 和 Map、Set 的区别
  8. python 二维矩阵及转byte知识点
  9. java反射加载类_Java反射 - 动态类加载和重载
  10. 【C/C++】algorithm头文件下常用函数
  11. 首页增加了“阅读排行”
  12. 用HackRF One模拟GPS信号
  13. 面试系列(三):Java反射机制
  14. PLT图纸外发控制系统
  15. 第10章 项目沟通管理
  16. Unity常见资源类型
  17. 综合微软、AMiner两大学术图谱,清华大学唐杰博士如何将Open Academic Graph亿级数据精准匹配
  18. java 获取某个时间点增加30分钟之后的时间点
  19. pyppeteer如何更改默认chrome路径
  20. 有度即时通统一工作门户助力政企单位开启数字化办公新模式

热门文章

  1. 【数字语音处理】Part3 语音信号的短时时域分析:短时平均、短时自相关、语音端点检测、基音周期估值
  2. 程序猿 Windows 10 日常使用软件记录
  3. 跳跃表之java实现
  4. 那一刻你在哪里,十年后你想对汶川说什么?
  5. 连锁酒店无线全覆盖,距离不再是问题!!!
  6. jQuery实习图片的上传保存处理
  7. 百元优质TWS耳机推选,请关注努比亚新音C1耳机,定义蓝牙耳机新基准
  8. 云服务器如何打补丁,腾讯云服务器如何安装Windows更新
  9. 人大金仓数据库sql语句_人大金仓KingbaseES与主流数据库的兼容性
  10. LeetCode.数组中的第k个最大的元素(基于快速排序的选择排序算法)