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程序运行效率的6个方法
Mar 31 Python
python查看FTP是否能连接成功的方法
Jul 30 Python
Python实现读取txt文件并转换为excel的方法示例
May 17 Python
python爬虫爬取微博评论案例详解
Mar 27 Python
Pytorch自己加载单通道图片用作数据集训练的实例
Jan 18 Python
wxpython自定义下拉列表框过程图解
Feb 14 Python
python 实现在shell窗口中编写print不向屏幕输出
Feb 19 Python
用python介绍4种常用的单链表翻转的方法小结
Feb 24 Python
Python urllib2运行过程原理解析
Jun 04 Python
pytorch实现查看当前学习率
Jun 24 Python
Python GUI库Tkiner使用方法代码示例
Nov 27 Python
Python urllib request模块发送请求实现过程解析
Dec 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
php,不用COM,生成excel文件
2006/10/09 PHP
php面向对象全攻略 (十二) 抽象方法和抽象类
2009/09/30 PHP
php抓取页面与代码解析 推荐
2010/07/23 PHP
php设计模式 FlyWeight (享元模式)
2011/06/26 PHP
PHP基于mssql扩展远程连接MSSQL的简单实现方法
2016/10/08 PHP
php获取目录下所有文件及目录(多种方法)(推荐)
2019/05/14 PHP
javascript 特性检测并非浏览器检测
2010/01/15 Javascript
JS中confirm,alert,prompt函数区别分析
2011/01/17 Javascript
基于JQuery的浮动DIV显示提示信息并自动隐藏
2011/02/11 Javascript
jquery常用操作小结
2014/07/21 Javascript
基于jQuery实现动态数字展示效果
2015/08/12 Javascript
基于jQuery实现交互体验社会化分享代码附源码下载
2016/01/04 Javascript
JavaScript实现离开页面前提示功能【附jQuery实现方法】
2017/09/26 jQuery
JS实现的tab切换并显示相应内容模块功能示例
2019/08/03 Javascript
实现vuex与组件data之间的数据同步更新方式
2019/11/12 Javascript
JS字符串和数组如何实现相互转化
2020/07/02 Javascript
vue.js click点击事件获取当前元素对象的操作
2020/08/07 Javascript
Vue利用localStorage本地缓存使页面刷新验证码不清零功能的实现
2020/09/04 Javascript
[50:58]2018DOTA2亚洲邀请赛 4.1 小组赛 B组 Mineski vs EG
2018/04/03 DOTA
Python 变量类型及命名规则介绍
2013/06/08 Python
python使用三角迭代计算圆周率PI的方法
2015/03/20 Python
Python基于更相减损术实现求解最大公约数的方法
2018/04/04 Python
OPENCV去除小连通区域,去除孔洞的实例讲解
2018/06/21 Python
解决Pycharm下面出现No R interpreter defined的问题
2018/10/29 Python
pandas 对日期类型数据的处理方法详解
2019/08/08 Python
Python标准库:内置函数max(iterable, *[, key, default])说明
2020/04/25 Python
Pygame的程序开始示例代码
2020/05/07 Python
详解Scrapy Redis入门实战
2020/11/18 Python
css3编写浏览器背景渐变背景色的方法
2018/03/05 HTML / CSS
htnl5利用svg页面高斯模糊的方法
2018/07/20 HTML / CSS
日本化妆品植村秀俄罗斯官方网站:Shu Uemura俄罗斯
2020/02/01 全球购物
中国京东和泰国中央集团合资的网站:JD CENTRAL
2020/08/22 全球购物
给实习单位的感谢信
2014/02/01 职场文书
怎么写工作检讨书
2014/11/16 职场文书
学校端午节活动总结
2015/02/11 职场文书
2016暑期社会实践新闻稿
2015/11/25 职场文书