Python+Turtle动态绘制一棵树实例分享


Posted in Python onJanuary 16, 2018

本文实例主要是对turtle的使用,实现Python+turtle动态绘制一棵树的实例,具体代码:

# drawtree.py
 
from turtle import Turtle, mainloop
 
def tree(plist, l, a, f):
  """ plist is list of pens
  l is length of branch
  a is half of the angle between 2 branches
  f is factor by which branch is shortened
  from level to level."""
  if l > 5: #
    lst = []
    for p in plist:
      p.forward(l)#沿着当前的方向画画Move the turtle forward by the specified distance, in the direction the turtle is headed.
      q = p.clone()#Create and return a clone of the turtle with same position, heading and turtle properties.
      p.left(a) #Turn turtle left by angle units
      q.right(a)# turn turtle right by angle units, nits are by default degrees, but can be set via the degrees() and radians() functions.
      lst.append(p)#将元素增加到列表的最后
      lst.append(q)
    tree(lst, l*f, a, f)
  
      
 
def main():
  p = Turtle()
  p.color("green")
  p.pensize(5)
  #p.setundobuffer(None)
  p.hideturtle() #Make the turtle invisible. It's a good idea to do this while you're in the middle of doing some complex drawing,
  #because hiding the turtle speeds up the drawing observably.
  #p.speed(10)
  # p.getscreen().tracer(1,0)#Return the TurtleScreen object the turtle is drawing on.
  p.speed(10)
  #TurtleScreen methods can then be called for that object.
  p.left(90)# Turn turtle left by angle units. direction 调整画笔
 
  p.penup() #Pull the pen up ? no drawing when moving.
  p.goto(0,-200)#Move turtle to an absolute position. If the pen is down, draw line. Do not change the turtle's orientation.
  p.pendown()# Pull the pen down ? drawing when moving. 这三条语句是一个组合相当于先把笔收起来再移动到指定位置,再把笔放下开始画
  #否则turtle一移动就会自动的把线画出来
 
  #t = tree([p], 200, 65, 0.6375)
  t = tree([p], 200, 65, 0.6375)
   
main()

实现效果:

Python+Turtle动态绘制一棵树实例分享

总结

以上就是本文关于Python+Turtle动态绘制一棵树实例分享的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!

Python 相关文章推荐
在Python中操作列表之list.extend()方法的使用
May 20 Python
Python 两个列表的差集、并集和交集实现代码
Sep 21 Python
python Celery定时任务的示例
Mar 13 Python
Pandas:DataFrame对象的基础操作方法
Jun 07 Python
详解配置Django的Celery异步之路踩坑
Nov 25 Python
解决项目pycharm能运行,在终端却无法运行的问题
Jan 19 Python
python中的Elasticsearch操作汇总
Oct 30 Python
Python多线程获取返回值代码实例
Feb 17 Python
Python定时从Mysql提取数据存入Redis的实现
May 03 Python
python中的yield from语法快速学习
Nov 06 Python
python实现视频压缩功能
Dec 18 Python
python的html标准库
Apr 29 Python
Python实现七彩蟒蛇绘制实例代码
Jan 16 #Python
答题辅助python代码实现
Jan 16 #Python
python实现百万答题自动百度搜索答案
Jan 16 #Python
Python数据结构之双向链表的定义与使用方法示例
Jan 16 #Python
python+pillow绘制矩阵盖尔圆简单实例
Jan 16 #Python
Python面向对象编程之继承与多态详解
Jan 16 #Python
Python基于socket实现简单的即时通讯功能示例
Jan 16 #Python
You might like
基于mysql的论坛(2)
2006/10/09 PHP
Yii入门教程之目录结构、入口文件及路由设置
2014/11/25 PHP
PHP使用strtotime计算两个给定日期之间天数的方法
2015/03/18 PHP
php解决约瑟夫环算法实例分析
2019/09/30 PHP
jquery中对于批量deferred的处理方法
2014/01/22 Javascript
JavaScript初学者建议:不要去管浏览器兼容
2014/02/04 Javascript
javascript异步编程的4种方法
2014/02/19 Javascript
JS实现可展开折叠层的鼠标拖曳效果
2015/10/09 Javascript
基于Jquery实现万圣节快乐特效
2015/11/01 Javascript
第一次接触神奇的Bootstrap网格系统
2016/07/27 Javascript
JS 实现 ajax 异步浏览器兼容问题
2017/01/21 Javascript
进阶之初探nodeJS
2017/01/24 NodeJs
Angular 如何使用第三方库的方法
2018/04/18 Javascript
详解Vue.js自定义tipOnce指令用法实例
2018/12/19 Javascript
js canvas实现橡皮擦效果
2018/12/20 Javascript
Vue渲染过程浅析
2019/03/14 Javascript
Vue模板语法中数据绑定的实例代码
2019/05/17 Javascript
vue实现全屏滚动效果(非fullpage.js)
2020/03/07 Javascript
原生js实现自定义滚动条组件
2021/01/20 Javascript
python字符串替换示例
2014/04/24 Python
python万年历实现代码 含运行结果
2017/05/20 Python
使用Python给头像加上圣诞帽或圣诞老人小图标附源码
2019/12/25 Python
pytorch查看torch.Tensor和model是否在CUDA上的实例
2020/01/03 Python
python标准库os库的函数介绍
2020/02/12 Python
浅谈opencv自动光学检测、目标分割和检测(连通区域和findContours)
2020/06/04 Python
Python GUI之tkinter窗口视窗教程大集合(推荐)
2020/10/20 Python
牵手50香港:专为黄金岁月的单身人士而设的交友网站
2020/08/14 全球购物
波兰家居饰品和厨房配件网上商店:Maleomi
2020/12/15 全球购物
说出数据连接池的工作机制是什么?
2013/04/19 面试题
材料加工硕士生求职信
2013/10/10 职场文书
中专生职业生涯规划书范文
2014/01/10 职场文书
婚假请假条怎么写
2014/04/10 职场文书
民主生活会发言材料
2014/10/20 职场文书
埃及王子观后感
2015/06/16 职场文书
优秀教师工作总结2015
2015/07/22 职场文书
python基于scrapy爬取京东笔记本电脑数据并进行简单处理和分析
2021/04/14 Python