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中使用PyHook监听鼠标和键盘事件实例
Jul 18 Python
python密码错误三次锁定(实例讲解)
Nov 14 Python
python 读取DICOM头文件的实例
May 07 Python
python3.6使用pickle序列化class的方法
Oct 22 Python
代码实例讲解python3的编码问题
Jul 08 Python
django多文件上传,form提交,多对多外键保存的实例
Aug 06 Python
python银行系统实现源码
Oct 25 Python
python单例模式原理与创建方法实例分析
Oct 26 Python
Python3 把一个列表按指定数目分成多个列表的方式
Dec 25 Python
jupyter notebook tensorflow打印device信息实例
Apr 20 Python
Python调用系统命令os.system()和os.popen()的实现
Dec 31 Python
用OpenCV进行年龄和性别检测的实现示例
Jan 29 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中的session永不过期的解决思路及实现方法分享
2011/04/20 PHP
fckeditor上传文件按日期存放及重命名方法
2015/05/22 PHP
joomla数据库操作示例代码
2016/01/06 PHP
详解PHP的Laravel框架中Eloquent对象关系映射使用
2016/02/26 PHP
用于table内容排序
2006/07/21 Javascript
JQuery浮动DIV提示信息并自动隐藏的代码
2010/08/29 Javascript
Ext中下拉列表ComboBox组件store数据格式用法介绍
2013/07/15 Javascript
js检测网络是否具体连接功能的代码
2014/05/23 Javascript
JS小游戏之象棋暗棋源码详解
2014/09/25 Javascript
jQuery插件bgStretcher.js实现全屏背景特效
2015/06/05 Javascript
异步JS框架的作用以及实现方法
2015/10/29 Javascript
浅谈javascript中的加减时间
2016/07/12 Javascript
JavaScript中如何使用cookie实现记住密码功能及cookie相关函数介绍
2016/11/10 Javascript
JS设置随机出现2个数字的实例代码
2017/07/19 Javascript
JS实现数组简单去重及数组根据对象中的元素去重操作示例
2018/01/05 Javascript
tsconfig.json配置详解
2019/05/17 Javascript
vue中英文切换实例代码
2020/01/21 Javascript
Python中使用socket发送HTTP请求数据接收不完整问题解决方法
2015/02/04 Python
详细介绍Python中的偏函数
2015/04/27 Python
python字符串的常用操作方法小结
2016/05/21 Python
python时间日期函数与利用pandas进行时间序列处理详解
2018/03/13 Python
对python中的logger模块全面讲解
2018/04/28 Python
Python读取数据集并消除数据中的空行方法
2018/07/12 Python
Python实现E-Mail收集插件实例教程
2019/02/06 Python
Python3解释器知识点总结
2019/02/19 Python
Django restframework 框架认证、权限、限流用法示例
2019/12/21 Python
Tensorflow 实现将图像与标签数据转化为tfRecord文件
2020/02/17 Python
python3.6环境下安装freetype库和基本使用方法(推荐)
2020/05/10 Python
Keras设定GPU使用内存大小方式(Tensorflow backend)
2020/05/22 Python
Python 可视化神器Plotly详解
2020/12/26 Python
倩碧澳大利亚官网:Clinique澳大利亚
2019/07/22 全球购物
int *p=NULL和*p= NULL有什么区别
2014/10/23 面试题
2015年人事工作总结范文
2015/04/09 职场文书
2016应届毕业生实习评语
2015/12/01 职场文书
教师外出学习心得体会
2016/01/18 职场文书
Java SSM配置文件案例详解
2021/08/30 Java/Android