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中的socket模块使用代理实例
May 29 Python
python实现的一个火车票转让信息采集器
Jul 09 Python
Python sqlite3事务处理方法实例分析
Jun 19 Python
flask 使用 flask_apscheduler 做定时循环任务的实现
Dec 10 Python
解决Pytorch 加载训练好的模型 遇到的error问题
Jan 10 Python
基于virtualenv创建python虚拟环境过程图解
Mar 30 Python
Python如何使用队列方式实现多线程爬虫
May 12 Python
基于python代码批量处理图片resize
Jun 04 Python
python基于爬虫+django,打造个性化API接口
Jan 21 Python
python基于pexpect库自动获取日志信息
Feb 01 Python
Python 实现定积分与二重定积分的操作
May 26 Python
python实现双链表
May 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中使用Oracle数据库(6)
2006/10/09 PHP
PHP文件打开、关闭、写入的判断与执行代码
2011/05/24 PHP
基于curl数据采集之单页面采集函数get_html的使用
2013/04/28 PHP
ThinkPHP基本的增删查改操作实例教程
2014/08/22 PHP
PHP自毁程序(慎用)
2015/07/09 PHP
Yii框架弹出窗口组件CJuiDialog用法分析
2017/01/07 PHP
PHP开发api接口安全验证操作实例详解
2020/03/26 PHP
关于js日期转化为毫秒数“节省20%的效率和和节省9个字符“问题
2012/03/01 Javascript
CodeMirror2 IE7/IE8 下面未知运行时错误的解决方法
2012/03/29 Javascript
JavaScript的漂亮的代码片段
2013/06/05 Javascript
jQuery照片伸缩效果不影响其他元素的布局
2014/05/09 Javascript
使用bootstrap validator的remote验证代码经验分享(推荐)
2016/09/21 Javascript
Angular.js中用ng-repeat-start实现自定义显示
2016/10/18 Javascript
jQuery实现键盘回车搜索功能
2017/07/25 jQuery
JQuery 获取多个select标签option的text内容(实例)
2017/09/07 jQuery
Javascript实现异步编程的过程
2018/06/18 Javascript
angular中两种表单的区别(响应式和模板驱动表单)
2018/12/06 Javascript
js+HTML5 canvas 实现简单的加载条(进度条)功能示例
2019/07/16 Javascript
jquery添加div实现消息聊天框
2020/02/08 jQuery
JQuery省市联动效果实现过程详解
2020/05/08 jQuery
openlayers 3实现车辆轨迹回放
2020/09/24 Javascript
详解vue-router的导航钩子(导航守卫)
2020/11/02 Javascript
Node.js path模块,获取文件后缀名操作
2020/11/07 Javascript
使用python绘制人人网好友关系图示例
2014/04/01 Python
django 发送手机验证码的示例代码
2018/04/25 Python
使用Pandas将inf, nan转化成特定的值
2019/12/19 Python
Django操作session 的方法
2020/03/09 Python
Kears 使用:通过回调函数保存最佳准确率下的模型操作
2020/06/17 Python
Python定义一个Actor任务
2020/07/29 Python
Python 在 VSCode 中使用 IPython Kernel 的方法详解
2020/09/05 Python
html Table 表头固定的实现
2019/01/22 HTML / CSS
教师绩效工资方案
2014/02/01 职场文书
感恩小明星事迹材料
2014/05/23 职场文书
孕妇离婚协议书范本
2014/11/20 职场文书
《和时间赛跑》读后感3篇
2019/12/16 职场文书
如何在Python中妥善使用进度条详解
2022/04/05 Python