Python使用Turtle库绘制一棵西兰花


Posted in Python onNovember 23, 2019

Turtle库是Python中一个强大的绘制图像的函数库,灵活使用Turtle库可以绘制各种好看的图像。

下面介绍使用Turtle库绘制一棵西兰花。

绘制一棵西兰花,从主干出发以一定的角度向左向右生成对称的枝干,再从每个枝干出发向左向右生成对称的枝干,循环此动作,并最终绘制出一棵漂亮的西兰花。

首先导入Turtle库,并设置画笔大小、画笔速度及颜色,并隐藏画笔

from turtle import Turtle
p=Turtle()
p.pensize(5)
p.color(clr)
p.hideturtle()
p.getscreen().tracer(30,0)

设置起始方向以及位置(屏幕中心为坐标原点)

p.left(90)
p.penup()
p.goto(x,y)
p.pendown()

设置画笔完成之后,开始绘制西兰花,首先绘制从开始画位置向着预定的方向前进一段距离,并向左向右分成两个对称的分支

p.forward(l)
q=p.clone()
p.left(a)
q.right(a)

每完成一次分支后就将两个分支对象添加到list中,并通过遍历list完成整个图像的绘制

def tree(plist,l,a,f):
  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,clr):
  p=Turtle()
  p.pensize(5)
  p.color(clr)
  p.hideturtle()
  p.getscreen().tracer(30,0)
  #p.speed(10)
  p.left(90)
  p.penup()
  p.goto(x,y)
  p.pendown()
  t=tree([p],200,20,0.6375)
  #print(len(p.getscreen().turtles()))

def main():
  maketree(0,-300,"green")

main()

以上这篇Python使用Turtle库绘制一棵西兰花就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python实现文件分组复制到不同目录的例子
Jun 04 Python
python list排序的两种方法及实例讲解
Mar 20 Python
django使用图片延时加载引起后台404错误
Apr 18 Python
Django的信号机制详解
May 05 Python
python爬虫框架talonspider简单介绍
Jun 09 Python
python交互式图形编程实例(一)
Nov 17 Python
微信小程序跳一跳游戏 python脚本跳一跳刷高分技巧
Jan 04 Python
异步任务队列Celery在Django中的使用方法
Jun 07 Python
Python在Matplotlib图中显示中文字体的操作方法
Jul 29 Python
给大家整理了19个pythonic的编程习惯(小结)
Sep 25 Python
Django框架HttpRequest对象用法实例分析
Nov 01 Python
Python的3种运行方式:命令行窗口、Python解释器、IDLE的实现
Oct 10 Python
用Python实现校园通知更新提醒功能
Nov 23 #Python
利用Python的turtle库绘制玫瑰教程
Nov 23 #Python
Python input函数使用实例解析
Nov 22 #Python
python循环输出三角形图案的例子
Nov 22 #Python
Python-Flask:动态创建表的示例详解
Nov 22 #Python
python flask中动态URL规则详解
Nov 22 #Python
Python之——生成动态路由轨迹图的实例
Nov 22 #Python
You might like
PHPWind与Discuz截取字符函数substrs与cutstr性能比较
2011/12/05 PHP
PHP遍历数组的几种方法
2012/03/22 PHP
php连接与操作PostgreSQL数据库的方法
2014/12/25 PHP
WordPress中对访客评论功能的一些优化方法
2015/11/24 PHP
PHP常用字符串操作函数实例总结(trim、nl2br、addcslashes、uudecode、md5等)
2016/01/09 PHP
微信开发之获取JSAPI TICKET
2017/07/07 PHP
PHP使用SMTP邮件服务器发送邮件示例
2018/08/28 PHP
利用js实现选项卡的特别效果的实例
2013/03/03 Javascript
用jquery存取照片的具体实现方法
2013/06/30 Javascript
js获得页面的高度和宽度的方法
2014/02/23 Javascript
JavaScript设计模式之单例模式实例
2014/09/24 Javascript
jQuery实现向下滑出的平滑下拉菜单效果
2015/08/21 Javascript
只要1K 纯JS脚本送你一朵3D红色玫瑰
2016/08/09 Javascript
vue axios封装及API统一管理的方法
2019/04/18 Javascript
微信小程序+腾讯地图开发实现路径规划绘制
2019/05/22 Javascript
关于微信小程序获取小程序码并接受buffer流保存为图片的方法
2019/06/07 Javascript
layui表格内放置图片,并点击放大的实例
2019/09/10 Javascript
Python实现新浪博客备份的方法
2016/04/27 Python
Python3.X 线程中信号量的使用方法示例
2017/07/24 Python
python 实现批量xls文件转csv文件的方法
2018/10/23 Python
Python基本数据结构之字典类型dict用法分析
2019/06/08 Python
Python装饰器使用你可能不知道的几种姿势
2019/10/25 Python
python图的深度优先和广度优先算法实例分析
2019/10/26 Python
AmazeUI 模态窗口的实现代码
2020/08/18 HTML / CSS
英国女性时尚品牌:Apricot
2018/12/04 全球购物
Audible英国:有声读物,30天免费试用
2019/10/16 全球购物
C#面试题问题集
2016/04/02 面试题
本科生个人求职自荐信
2013/09/26 职场文书
经贸日语专业个人求职信范文
2013/12/28 职场文书
廉政教育心得体会
2014/01/01 职场文书
幼儿园师德师风学习材料
2014/05/29 职场文书
2015年民主生活会发言材料
2014/12/15 职场文书
教师党员承诺书2015
2015/01/21 职场文书
优秀员工自荐书
2015/03/06 职场文书
安全守法证明
2015/06/23 职场文书
Python Flask搭建yolov3目标检测系统详解流程
2021/11/07 Python