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中os和shutil模块实用方法集锦
May 13 Python
Python实现list反转实例汇总
Nov 11 Python
Python通过Django实现用户注册和邮箱验证功能代码
Dec 11 Python
对python的输出和输出格式详解
Dec 08 Python
windows python3安装Jupyter Notebooks教程
Apr 13 Python
浅析Python 序列化与反序列化
Aug 05 Python
图解Python中深浅copy(通俗易懂)
Sep 03 Python
Python中实现一行拆多行和多行并一行的示例代码
Sep 06 Python
python 贪心算法的实现
Sep 18 Python
Python进行特征提取的示例代码
Oct 15 Python
Python基于百度AI实现抓取表情包
Jun 27 Python
使用python绘制横竖条形图
Apr 21 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 静态化实现代码
2009/03/20 PHP
[原创]提供复制本站内容时出现,该文章转自脚本之家等字样的js代码
2007/03/27 Javascript
jQuery 使用手册(六)
2009/09/23 Javascript
我的javascript 函数链之演变
2011/04/07 Javascript
JavaScript 基础篇之运算符、语句(二)
2012/04/07 Javascript
Ajax执行顺序流程及回调问题分析
2012/12/10 Javascript
Js 回车换行处理的办法及replace方法应用
2013/01/24 Javascript
jquery实现点击弹出层效果的简单实例
2014/03/03 Javascript
js中定义一个变量并判断其是否为空的方法
2014/05/13 Javascript
手写的一个兼容各种浏览器的javascript getStyle函数(获取元素的样式)
2014/06/06 Javascript
在Ubuntu上安装最新版本的Node.js
2014/07/14 Javascript
用JavaScript获取页面文档内容的实现代码
2016/06/10 Javascript
微信小程序 在Chrome浏览器上运行以及WebStorm的使用
2016/09/27 Javascript
js获取时间函数及扩展函数的方法
2016/10/30 Javascript
如何利用ES6进行Promise封装总结
2019/02/11 Javascript
ES6数组与对象的解构赋值详解
2019/06/14 Javascript
js实现for循环跳过undefined值示例
2019/07/02 Javascript
JS使用Chrome浏览器实现调试线上代码
2020/07/23 Javascript
python+mysql实现简单的web程序
2014/09/11 Python
Python中__slots__属性介绍与基本使用方法
2018/09/05 Python
python爬虫selenium和phantomJs使用方法解析
2019/08/08 Python
python 比较字典value的最大值的几种方法
2020/04/17 Python
python:删除离群值操作(每一行为一类数据)
2020/06/08 Python
Python爬虫之Selenium实现关闭浏览器
2020/12/04 Python
C++和python实现阿姆斯特朗数字查找实例代码
2020/12/07 Python
英国在线定做百叶窗网站:Make My Blinds
2020/08/17 全球购物
大学生演讲稿
2014/04/25 职场文书
工作期间打牌检讨书范文
2014/11/20 职场文书
优秀教研组申报材料
2014/12/26 职场文书
高三英语复习计划
2015/01/19 职场文书
小学副班长竞选稿
2015/11/21 职场文书
python tqdm用法及实例详解
2021/06/16 Python
sql注入教程之类型以及提交注入
2021/08/02 MySQL
在js中修改html body的样式
2021/11/11 Javascript
Jmerte 分布式压测及分布式压测配置
2022/04/30 Java/Android
Java中的Kafka为什么性能这么快及4大核心详析
2022/09/23 Java/Android