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 相关文章推荐
Python httplib,smtplib使用方法
Sep 06 Python
Python ORM框架SQLAlchemy学习笔记之关系映射实例
Jun 10 Python
详解Python中for循环的使用方法
May 14 Python
python读取oracle函数返回值
Jul 18 Python
利用Python暴力破解zip文件口令的方法详解
Dec 21 Python
python pycurl验证basic和digest认证的方法
May 02 Python
Python实现定期检查源目录与备份目录的差异并进行备份功能示例
Feb 27 Python
python3+selenium自动化测试框架详解
Mar 17 Python
Python实现的登录验证系统完整案例【基于搭建的MVC框架】
Apr 12 Python
python logging.info在终端没输出的解决
May 12 Python
Python3读取和写入excel表格数据的示例代码
Jun 09 Python
python语言time库和datetime库基本使用详解
Dec 25 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
php魔术方法与魔术变量、内置方法与内置变量的深入分析
2013/06/03 PHP
浅谈PHP的反射API
2017/02/26 PHP
laravel 中如何使用ajax和vue总结
2017/08/16 PHP
基于jquery的商品展示放大镜
2010/08/07 Javascript
JS简单的图片放大缩小的两种方法
2013/11/11 Javascript
javascript模拟枚举的简单实例
2014/03/06 Javascript
javascript打开word文档的方法
2014/04/16 Javascript
input标签内容改变的触发事件介绍
2014/06/18 Javascript
jquery 操作css样式、位置、尺寸方法汇总
2014/11/28 Javascript
javascript正则表达式定义(语法)总结
2016/01/08 Javascript
JavaScript对象数组如何按指定属性和排序方向进行排序
2016/06/15 Javascript
jquery.serialize() 函数语法及简单实例
2016/07/08 Javascript
vue.js实现表格合并示例代码
2016/11/30 Javascript
JS实现点击按钮可实现编辑功能
2018/07/03 Javascript
ionic4+angular7+cordova上传图片功能的实例代码
2019/06/19 Javascript
详解阿里Node.js技术文档之process模块学习指南
2021/01/04 Javascript
[02:12]DOTA2英雄基础教程 变体精灵
2013/12/16 DOTA
[01:10]DOTA2次级职业联赛 - EP战队宣传片
2014/12/01 DOTA
[49:21]TNC vs VG 2019DOTA2国际邀请赛淘汰赛 胜者组赛BO3 第三场 8.20.mp4
2019/08/22 DOTA
构建Python包的五个简单准则简介
2015/06/15 Python
Python实现大文件排序的方法
2015/07/10 Python
python获取list下标及其值的简单方法
2016/09/12 Python
Python中支持向量机SVM的使用方法详解
2017/12/26 Python
selenium+python设置爬虫代理IP的方法
2018/11/29 Python
Python 移动光标位置的方法
2019/01/20 Python
简单了解Python多态与属性运行原理
2020/06/15 Python
使用pygame实现垃圾分类小游戏功能(已获校级二等奖)
2020/07/23 Python
python import 上级目录的导入
2020/11/03 Python
环法自行车赛官方商店:Le Tour de France
2017/08/27 全球购物
英国顶尖手表珠宝品牌独家授权经销商:HS Johnson
2020/10/28 全球购物
北京振戎融通Java面试题
2015/09/03 面试题
学雷锋树新风演讲稿
2014/05/10 职场文书
英语专业毕业生求职信
2014/05/24 职场文书
2015年学生会工作总结范文
2015/03/31 职场文书
大学生村官工作总结2015
2015/04/09 职场文书
HR在给员工开具离职证明时,需要注意哪些问题?
2019/07/03 职场文书