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 相关文章推荐
pycharm 使用心得(九)解决No Python interpreter selected的问题
Jun 06 Python
python处理Excel xlrd的简单使用
Sep 12 Python
python机器学习实战之K均值聚类
Dec 20 Python
Python函数定义及传参方式详解(4种)
Mar 18 Python
python输入错误后删除的方法
Oct 12 Python
pycharm解决关闭flask后依旧可以访问服务的问题
Apr 03 Python
Python -m参数原理及使用方法解析
Aug 21 Python
python 5个实用的技巧
Sep 27 Python
Django限制API访问频率常用方法解析
Oct 12 Python
PyQt5的QWebEngineView使用示例
Oct 20 Python
利用pipenv和pyenv管理多个相互独立的Python虚拟开发环境
Nov 01 Python
基于python的opencv图像处理实现对斑马线的检测示例
Nov 29 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
把从SQL中取出的数据转化成XMl格式
2006/10/09 PHP
通过文字传递创建的图形按钮
2006/10/09 PHP
php 文件上传后缀名与文件类型对照表(几乎涵盖所有文件)
2010/05/16 PHP
Codeigniter操作数据库表的优化写法总结
2014/06/12 PHP
Js 获取当前日期时间及其它操作实现代码
2021/03/04 Javascript
JS 无法通过W3C验证的处理方法
2010/03/09 Javascript
JAVASCRIPT实现的WEB页面跳转以及页面间传值方法
2010/05/13 Javascript
javascript实现div的显示和隐藏的小例子
2013/06/25 Javascript
node.js中的fs.lchown方法使用说明
2014/12/16 Javascript
AngularJs根据访问的页面动态加载Controller的解决方案
2015/02/04 Javascript
jQuery模拟物体自由落体运动(附演示与demo源码下载)
2016/01/21 Javascript
JavaScript中用let语句声明作用域的用法讲解
2016/05/20 Javascript
js实现右键菜单功能
2016/11/28 Javascript
jQuery中的siblings()是什么意思(推荐)
2016/12/29 Javascript
详解从Node.js的child_process模块来学习父子进程之间的通信
2017/03/27 Javascript
jQuery自动或手动图片切换效果
2017/10/11 jQuery
ES6模板字符串和标签模板的应用实例分析
2019/06/25 Javascript
vue中的v-if和v-show的区别详解
2019/09/01 Javascript
[02:03]完美世界DOTA2联赛10月30日赛事集锦
2020/10/31 DOTA
使用python实现省市三级菜单效果
2016/01/20 Python
python发送邮件功能实现代码
2016/07/15 Python
python使用turtle库与random库绘制雪花
2018/06/22 Python
使用TensorFlow实现SVM
2018/09/06 Python
python并发编程多进程 互斥锁原理解析
2019/08/20 Python
基于python实现破解滑动验证码过程解析
2020/05/28 Python
简单了解Python多态与属性运行原理
2020/06/15 Python
PyTorch-GPU加速实例
2020/06/23 Python
HTML5 Canvas标签使用收录
2009/07/07 HTML / CSS
EntityManager都有哪些方法
2013/11/01 面试题
元旦晚会邀请函
2014/02/01 职场文书
党员领导干部廉洁从政承诺书
2014/03/27 职场文书
具结保证书
2015/01/17 职场文书
仓库管理员岗位职责
2015/02/03 职场文书
2015年教学管理工作总结
2015/05/20 职场文书
资产移交协议书
2016/03/24 职场文书
导游词之重庆钓鱼城
2019/09/19 职场文书