深入理解递归:美丽的科赫雪花
一、科赫雪花简介:
所谓科赫雪花,也就是分形几何图形,例如:
分形几何是一种迭代的几何图形,广泛存在于自然界中。
我们来看看原理图:
二、科赫雪花的递归代码
先看看科赫曲线的递归代码:
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)
在n阶科赫曲线中,n-1阶的科赫曲线是由n阶的科赫曲线所构成。仔细想一下就能想通。
三、科赫雪花完整代码
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()
最终样图:
其实,最重要的,是要理解递归的代码。递归不在乎你到底是怎么执行代码的,只需要你找到一个基例,并找到合适的链条将n与n-1串起来即可。不用在乎到底是怎么执行的!!!
深入理解递归:美丽的科赫雪花相关推荐
- 用python画雪花 科赫曲线递归_【TCE的编程小讲堂】【Python】【第三期】如何画出科赫雪花?(下)...
大家还记得上期讲的科赫雪花吗?我们上次讲过画出一条边的方法,大家看看代码复习一下 import turtle#包含turtle库 def koch(l): turtle.forward(l / 4)# ...
- java swing 雪花_java递归实现科赫雪花
今天来写k阶科赫雪花的递归实现,(K值需要你手动输入)至于科赫雪花是什么请大家自行百度. 首先来思考这个程序怎么写,当 count = 0 时就应该是一个三角形,这三个点是你一开始就确定的,以后的改变 ...
- 【Python】递归绘制科赫曲线及科赫雪花及转换成可执行文件打包
科赫曲线 ----------- 绘制科赫曲线 import turtle def koch(size, n):if n == 0:turtle.fd(size)else:for angle in [ ...
- python观察日志(part3)--绘制科赫雪花图
学习笔记 理论部分:分形与混沌 科赫雪花图 分形(fractal)是一种不同于欧氏几何学中元素的几何图形,科赫曲线就是一个分形. 如上图所示,科赫曲线可以用如下方法产生: 在一段直线中间,以边长为1/ ...
- scratch教程----4.科赫雪花新积木的运用
Hi!又是一期scratch教程出炉啦! 这期我们来讲scratch中的递归(以下给出目录,老手可以跳过) 目录 1.初学: 2.进阶: 学过别的编程语言中的递归的小伙伴可以在目录跳过咯: 1.初学: ...
- Python学习笔记--科赫雪花的绘制
科赫雪花 科赫雪花: 科赫雪花小程序的打包(带图标) 百度百科的解释: 科赫雪花: 科赫雪花的绘制思想: 我们使用递归和tutle库来实现科赫雪花的绘制 首先调用turtle库. import tur ...
- 【Python】科赫雪花绘制
科赫曲线绘制 代码 #KochDrawV1.py import turtle def koch(size,n):#size表示绘制科赫曲线的每一个直线的长度,n表示绘制的阶数if n==0:turt ...
- Koch科赫雪花的实现
科赫曲线是一条线.雪花就是从三条线开始 package 科赫雪花;import java.awt.Color; import java.awt.Dimension; import java.awt.F ...
- python学习笔记 第五章(科赫雪花与科赫曲线)
科赫曲线,也叫做雪花曲线.是一种分形几何,分形几何是一种迭代的几何图形,广泛存在于自然界中. 科赫曲线是一种迭代的图形,所以我们是可以利用python中的迭代法来绘制. 我们先考虑如何实现迭代. 首先 ...
最新文章
- powerDesigner 正向工程生成sql注释问题 (mysql注释问题)
- RabbitMQ 把一个queue从一个node转移到另外一个node.
- DIV CSS display (block none inline)属性的用法教程
- 如何通过构建以太坊智能合约来销售商品
- EOS Dawn 1.0
- P4126 [AHOI2009]最小割(网络流/最小割)
- 357. Count Numbers with Unique Digits
- 致准医学博士生的乘风破浪秘籍
- 视觉SLAM十四讲学习笔记-第四讲-李代数求导与扰动模型
- Java中类的初始化顺序是什么?
- AD19PCB增加board shape即增大黑色布的面积
- 51Nod1601 完全图的最小生成树计数 Trie Prufer编码
- springcloud ip部署_php接入SpringCloud微服务框架
- 浏览器默认打开360搜索怎么办?
- Proxmark3教程2:用Pm3Gui_Pro V5.2 新功能 IC卡匠数据维护
- 从高德地图获取城市地铁线路+站点
- :root选择器的妙用【2021.11.14】
- Nginx介绍及安装配置
- 如何学习平面设计,需要学习哪些软件?
- 胆囊炎的临床症状有哪些?
热门文章
- 电击手表设计#开源#
- DAQWare for Digilent Analog Discovery发布1.0.4版本
- softlayer iso_在IBM SoftLayer上使用Datameer从大数据中获得敏锐的见解
- 管理学10大经典定律
- openwrt中br-lan,eth0,eth0.1,eth0.2 已经 实际网口wan,lan对应的配置
- HTTP请求中的OPTIONS请求
- 每天进步一点点【图的深度优先搜索与广度优先搜索】
- NAVEX:为动态Web应用程序生成精确且可扩展的漏洞
- 学生晚上回宿舍时其在实验室的计算机主机,学生晚上回宿舍时, 其在实验室的计算机主机应关闭, 显示器一般不用关。...
- R语言图形编辑器GUI开发环境RStudio安装(Windows操作系统下、RStudio开发环境安装)