python递归函数绘制分形树的方法


Posted in Python onJune 22, 2018

分形几何学的基本思想:客观事物具有自相似性的层次结构,局部和整体在形态,功能,信息,时间,空间等方面具有统计意义上的相似性,称为自相似性,自相似性是指局部是整体成比例缩小的性质。

我们先看一下我们最终要绘制的图形:

python递归函数绘制分形树的方法

案例分析:

python递归函数绘制分形树的方法

python递归函数绘制分形树的方法

代码:

## 绘制分型树,末梢的树枝的颜色不同

import turtle


def draw_brach(brach_length):


  if brach_length > 5:
    if brach_length < 40:
      turtle.color('green')

    else:
      turtle.color('red')

    # 绘制右侧的树枝
    turtle.forward(brach_length)
    print('向前',brach_length)
    turtle.right(25)
    print('右转20')
    draw_brach(brach_length-15)
    # 绘制左侧的树枝
    turtle.left(50)
    print('左转40')
    draw_brach(brach_length-15)

    if brach_length < 40:
      turtle.color('green')

    else:
      turtle.color('red')


    # 返回之前的树枝上
    turtle.right(25)
    print('右转20')
    turtle.backward(brach_length)
    print('返回',brach_length)

def main():
  turtle.left(90)
  turtle.penup()
  turtle.backward(150)
  turtle.pendown()
  turtle.color('red')

  draw_brach(100)

  turtle.exitonclick()

if __name__ == '__main__':
  main()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python实现Tab自动补全和历史命令管理的方法
Mar 12 Python
python实现可将字符转换成大写的tcp服务器实例
Apr 29 Python
python的paramiko模块实现远程控制和传输示例
Oct 13 Python
python生成tensorflow输入输出的图像格式的方法
Feb 12 Python
对python3中, print横向输出的方法详解
Jan 28 Python
python输出电脑上所有的串口名的方法
Jul 02 Python
图解python全局变量与局部变量相关知识
Nov 02 Python
离线状态下在jupyter notebook中使用plotly实例
Apr 24 Python
Keras 使用 Lambda层详解
Jun 10 Python
keras 模型参数,模型保存,中间结果输出操作
Jul 06 Python
python单元测试之pytest的使用
Jun 07 Python
Python 数据可视化之Matplotlib详解
Nov 02 Python
使用pandas模块读取csv文件和excel表格,并用matplotlib画图的方法
Jun 22 #Python
Python使用pandas处理CSV文件的实例讲解
Jun 22 #Python
python处理csv中的空值方法
Jun 22 #Python
Python实现base64编码的图片保存到本地功能示例
Jun 22 #Python
关于python2 csv写入空白行的问题
Jun 22 #Python
浅谈Python2、Python3相对路径、绝对路径导入方法
Jun 22 #Python
Python基于pandas实现json格式转换成dataframe的方法
Jun 22 #Python
You might like
YB217、YB235、YB400浅听
2021/03/02 无线电
PHP 模板高级篇总结
2006/12/21 PHP
全局记录程序片段的运行时间 正确找到程序逻辑耗时多的断点
2011/01/06 PHP
php下拉选项的批量操作的实现代码
2013/10/14 PHP
详解PHP序列化反序列化的方法
2015/10/27 PHP
php+ajax实现文件切割上传功能示例
2020/03/03 PHP
[IE&amp;FireFox兼容]JS对select操作
2007/01/07 Javascript
jQuery中的.bind()、.live()和.delegate()之间区别分析
2011/06/08 Javascript
JQuery 操作/获取table具体代码
2013/06/13 Javascript
JavaScript获取网页中第一个图片id的方法
2015/04/03 Javascript
jQuery实现鼠标经过弹出提示信息的地图热点效果
2015/08/07 Javascript
Listloading.js移动端上拉下拉刷新组件
2016/08/04 Javascript
Vue.js学习笔记之 helloworld
2016/08/14 Javascript
jQuery实现自动输入email、时间和域名的方法
2016/08/24 Javascript
jQuery快速实现商品数量加减的方法
2017/02/06 Javascript
ionic环境配置及问题详解
2017/06/27 Javascript
详解vue.js下引入百度地图jsApi的两种方法
2018/07/27 Javascript
Angular(5.2-&gt;6.1)升级小结
2018/12/27 Javascript
基于Vue+elementUI实现动态表单的校验功能(根据条件动态切换校验格式)
2019/04/04 Javascript
详解vue-template-admin三级路由无法缓存的解决方案
2020/03/10 Javascript
[04:19]完美世界携手游戏风云打造 卡尔工作室模型介绍篇
2013/04/24 DOTA
Python greenlet实现原理和使用示例
2014/09/24 Python
使用Python脚本来获取Cisco设备信息的示例
2015/05/04 Python
详解Python3 基本数据类型
2019/04/19 Python
Python %r和%s区别代码实例解析
2020/04/03 Python
Python 如何调试程序崩溃错误
2020/08/03 Python
美国乒乓球设备、配件和服装品牌:Killerspin
2020/06/07 全球购物
2019年Java 最常见的 面试题
2016/10/19 面试题
服务之星获奖感言
2014/01/21 职场文书
ktv好的活动方案
2014/08/17 职场文书
刑事代理授权委托书
2014/09/17 职场文书
怎样做好公众演讲能力?
2019/08/28 职场文书
html form表单基础入门案例讲解
2021/07/21 HTML / CSS
python中字符串String及其常见操作指南(方法、函数)
2022/04/06 Python
create-react-app开发常用配置教程
2022/06/25 Javascript
Spring Boot优化后启动速度快到飞起技巧示例
2022/07/23 Java/Android