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爬取软考试题之ip自动代理
Mar 28 Python
python Celery定时任务的示例
Mar 13 Python
Python实现合并两个列表的方法分析
May 28 Python
使用Python处理Excel表格的简单方法
Jun 07 Python
使用Python编写Prometheus监控的方法
Oct 15 Python
Pycharm无法显示动态图片的解决方法
Oct 28 Python
浅谈python常用程序算法
Mar 22 Python
Python Flask框架扩展操作示例
May 03 Python
Pycharm 2020最新永久激活码(附最新激活码和插件)
Sep 17 Python
Python跑循环时内存泄露的解决方法
Jan 13 Python
利用python清除移动硬盘中的临时文件
Oct 28 Python
python标准库ElementTree处理xml
May 20 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
Look And Say 序列php实现代码
2011/05/22 PHP
获取用户Ip地址通用方法与常见安全隐患(HTTP_X_FORWARDED_FOR)
2013/06/01 PHP
php实现word转html的方法
2016/01/22 PHP
PHP单态模式简单用法示例
2016/11/16 PHP
php UNIX时间戳用法详解
2017/02/16 PHP
PHP性能分析工具xhprof的安装使用与注意事项
2017/12/19 PHP
JavaScript高级程序设计 读书笔记之十一 内置对象Global
2012/03/07 Javascript
jquery日历控件实现方法分享
2014/03/07 Javascript
js触发onchange事件的方法说明
2014/03/08 Javascript
NODE.JS加密模块CRYPTO常用方法介绍
2014/06/05 Javascript
网页中JS函数自动执行常用三种方法
2016/03/30 Javascript
JavaScript实现图像模糊化的方法实例
2017/01/15 Javascript
JS原生轮播图的简单实现(推荐)
2017/07/22 Javascript
Vue计算属性的使用
2017/08/04 Javascript
利用JS制作万年历的方法
2017/08/16 Javascript
详解EasyUi控件中的Datagrid
2017/08/23 Javascript
基于js文件加载优化(详解)
2018/01/03 Javascript
使用Vue开发一个实时性时间转换指令
2018/01/17 Javascript
js实现点击展开隐藏效果(实例代码)
2018/09/28 Javascript
新版小程序登录授权的方法
2018/12/12 Javascript
jQuery实现的导航条点击后高亮显示功能示例
2019/03/04 jQuery
python比较两个列表是否相等的方法
2015/07/28 Python
Python实现的计算马氏距离算法示例
2018/04/03 Python
Pandas标记删除重复记录的方法
2018/04/08 Python
python3将视频流保存为本地视频文件
2018/06/20 Python
Python基于opencv实现的简单画板功能示例
2019/03/04 Python
Python的互斥锁与信号量详解
2019/09/12 Python
pytorch 实现cross entropy损失函数计算方式
2020/01/02 Python
Anconda环境下Vscode安装Python的方法详解
2020/03/29 Python
Python连接Mysql进行增删改查的示例代码
2020/08/03 Python
Roots加拿大官网:加拿大休闲服饰品牌
2016/10/24 全球购物
美国独家设计师眼镜在线光学商店:Glasses Gallery
2017/12/28 全球购物
PHP如何与mysql建立链接
2013/05/05 面试题
Unix里面如何在后台运行程序
2016/10/14 面试题
导师对论文的学术评语
2015/01/04 职场文书
tomcat正常启动但网页却无法访问的几种解决方法
2022/05/06 Servers