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 urlopen()函数 示例分享
Jun 12 Python
Python有序查找算法之二分法实例分析
Dec 11 Python
PyQt5每天必学之切换按钮
Aug 20 Python
python的concat等多种用法详解
Nov 28 Python
python实现AES加密和解密
Mar 27 Python
python3实现猜数字游戏
Dec 07 Python
django-rest-framework解析请求参数过程详解
Jul 18 Python
pytorch 加载(.pth)格式的模型实例
Aug 20 Python
python 动态调用函数实例解析
Oct 21 Python
TensorFlow keras卷积神经网络 添加L2正则化方式
May 22 Python
Python如何把十进制数转换成ip地址
May 25 Python
keras中的loss、optimizer、metrics用法
Jun 15 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支付宝在线支付接口开发教程
2016/09/19 PHP
PHP巧妙利用位运算实现网站权限管理的方法
2017/03/12 PHP
PHP实现可添加水印与生成缩略图的图片处理工具类
2018/01/16 PHP
PHP生成短网址的思路以及实现方法的详解
2019/03/25 PHP
JavaScript 实现模态对话框 源代码大全
2009/05/02 Javascript
javascript 手动给表增加数据的小例子
2013/07/10 Javascript
node.js中的socket.io入门实例
2014/04/26 Javascript
图片放大镜jquery.jqzoom.js使用实例附放大镜图标
2014/06/19 Javascript
node.js中的fs.appendFileSync方法使用说明
2014/12/17 Javascript
jQuery插件scroll实现无缝滚动效果
2015/04/27 Javascript
详解JavaScript的回调函数
2015/11/20 Javascript
实例解析angularjs的filter过滤器
2016/12/14 Javascript
JS检测数组类型的方法小结
2017/03/14 Javascript
在ES5与ES6环境下处理函数默认参数的实现方法
2018/05/13 Javascript
vue中格式化时间过滤器代码实例
2019/04/17 Javascript
vue element 中的table动态渲染实现(动态表头)
2019/11/21 Javascript
python中Flask框架简单入门实例
2015/03/21 Python
python执行子进程实现进程间通信的方法
2015/06/02 Python
使用Django和Python创建Json response的方法
2018/03/26 Python
Python读取YUV文件,并显示的方法
2018/12/04 Python
Python 私有化操作实例分析
2019/11/21 Python
Pytorch提取模型特征向量保存至csv的例子
2020/01/03 Python
简单了解python shutil模块原理及使用方法
2020/04/28 Python
css3 column实现卡片瀑布流布局的示例代码
2018/06/22 HTML / CSS
html5调用摄像头功能的实现代码
2018/05/07 HTML / CSS
利用html5 canvas动态画饼状图的示例代码
2018/04/02 HTML / CSS
End Clothing美国站:英国男士潮牌商城
2018/04/20 全球购物
办公室文秘自我评价
2013/09/21 职场文书
口头翻译求职人自荐信
2013/12/07 职场文书
优秀班集体获奖感言
2014/02/03 职场文书
网络宣传方案
2014/03/15 职场文书
《小鹰学飞》教学反思
2014/04/23 职场文书
个人评语大全
2014/05/04 职场文书
企业法人代表证明书
2014/09/27 职场文书
二年级语文下册复习计划
2015/01/19 职场文书
《狮子和鹿》教学反思
2016/02/16 职场文书