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安装后pip不能用的问题
Jun 12 Python
Python 中 function(#) (X)格式 和 (#)在Python3.*中的注意事项
Nov 30 Python
对Pycharm创建py文件时自定义头部模板的方法详解
Feb 12 Python
pandas的qcut()方法详解
Jul 06 Python
Python实现K折交叉验证法的方法步骤
Jul 11 Python
python单例模式的多种实现方法
Jul 26 Python
python批量处理文件或文件夹
Jul 28 Python
python中enumerate() 与zip()函数的使用比较实例分析
Sep 03 Python
在PyTorch中使用标签平滑正则化的问题
Apr 03 Python
Pycharm 使用 Pipenv 新建的虚拟环境(图文详解)
Apr 16 Python
vue.js刷新当前页面的实例讲解
Dec 29 Python
python游戏开发Pygame框架
Apr 22 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 substr,mb_substr以及mb_strcut的区别和用法
2013/06/21 PHP
提高PHP性能的编码技巧以及性能优化详细解析
2013/08/24 PHP
php使用array_rand()函数从数组中随机选择一个或多个元素
2014/04/28 PHP
PHP使用redis实现统计缓存mysql压力的方法
2015/11/14 PHP
实例讲解php数据访问
2016/05/09 PHP
php指定长度分割字符串str_split函数用法示例
2017/01/30 PHP
如何修改Laravel中url()函数生成URL的根地址
2017/08/11 PHP
PHP设计模式之适配器模式原理与用法分析
2018/04/25 PHP
PHP7使用ODBC连接SQL Server2008 R2数据库示例【基于thinkPHP5.1框架】
2019/05/06 PHP
jquery 1.3.2 IE8中的一点点的小问题解决方法
2009/07/10 Javascript
使用jQuery避免鼠标双击的解决方案
2013/08/21 Javascript
js冒泡、捕获事件及阻止冒泡方法详细总结
2014/05/08 Javascript
javascript实现带下拉子菜单的导航菜单效果
2015/05/14 Javascript
jQuery实现限制textarea文本框输入字符数量的方法
2015/05/28 Javascript
jQuery 获取屏幕高度、宽度的简单实现案例
2016/05/17 Javascript
用jQuery的AJax实现异步访问、异步加载
2016/11/02 Javascript
js实现倒计时及时间对象
2016/11/15 Javascript
图片懒加载插件实例分享(含解析)
2017/01/09 Javascript
微信小程序 Button 组件详解及简单实例
2017/01/10 Javascript
微信小程序实现图片预加载组件
2017/01/18 Javascript
vue通信方式EventBus的实现代码详解
2019/06/10 Javascript
[01:42:49]DOTA2-DPC中国联赛 正赛 iG vs PSG.LGD BO3 第一场 2月26日
2021/03/11 DOTA
使用Django的模版来配合字符串翻译工作
2015/07/27 Python
python版简单工厂模式
2017/10/16 Python
pandas 层次化索引的实现方法
2019/07/06 Python
django drf框架自带的路由及最简化的视图
2019/09/10 Python
python 简单的调用有道翻译
2020/11/25 Python
灵活运用CSS3特性绘制简易版围棋效果
2016/09/28 HTML / CSS
CSS3 文字动画效果
2020/11/12 HTML / CSS
HTML5网页录音和上传到服务器支持PC、Android,支持IOS微信功能
2019/04/26 HTML / CSS
泰国在线书店:SE-ED
2020/06/21 全球购物
给同事的道歉信
2014/01/11 职场文书
《小鹰学飞》教学反思
2014/04/23 职场文书
交通事故赔偿协议书
2014/10/16 职场文书
公司更名通知函
2015/04/24 职场文书
会计手工模拟做账心得体会
2016/01/22 职场文书