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之dict()的操作方法
Sep 24 Python
Django框架中数据的连锁查询和限制返回数据的方法
Jul 17 Python
在Python的Django框架中显示对象子集的方法
Jul 21 Python
python将字典列表导出为Excel文件的方法
Sep 02 Python
解决pycharm每次打开项目都需要配置解释器和安装库问题
Feb 26 Python
Python统计文本词汇出现次数的实例代码
Feb 27 Python
pycharm解决关闭flask后依旧可以访问服务的问题
Apr 03 Python
opencv+python实现鼠标点击图像,输出该点的RGB和HSV值
Jun 02 Python
Python 如何测试文件是否存在
Jul 31 Python
python 根据列表批量下载网易云音乐的免费音乐
Dec 03 Python
Python图像处理之膨胀与腐蚀的操作
Feb 07 Python
写一个Python脚本自动爬取Bilibili小视频
Apr 24 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
一个可以删除字符串中HTML标记的PHP函数
2006/10/09 PHP
php Smarty初体验二 获取配置信息
2011/08/08 PHP
解析thinkphp的左右值无限分类
2013/06/20 PHP
php中get_defined_constants函数用法实例分析
2015/05/12 PHP
表单填写时用回车代替TAB的实现方法
2007/10/09 Javascript
JQuery 前台切换网站的样式实现
2009/06/22 Javascript
jQuery getJSON 处理json数据的代码
2010/07/26 Javascript
js改变鼠标的形状和样式的方法
2014/03/31 Javascript
jquery插件jquery.beforeafter.js实现左右拖拽分隔条对比图片的方法
2015/08/07 Javascript
jqGrid表格应用之新增与删除数据附源码下载
2015/12/02 Javascript
基于JS实现新闻列表无缝向上滚动实例代码
2016/01/22 Javascript
JS组件Bootstrap dropdown组件扩展hover事件
2016/04/17 Javascript
关于动态执行代码(js的Eval)实例详解
2016/08/15 Javascript
AngularJS入门教程之XHR和依赖注入详解
2016/08/18 Javascript
详解基于javascript实现的苹果系统底部菜单
2016/12/02 Javascript
vuejs2.0运用原生js实现简单的拖拽元素功能示例
2017/02/24 Javascript
js实现京东轮播图效果
2017/06/30 Javascript
vue监听input标签的value值方法
2018/08/27 Javascript
webpack之引入图片的实现及问题
2018/10/08 Javascript
如何在node环境实现“get数据解析”代码实例
2020/07/03 Javascript
vue实现把接口单独存放在一个文件方式
2020/08/13 Javascript
[02:51]DOTA2战队出征照拍摄花絮 TI3明星化身时尚男模
2013/07/22 DOTA
[03:40]DOTA2亚洲邀请赛小组赛第二日 赛事回顾
2015/01/31 DOTA
Python常用字符串替换函数strip、replace及sub用法示例
2018/05/21 Python
python变量赋值方法(可变与不可变)
2019/01/12 Python
python中使用paramiko模块并实现远程连接服务器执行上传下载功能
2020/02/29 Python
python字典与json转换的方法总结
2020/12/28 Python
用Python自动清理电脑内重复文件,只要10行代码(自动脚本)
2021/01/09 Python
如何防止同一个帐户被多人同时登录
2013/08/01 面试题
人力资源管理专业毕业生自我评价
2013/09/21 职场文书
机修工岗位职责
2013/11/24 职场文书
幼儿园元旦家长感言
2014/02/27 职场文书
爱国主义主题班会
2015/08/14 职场文书
机关单位2016年法制宣传日活动总结
2016/04/01 职场文书
pytorch中F.avg_pool1d()和F.avg_pool2d()的使用操作
2021/05/22 Python
Canvas绘制像素风图片的示例代码
2021/09/25 HTML / CSS