递归讲解-分形树(python版:三种书写方法)

一、递归介绍

1、定义:函数定义中调用函数自身的方式称为递归。

2、书写递归的2个关键特征:

(1)存在一个或多个基例,基例不需要再次递归,它是确定的表达式;

(2)递归链条,所有递归链条要以一个或多个基例结尾。

(3)书写方式:

        通过分支语句来书写。

        if   基例条件

             基例语句块

       else:

            递归链条

二、分步骤讲解分形树,进而用递归实现

1、1阶树

import turtle as t
def tree_1(length): #一阶分形树
    t.fd(length) #树干
    t.left(30)
    t.fd(length) #左树枝
    t.bk(length)
    t.right(60)
    t.fd(length)#右树枝
    t.bk(length)
    t.left(30)
    t.bk(length)#回到根部
t.left(90)
tree_1(100)
t.hideturtle()
t.done()

效果如下:

2、2阶树

def tree_2(length):#二阶分形树
    t.fd(length)
    t.left(30)
    tree_1(length) #调用一阶树
    t.right(60)
    tree_1(length)#调用一阶树
    t.left(30)
    t.bk(length)
t.left(90)
tree_2(100)
t.hideturtle()
t.done()

效果如下:

3、3阶树

def tree_3(length):#三阶分形树
    t.fd(length)
    t.left(30)
    tree_2(length)#调用二阶树
    t.right(60)
    tree_2(length)#调用二阶树
    t.left(30)
    t.bk(length)
t.left(90)
tree_3(100)
t.hideturtle()
t.done()

 效果如下:

4、递归书写分形树(第一种方法)

def tree_4(length):#递归第一种方法 以length为基例条件
    if length<=0:#基例,当树枝长度<=0时返回
        return
    else:
        t.fd(length)
        t.left(30)
        tree_4(length-10)#树枝长度每次减10
        t.right(60)
        tree_4(length-10)#树枝长度每次减10
        if length-10<=0:#树枝<=0时画一个粉色圆点
            t.color('pink')
            t.dot(10)
            t.color('brown')
        t.left(30)
        t.bk(length)
tree_4(100)
t.hideturtle()
t.done()

效果如下:

5、 递归书写分形树(第二种方法)

def tree_5(length,n):#递归第二种方法,以n为基例条件
    if n<0: #基例,以树的阶数为基例,注意n<0不是n<=0
        return
    else:
        t.fd(length)
        t.left(30)
        tree_5(length-3,n-1) #树枝和树干的长度可以相同,也可以每次减一个数值,树的阶数每次减1
        t.right(60)
        tree_5(length-3,n-1)#树枝和树干的长度可以相同,也可以每次减一个数值,树的阶数每次减1
        if n<=0:
            t.color('green')
            t.dot(20)
            t.color('brown')
        t.left(30)
        t.bk(length)
t.speed(0)
t.left(90)
t.penup()
t.goto(0,-300)
t.pendown()
tree_5(100,7)
t.hideturtle()
t.done()

6、递归书写分形树(第三种方法)

import turtle as t
def draw_circle():#画粉色圆点
    t.pencolor('pink')
    t.dot(10)
    t.pencolor('brown')
def tree_n1(length,n):
    if n==1: #基例,其实就是tree_1
        t.fd(length)
        t.left(30)
        t.fd(length-10)
        draw_circle()
        t.bk(length-10)
        t.right(60)
        t.fd(length-10)
        draw_circle()
        t.bk(length-10)
        t.left(30)
        t.bk(length)
    else:
        t.fd(length)
        t.left(30)
        tree_n1(length-10,n-1)#左枝
        t.right(60)
        tree_n1(length-10,n-1)#右枝
        t.left(30)
        t.bk(length)
t.left(90)
tree_n1(100,4)
# tree_n(100)
t.done()

效果跟以上两种方法一样,这种写法更容易理解一些。

Emilyzhai
关注 关注
  • 3
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
python递归函数绘制分形方法
09-20
主要为大家详细介绍了python递归函数绘制分形方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
分形——python递归
weixin_66030644的博客
05-22 3148
分形通常被定义为“一个粗糙或零碎的几何形状,可以分成数个部分,且每一部分都(至少近似地)是整体缩小后的形状”。分形则顾名思义——亦即理论上无论放大多少倍,都具有相同形状。从单个枝开始推广到整个分形
Python机器学习】决策的构造——递归构建决策
最新发布
weixin_39407597的博客
07-25 589
我们可以采用递归的原则处理数据集,递归结束的条件是:程序遍历完所有划分数据集的属性,或者每个分支下的所有实例都具有相同的分类。如果所有实例具有相同的分类,则得到一个叶子节点或者终止块。任何到达叶子节点的数据必然属于叶子节点的分类。
python 递归
kaituozhizzz的博客
05-01 2973
递归可以用来描述分形分形常用来描述自然界中许多不规范的、真实对象的数字图形。 递归的图形还能说明递归是如何工作的。以递归绘制图为例,绘制枝的过程如下:首先绘制一条直线,然后左转,绘图(递归分支),右转,绘制(递归分支),最后返回原来的直线。 (31条消息) python Turtle Graphics海龟绘图工具_kaituozhizzz的博客-CSDN博客 前面有写到python中海龟绘图的使用 这里我们用海龟绘图制作一个递归 上代码: from turtle import *.
Python画一棵茂盛的分形
微小冷的学习笔记
12-18 1983
上次画了棵分形,发现看的人还是挺多的,但没什么人点赞,这说明我能给大家画这棵分形,大家很高兴,但这棵太秃了,大家不喜欢。
Python画一棵分形圣诞
微小冷的学习笔记
12-15 2929
分形,就是用分形的逻辑去画一棵,所谓分形,若从编程的角度去理解,其实就是简单规则的反复迭代。
turtle-递归美学-分形-draw_branch.rar
11-28
在这个名为“turtle-递归美学-分形-draw_branch.rar”的压缩包中,我们找到了一个名为`draw_branch.py`的文件,它展示了如何利用递归技术来创建美丽的分形分形是一种具有自相似性的几何形状,即无论在大尺度...
tree_python_分形叶_分形_
09-30
Python编程语言中,我们可以利用turtle模块来创建各种图形,包括复杂的艺术作品,如分形分形是一种自相似的几何形状,在自然界中广泛存在,比如叶、山脉和云朵。分形就是一种利用分形理论绘制的形图案,...
[5.4.1]--404递归可视化:分形.srt
04-03
[5.4.1]--404递归可视化:分形.srt
[5.4.1]--404递归可视化:分形.mp4
04-03
[5.4.1]--404递归可视化:分形.mp4
Python 实现分形
weixin_52263512的博客
07-26 758
Python 实现分形 好激动第一次实现Python演示动画! 本来是为了实现二叉的构造的,但是在搜索过程中,发现了这个! 因为graphviz我一直用不了,所以另辟蹊径! 是利用“海龟turtle”,真的挺让人有成就感的,给大家分享下代码! 其实,只是看的话,会觉得很麻烦,但是当你真正弄懂了,就会发现其实也不过如此。 import turtle p = turtle.Turtle () turtle.colormode(255) p.speed(0) r=0 g=0 b=0 length=120 s
递归分形源码
10-14
分形递归算法,模拟生成,支持选择叶形状,递归次数,干高度、枝长度缩小比例、叶子颜色、枝干偏移角度等。 用的是DELPHI7写的。
opengl L系统递归算法实现分形
12-18
opengl,L系统递归算法实现分形,一个不错的例子,可以作为初学者参考使用
python使用turtle绘制分形
09-20
主要为大家详细介绍了python使用turtle绘制分形方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
递归函数应用实例:用python来画分形
火山飘雪的博客
02-28 3304
什么是递归函数 函数定义中调用函数自身的方式称为递归(简单说就是自己调用自己) 举个简单例子就是:函数f(x)-----f(f(x)) 既是一个递归调用。 每次函数调用时,函数参数会临时存储,相互没有影响;达到终止条件时,各函数逐层结束运算,返回计算结果;要注意终止条件的构建,否则递归无法正常返回结果。 分形 分形几何学的基本思想:客观事物具有自相似性的层次结构,局部和整体在形态,功能,信息...
python分形-递归
m0_56945138的博客
02-20 1782
分形1. 利用turtle画出分形2. 绘制分形丛 1. 利用turtle画出分形 问题描述: 利用turtle画出下图所示的分形 要求: 木主干向上生长 分形层数为4,二叉 第一层枝长度为60,逐层减6 左右枝的倾斜角度不限,最终效果和下图所示大致相同即可 import turtle as t def tree(n,x): if n <= 0: return None else: t.left(30)
(Python)python基础(一)之分形递归的用法)
sinat_40546227的博客
03-03 1098
写在前面:python是高级语言,相对于java,c等语言便捷性和可读性大大提高,笔者从基础开始接触python语法。 题意 分形几何的基本思想: 局部是整体成比例缩小后的形态,客观事物具有相似的层次结构, 局部与整体在统计意义上具有相似性。 总而言之,就是将局部放大后的图形与先前图形相似。 递归函数的必备因素: 重复单元、停止条件(各函数逐层结束运算,返回计算结果) 补充 turtle库 ...
python 绘制分形
Admans的专栏
10-30 1364
# -*- coding: utf8 -*- """ 绘制分形 """ import turtle deflection_angle = 20 # 枝与干夹角 trunk_min_length = 5 # 干最小长度 trunk_step_length = 10 # 干每次递减长度 trunk_length = 80 ...
Python绘制分形
数据库爆破专家的博客
03-09 3522
Python绘制分形 任务要求 1.干初始长度为50。 2.每次绘制完成枝时,画笔右转20度。 3.绘制下一段枝时,长度减少15,。重复2-3操作直至终止。 4.终止条件:枝长度小于5,此时为顶端枝。 5.达到终止条件后,画笔左转40度,以当前长度减少15,继续绘制枝。 6.右转20度,回到原方向,退回上一个节点,直到操作完成。 7.判断如果是枝末端,将画笔颜色改变为绿色,绘制出叶的效果。 import turtle def draw_tree(branch_length, t):
53
原创
69
点赞
462
收藏
28
粉丝
关注
私信
写文章

热门文章

  • 使用powerdesigner建立ER图,将ER图转为物理模型,将物理模型导出为sql,将sql导入mysql数据库 21516
  • python读取csv文件编码问题 6193
  • python写入文件时,encoding=‘utf-8‘格式,打开生成的csv或者excel文件,中文是乱码 5454
  • 使用turtle库绘制名字 4950
  • python爬虫爬取豆瓣电影排行榜,并写进csv文件,可视化数据分析 4485

最新评论

  • 使用powerdesigner建立ER图,将ER图转为物理模型,将物理模型导出为sql,将sql导入mysql数据库

    秃头茄某: 请问逻辑图里面建立实体,但是建立完成后属性前面没有*号等符号是为什么啊

  • python写入文件时,encoding=‘utf-8‘格式,打开生成的csv或者excel文件,中文是乱码

    Waynecool: 感谢,用上了。

  • python写入文件时,encoding=‘utf-8‘格式,打开生成的csv或者excel文件,中文是乱码

    Griffy650: 有用有用

  • python写入文件时,encoding=‘utf-8‘格式,打开生成的csv或者excel文件,中文是乱码

    Griffy650: 太感谢了表情包

  • python读取csv文件编码问题

    测试猿001: THANKS

最新文章

  • flask模块中嵌入css代码可以,引入css文件不显示
  • 递归讲解-科赫曲线(python版)
  • excel日期由数字转为 年-月-日
2023年1篇
2022年11篇
2021年14篇
2020年22篇
2019年17篇

目录

目录

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

玻璃钢生产厂家深圳定做玻璃钢雕塑制品贵阳玻璃钢雕塑厂家山东人物玻璃钢雕塑临沂动物玻璃钢雕塑定做开封公园玻璃钢雕塑施工安装湖北欧式玻璃钢雕塑价位长沙特色玻璃钢雕塑设计中国园林玻璃钢雕塑玻璃钢雕塑喷镀加工玉溪玻璃钢仿生雕塑吉林玻璃钢斑马雕塑定做潍坊玻璃钢雕塑供应河南玻璃钢雕塑摆件报价石材玻璃钢雕塑定制北京仿铜玻璃钢雕塑价格南阳玻璃钢雕塑云南抽象玻璃钢雕塑方法松原玻璃钢雕塑报价重庆仿铜玻璃钢雕塑阿拉善盟雕塑玻璃钢卡通贵州玻璃钢人物雕塑厂家埃及商场美陈乐山佛像玻璃钢雕塑信阳太湖石玻璃钢景观雕塑贵州商场美陈和田气球商场美陈装饰费用多少佛山玻璃钢浮雕雕塑厂家承德玻璃钢雕塑找哪家天津公园玻璃钢雕塑厂家枣强玻璃钢雕塑艺术香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化