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功能键的读取方法
May 28 Python
Python计算已经过去多少个周末的方法
Jul 25 Python
Python中http请求方法库汇总
Jan 06 Python
Python中的descriptor描述器简明使用指南
Jun 02 Python
Pycharm在创建py文件时,自动添加文件头注释的实例
May 07 Python
Python加载带有注释的Json文件实例
May 23 Python
对Python 数组的切片操作详解
Jul 02 Python
Python实现去除列表中重复元素的方法总结【7种方法】
Feb 16 Python
Python Web版语音合成实例详解
Jul 16 Python
Mac 使用python3的matplot画图不显示的解决
Nov 23 Python
Python 音频生成器的实现示例
Dec 24 Python
python Scrapy爬虫框架的使用
Jan 21 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
对淘宝URL中ID提取的PHP代码
2013/09/01 PHP
php中define用法实例
2015/07/30 PHP
使用PHP+AJAX让WordPress动态加载文章的教程
2015/12/11 PHP
简单谈谈php延迟静态绑定
2016/01/26 PHP
PHP常用设计模式之委托设计模式
2016/02/13 PHP
thinkphp 字母函数详解T/I/N/D/M/A/R/U
2017/04/03 PHP
PHP中的正则表达式实例详解
2017/04/25 PHP
PHP实现QQ登录的开原理和实现过程
2018/02/04 PHP
基于PHP+mysql实现新闻发布系统的开发
2020/08/06 PHP
CodeMirror2 IE7/IE8 下面未知运行时错误的解决方法
2012/03/29 Javascript
jQuery 遍历-nextUntil()方法以及prevUntil()方法的使用介绍
2013/04/26 Javascript
GRID拖拽行的实例代码
2013/07/18 Javascript
JavaScript中继承用法实例分析
2015/05/16 Javascript
TypeError document.getElementById(...) is null错误原因
2015/05/18 Javascript
AngularJS入门教程之服务(Service)
2016/07/27 Javascript
js基础之DOM中元素对象的属性方法详解
2016/10/28 Javascript
微信小程序  modal详解及实例代码
2016/11/09 Javascript
javascript数据结构之多叉树经典操作示例【创建、添加、遍历、移除等】
2018/08/01 Javascript
基于vue-cli3和element实现登陆页面
2019/11/13 Javascript
微信小程序按顺序同步执行的两种方式
2019/12/20 Javascript
浅谈js中的attributes和Attribute的用法与区别
2020/07/16 Javascript
vscode 使用Prettier插件格式化配置使用代码详解
2020/08/10 Javascript
Vue中强制组件重新渲染的正确方法
2021/01/03 Vue.js
[01:18:33]Secret vs VGJ.S Supermajor小组赛C组 BO3 第一场 6.3
2018/06/04 DOTA
Python打印scrapy蜘蛛抓取树结构的方法
2015/04/08 Python
Python按行读取文件的实现方法【小文件和大文件读取】
2016/09/19 Python
python利用正则表达式排除集合中字符的功能示例
2017/10/10 Python
用tensorflow构建线性回归模型的示例代码
2018/03/05 Python
Python使用matplotlib绘制Logistic曲线操作示例
2019/11/28 Python
python3 常见解密加密算法实例分析【base64、MD5等】
2019/12/19 Python
HTML5 虚拟键盘出现挡住输入框的解决办法
2017/02/14 HTML / CSS
中东奢侈品购物网站:Ounass
2020/09/02 全球购物
国际商贸专业自荐信
2014/06/09 职场文书
2015年前台个人工作总结
2015/04/03 职场文书
医院中层管理人员培训心得体会
2016/01/11 职场文书
如何做好工作总结!
2019/04/10 职场文书