python使用turtle绘制分形树


Posted in Python onJune 22, 2018

由于分形树具有对称性,自相似性,所以我们可以用递归来完成绘制。只要确定开始树枝长、每层树枝的减短长度和树枝分叉的角度,我们就可以把分形树画出来啦!!

代码如下:

# -*- coding: utf-8 -*-
'''
绘制分形树
'''

import turtle as tl 

def draw_smalltree(tree_length,tree_angle):
 '''
 绘制分形树函数
 '''
 if tree_length >= 3:
  tl.forward(tree_length) #往前画
  tl.right(tree_angle) #往右转
  draw_smalltree(tree_length - 10,tree_angle)#画下一枝,直到画到树枝长小于3

  tl.left(2 * tree_angle) #转向画左
  draw_smalltree(tree_length -10,tree_angle) #直到画到树枝长小于3

  tl.rt(tree_angle) #转到正向上的方向,然后回溯到上一层
  if tree_length <= 30: #树枝长小于30,可以当作树叶了,树叶部分为绿色
   tl.pencolor('green')
  if tree_length > 30:
   tl.pencolor('brown') #树干部分为棕色
  tl.backward(tree_length) #往回画,回溯到上一层

def main():
 tl.penup()
 #tl.pencolor('green')
 tl.left(90) #因为树是往上的,所以先把方向转左
 tl.backward(250) #把起点放到底部
 tl.pendown()
 tree_length = 100 #我设置的最长树干为100
 tree_angle = 20 #树枝分叉角度,我设为20
 draw_smalltree(tree_length,tree_angle)
 tl.exitonclick() #点击才关闭画画窗口

if __name__ == '__main__':
 main()

结果如下:

python使用turtle绘制分形树

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

Python 相关文章推荐
python实现socket客户端和服务端简单示例
Feb 24 Python
Python 模板引擎的注入问题分析
Jan 01 Python
Python处理文本文件中控制字符的方法
Feb 07 Python
Python连接phoenix的方法示例
Sep 29 Python
解决python3中自定义wsgi函数,make_server函数报错的问题
Nov 21 Python
Python实现通讯录功能
Feb 22 Python
win7+Python3.5下scrapy的安装方法
Jul 31 Python
Python实现正则表达式匹配任意的邮箱方法
Dec 20 Python
python 函数中的内置函数及用法详解
Jul 02 Python
python使用docx模块读写docx文件的方法与docx模块常用方法详解
Feb 17 Python
TensorFlow的环境配置与安装教程详解(win10+GeForce GTX1060+CUDA 9.0+cuDNN7.3+tensorflow-gpu 1.12.0+python3.5.5)
Jun 22 Python
python录音并调用百度语音识别接口的示例
Dec 01 Python
python递归函数绘制分形树的方法
Jun 22 #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
You might like
用php实现批量查询清除一句话后门的代码
2008/01/20 PHP
查找mysql字段中固定字符串并替换的几个方法
2012/09/23 PHP
php文件上传后端处理小技巧
2016/05/22 PHP
PHP排序算法之堆排序(Heap Sort)实例详解
2018/04/21 PHP
JavaScript 对象的属性和方法4种不同的类型
2010/03/19 Javascript
javascript基础第一章 JavaScript与用户端
2010/07/22 Javascript
关于 文本框默认值 的操作js代码
2012/01/12 Javascript
顶部缓冲下拉菜单导航特效的JS代码
2013/08/27 Javascript
javascript实现3D变换的立体圆圈实例
2015/08/06 Javascript
javascript实现自动填写表单实例简析
2015/12/02 Javascript
使用angularjs创建简单表格
2016/01/21 Javascript
jquery trigger函数执行两次的解决方法
2016/02/29 Javascript
基于jquery实现无限级树形菜单
2016/03/22 Javascript
JQuery组件基于Bootstrap的DropDownList(完整版)
2016/07/05 Javascript
关于Function中的bind()示例详解
2016/12/02 Javascript
js定时器实例分享
2016/12/20 Javascript
本地搭建微信小程序服务器的实现方法
2017/10/27 Javascript
解决Layui 表单提交数据为空的问题
2018/08/15 Javascript
ES6中let 和 const 的新特性
2018/09/03 Javascript
JavaScript中的null和undefined用法解析
2019/09/30 Javascript
Python发送以整个文件夹的内容为附件的邮件的教程
2015/05/06 Python
python实现爬取千万淘宝商品的方法
2015/06/30 Python
python和ruby,我选谁?
2017/09/13 Python
解决phantomjs截图失败,phantom.exit位置的问题
2018/05/17 Python
Python3 利用requests 库进行post携带账号密码请求数据的方法
2018/10/26 Python
pytorch实现特殊的Module--Sqeuential三种写法
2020/01/15 Python
利用Python如何画一颗心、小人发射爱心
2021/02/21 Python
Vichy薇姿加拿大官网:法国药妆,全球专业敏感肌护肤领先品牌
2018/07/11 全球购物
授权委托书格式模板
2014/04/03 职场文书
课前一分钟演讲稿
2014/08/26 职场文书
音乐之声音乐广播稿
2014/09/10 职场文书
小学教师师德整改措施
2014/09/29 职场文书
网络营销计划
2015/01/17 职场文书
超市采购员岗位职责
2015/04/07 职场文书
汽车销售员工作总结
2015/08/12 职场文书
纯CSS如何禁止用户复制网页的内容
2021/11/01 HTML / CSS