首先我们来绘制一个基本的3阶科赫雪花,由于和课上用的软件不一样,所以在课上看的代码只能当参考,实际比较繁琐。

代码如下

import turtle                          # 引入决解问题需要的工具——turtle作图包# 定义turtle画笔和画布的参数
def huabi():                           turtle.speed(0)                    # speed()参数有[0,10]:“0”特殊、代表最快速度,其余[1,10]值越大、速度越快turtle.pensize(2)                  # 设置画笔宽度为2turtle.setup(800,800, 100, 10)     # setup()参数有4个:前两个代表画布的“宽”和“高”,当数值为整数时、表示绝对像素大小,当小数时、表示站屏幕的比例。后两个可以省略,默认为屏幕中心位置,代表距离“屏幕左上角”的距离,单位是像素密度,turtle.penup()                     # 抬起画笔,之后的画笔动作、就不会产生图线turtle.goto(-300, 100)             # 以画布中心点为坐标原点(0,0),将画笔移动到坐标(-300,100)处turtle.pendown()                   # 落下画笔,以便画图# 定义“尖”
def koch(size, n):if n==0:                           #  0阶的科赫雪花曲线就是一条线,大小为输入的“size”turtle.fd(size)else:                              # 高阶科赫雪花曲线for i in [0, 60, -120, 60]:    # turtle在“尖”的四条线上改变的角度,分别为0°,60°,-129°,60°turtle.left(i)             # 对应上边四个角度,一共需要转4次弯,画出本阶的四条线,koch(size/3, n-1)          # 每个角度下的一个边,对应低一阶的客户雪花曲线的“尖”;至此完成函数本身的循环和复用,自动画出一个完整的n阶“尖”# 定义“边”
def sdkoch(size, n):                   # 完整的科赫雪花曲线由3个“边”组成,我们以上完成的是一个由“尖”组成的“边”,koch(size, n)turtle.right(120)                  # 2行代码一组,koch(size, n)turtle.right(120)koch(size, n)                      # 至此,得到完整的n阶科赫雪花曲线turtle.hideturtle()                # 把turtle的光标隐藏turtle.done()                      # 结束turtle# 定义main()主函数
def main(size, n):                     # 设定参数接口huabi()sdkoch(size, n)main(500, 2)                           # 在设定参数之后,调用主函数
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)      #转动120度,使得科赫曲线能围城一个三角形,形成最终的科赫雪花koch(400, level)turtle.right(120)koch(400, level)turtle.hideturtle()    #隐藏画笔
main()

效果如下

接下来我们可以动用自己的创意来改进,可惜我失败了最后参考了许多大佬的代码和讲解,copy了这份代码

如下

import turtle
import timedef 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(n):global aglobal sif a == 1:turtle.color("black")  # 这边是控制画笔的颜色elif a == 2:turtle.color("purple")elif a == 3:turtle.color("blue")elif a == 4:turtle.color("Cyan")elif a == 5:turtle.color("green")elif a == 6:turtle.color("yellow")elif a == 7:turtle.color("orange")elif a == 8:turtle.color("red")if n != 0:a += 1turtle.penup()turtle.goto(-200 * (4 / 7) ** (s - n), 100 * (4 / 7) ** (s - n))# 每一次都是需要合理的等比例的扩大或是缩小turtle.pendown()turtle.pensize(2)level = 5koch(400 * (4 / 7) ** (s - n), level)  # 大小是一个一个试出来的# 不能超过setup的设定的范围 600,不然就越界了turtle.right(120)koch(400 * (4 / 7) ** (s - n), level)turtle.right(120)koch(400 * (4 / 7) ** (s - n), level)  # 注意这里koch一次就要转一次角度turtle.right(120)turtle.hideturtle()  # 隐藏画笔main(n - 1)a=1
s = int(input())  # 输入其中的科赫曲线的个数
turtle.setup(600, 600)
turtle.speed(0)
main(s)  # main(8)

效果如下

但是此代码绘制时间过于缓慢,本人需求广大网友指点迷津。

python绘制科赫雪花and科赫雪花进阶版相关推荐

  1. 【MATLAB】根据已有数据绘制Bode图、时域曲线等(进阶版)

    文章目录 前期教程 前言 读取数据 方法一:按行读取 方法二:按列读取 设置figure属性 自定义横纵坐标刻度 使横坐标按对数刻度显示,即Bode图的形式 去掉复制的图片的空白边距 在同一个figu ...

  2. 【python】3分钟搞定音频剪辑,进阶版

    用python,只需要别人打开Adobe Audition的时间,你已经完成了剪辑了. 来不及解释,都在代码里了! from pydub import AudioSegment #打开一个音频文件 s ...

  3. python爬取B站网页排行榜数据(进阶版)

    我们已经在基础版本中获取了网站的排行,更新状态,名称,播放量,弹幕量和综合评分. 如下图所示,没看过基础版的建议先去基础版把前面的代码看完,这边不会再讲. 我们这次的目标是获取B站动漫的点赞量,投币数 ...

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

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

  5. python绘制n阶科赫曲线线段_分形几何中科赫雪花的绘制

    目录分形几何在自然界中广泛存在(康托尔集.谢尔滨斯基三角形.门格海绵.龙形曲线.科赫曲线...),实际上分形几何是一种迭代的几何图形.本文主要讨论科赫曲线. 科赫曲线的绘制: import turtl ...

  6. python绘制n阶科赫曲线线段_034 实例8-科赫雪花小包裹

    [TOC] 一."科赫雪花小包裹"问题分析 1.1 科赫雪花 高大上的分形几何 分形几何是一种迭代的几何图形,广泛存在于自然界中 科赫曲线,也叫雪花曲线 1.2 用Python绘制 ...

  7. python 绘制科赫雪花

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

  8. koch雪花python_基于python绘制科赫雪花

    什么是科赫曲线 科赫曲线是de rham曲线的特例.给定线段ab,科赫曲线可以由以下步骤生成: 将线段分成三等份(ac,cd,db) 以cd为底,向外(内外随意)画一个等边三角形dmc 将线段cd移去 ...

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

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

  10. python绘制n阶科赫曲线线段_骚操作:用Python来一场人工造雪

    具体介绍 先给大家介绍科赫曲线,科赫曲线在众多经典数学曲线中非常著名,由瑞典数学家冯 科赫于1904年提出,由于其形态类似雪花,也被成为雪花曲线. 下面对科赫曲线基本概念和绘制方法做个简单的介绍:正整 ...

最新文章

  1. 用Spring Boot复刻一款天猫商城,你可以做到!
  2. 数据结构之迷宫问题求解(一)利用栈与递归求解出口
  3. Python-5-字符串方法
  4. 在Leaflet地图上集成Echarts
  5. windows10加载动画_如何关闭动画并使Windows 10看起来更快
  6. 开源硬件论坛,燃烧你的创造力
  7. 使用C#实现适配器模式 (Adapter Pattern) 和外观模式 (Facade Pattern)
  8. DOM基础、定时器、BOM基础
  9. 设计师经常逛的网站?
  10. Visual Studio 2017 15.5 正式发布,性能再提升
  11. 【MLNLP顶会论文发表总榜】谷歌最狂,清北入前十,周明、张岳、刘挺华人前三,中美差距何止一点点!...
  12. RGB和CMYK的区别
  13. nodejs 使用jsonwebtoken进行权限验证
  14. uni.showToast(OBJECT)消息提示框
  15. python的复数的实部虚部都是浮点数吗_python中复数的共轭复数知识点总结
  16. python中xlrd模块_Python中的xlrd模块使用原理解析
  17. 什么是TCP粘包?为什么UDP没有粘包?
  18. XCODE4.2 模拟器定位
  19. 董淳光 - SQLITE3 使用总结
  20. java里部分文件全选怎么整_选定全部文件的快捷键-怎么全选文件夹的文件-文件...

热门文章

  1. appfuse mysql_Appfuse 使用
  2. CVE-2018-0798_微软公式编辑器漏洞分析
  3. HTML5 Audio时代的MIDI音乐文件播放 .
  4. 奥拉星插件flash下载手机版下载安装_flash插件
  5. xis表格怎么打印_《如何通过虚拟打印机将文件打印成excel文档》 表格怎么打印出来...
  6. PC端微信自动发送机器人
  7. 树莓派 树莓派 编c++_如何建立一个树莓派冰箱的冷冻监视器
  8. 基于python的智能风扇设计_[Micropython]TPYBoardV102 DIY智能温控小风扇
  9. 银行数据仓库体系实践(14)--数据应用之内部报表及数据分析
  10. Ubuntu搭建KMS服务