python实现画一颗树和一片森林


Posted in Python onJune 25, 2018

本文实例为大家分享了python画一颗树和一片森林的具体代码,供大家参考,具体内容如下

实现效果

python实现画一颗树和一片森林

代码在这里

from turtle import Turtle

def tree(plist, l, a, f):
  """
  :param plist:画笔列表,指数型增加
  :param l: 画笔的长度,同时也是递归终止条件,注意下面的引用中是字母l,不是数字1
  :param a: 分开的两个树杈之间夹角的一半,固定值65°
  :param f: 子树与父树的比值
  :return: 返回一个基本的Y型的树
  """
  if l>5:
    lst = []
    for p in plist:
      p.forward(l)
      q = p.clone()
      p.left(a)
      q.right(a)
      lst.append(p)
      lst.append(q)
    tree(lst,l*f,a,f)

def maketree(x,y):
  """

  :param x: 树起点的横坐标
  :param y: 树起点的纵坐标
  :return: 返回一颗树
  """
  p = Turtle()
  p.color("green")
  p.pensize(5)
  p.hideturtle() # 隐藏那只小乌龟

  p.getscreen().tracer(30,0)# 获得屏幕句柄,可以对其进行操作,每30次操作将屏幕刷新,延时为0
  p.speed(10)
  p.left(90)

  p.penup()
  p.goto(x, y)
  p.pendown() # 此三句向来组合使用,意思为起笔,移动,落笔之意

  t = tree([p],200,65,0.6375)
  print(len(p.getscreen().turtles()))  #一共用了多少笔划
def main():
  """
  主函数,赋树的起点坐标
  """
  maketree(0,0)
  maketree(-200,-200)
  maketree(200,-200)

main()

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

Python 相关文章推荐
解决pyinstaller打包pyqt5的问题
Jan 08 Python
Python面向对象之类的定义与继承用法示例
Jan 14 Python
利用Python半自动化生成Nessus报告的方法
Mar 19 Python
Python整数对象实现原理详解
Jul 01 Python
10款最好的Python开发编辑器
Jul 03 Python
django 自定义过滤器(filter)处理较为复杂的变量方法
Aug 12 Python
TensorFlow学习之分布式的TensorFlow运行环境
Feb 05 Python
python主要用于哪些方向
Jul 05 Python
如何利用python读取micaps文件详解
Oct 18 Python
python在协程中增加任务实例操作
Feb 28 Python
Python Pandas模块实现数据的统计分析的方法
Jun 24 Python
简单且有用的Python数据分析和机器学习代码
Jul 02 Python
完美解决在oj中Python的循环输入问题
Jun 25 #Python
django rest framework 数据的查找、过滤、排序的示例
Jun 25 #Python
python使用turtle库绘制树
Jun 25 #Python
使用Python微信库itchat获得好友和群组已撤回的消息
Jun 24 #Python
python库lxml在linux和WIN系统下的安装
Jun 24 #Python
Python3中详解fabfile的编写
Jun 24 #Python
关于python写入文件自动换行的问题
Jun 23 #Python
You might like
Yii针对添加行的增删改查操作示例
2016/10/18 PHP
Zend Framework分发器用法示例
2016/12/11 PHP
用JQuery在网页中实现分隔条功能的代码
2012/08/09 Javascript
用unescape反编码得出汉字示例
2014/04/24 Javascript
jquery使用slideDown实现模块缓慢拉出效果的方法
2015/03/27 Javascript
Javascript获取表单名称(name)的方法
2015/04/02 Javascript
javascript设计模式--策略模式之输入验证
2015/11/27 Javascript
JavaScript+html5 canvas实现本地截图教程
2020/04/16 Javascript
javascript Promise简单学习使用方法小结
2016/05/17 Javascript
JavaScript知识点总结(十一)之js中的Object类详解
2016/05/31 Javascript
javascript ASCII和Hex互转的实现方法
2016/12/27 Javascript
浅谈JS中的反柯里化( uncurrying)
2017/08/17 Javascript
利用Node.js了解与测量HTTP所花费的时间详解
2017/09/22 Javascript
使用webpack4编译并压缩ES6代码的方法示例
2019/04/24 Javascript
Vue中UI组件库之Vuex与虚拟服务器初识
2019/05/07 Javascript
微信小程序实现元素渐入渐出动画效果封装方法
2019/05/18 Javascript
[43:41]OG vs Newbee 2019国际邀请赛淘汰赛 胜者组 BO3 第一场 8.21.mp4
2020/07/19 DOTA
python实现微信接口(itchat)详细介绍
2017/10/23 Python
浅谈Python黑帽子取代netcat
2018/02/10 Python
启动Atom并运行python文件的步骤
2018/11/09 Python
在python中对变量判断是否为None的三种方法总结
2019/01/23 Python
Python3中编码与解码之Unicode与bytes的讲解
2019/02/28 Python
Python可变和不可变、类的私有属性实例分析
2019/05/31 Python
解决django的template中如果无法引用MEDIA_URL问题
2020/04/07 Python
python中tkinter窗口位置\坐标\大小等实现示例
2020/07/09 Python
Python collections.deque双边队列原理详解
2020/10/05 Python
html5 viewport使用方法示例详解
2013/12/02 HTML / CSS
法学专业个人求职信
2013/09/26 职场文书
护士自我鉴定范文
2013/10/06 职场文书
高中生学习的自我评价
2013/12/14 职场文书
投资意向书范本
2014/04/01 职场文书
导游词之上海东方明珠塔
2019/09/25 职场文书
vue里使用create, mounted调用方法
2022/04/26 Vue.js
mysql sock 文件解析及作用讲解
2022/07/15 MySQL
maven 解包依赖项中的文件的解决方法
2022/07/15 Java/Android
JS前端使用Canvas快速实现手势解锁特效
2022/09/23 Javascript