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爬虫之打包生成exe文件
Nov 06 Python
Python中处理字符串之isalpha()方法的使用
May 18 Python
浅谈python和C语言混编的几种方式(推荐)
Sep 27 Python
TensorFlow 实战之实现卷积神经网络的实例讲解
Feb 26 Python
Python cookbook(数据结构与算法)筛选及提取序列中元素的方法
Mar 19 Python
python3利用tcp实现文件夹远程传输
Jul 28 Python
Python用Try语句捕获异常的实例方法
Jun 26 Python
python内存管理机制原理详解
Aug 12 Python
python下载库的步骤方法
Oct 12 Python
opencv3/python 鼠标响应操作详解
Dec 11 Python
pytorch 准备、训练和测试自己的图片数据的方法
Jan 10 Python
Python 在局部变量域中执行代码
Aug 07 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
dedecms中常见问题修改方法总结
2007/03/21 PHP
php版本CKEditor 4和CKFinder安装及配置方法图文教程
2019/06/05 PHP
Nigma vs Liquid BO3 第二场2.13
2021/03/10 DOTA
IE中radio 或checkbox的checked属性初始状态下不能选中显示问题
2009/07/25 Javascript
Javascript学习笔记5 类和对象
2010/01/11 Javascript
jQuery下扩展插件和拓展函数的写法(匿名函数使用的典型例子)
2010/10/20 Javascript
js对数字的格式化使用说明
2011/01/12 Javascript
javaScript如何生成xmlhttp
2013/12/16 Javascript
js处理自己不能定义二维数组的方法详解
2014/03/03 Javascript
JS实现同时搜索百度和必应的方法
2015/01/27 Javascript
使用AngularJS创建自定义的过滤器的方法
2015/06/18 Javascript
简单实现js页面切换功能
2021/01/10 Javascript
第一次接触神奇的Bootstrap基础排版
2016/07/26 Javascript
JavaScript String(字符串)对象的简单实例(推荐)
2016/08/31 Javascript
JavaScript常用代码书写规范的超全面总结
2016/09/11 Javascript
Bootstrap基本插件学习笔记之Tooltip提示工具(18)
2016/12/08 Javascript
JavaScript基础之this详解
2017/06/04 Javascript
vue实现导航栏效果(选中状态刷新不消失)
2017/12/13 Javascript
Nodejs中crypto模块的安全知识讲解
2018/01/03 NodeJs
2种在vue项目中使用百度地图的简单方法
2018/09/28 Javascript
@angular前端项目代码优化之构建Api Tree的方法
2018/12/24 Javascript
JavaScript十大取整方法实例教程
2020/12/03 Javascript
[00:12]DAC2018 Miracle-站上中单舞台,他能否再写奇迹?
2018/04/06 DOTA
编写Python脚本把sqlAlchemy对象转换成dict的教程
2015/05/29 Python
Python线上环境使用日志的及配置文件
2019/07/28 Python
python opencv实现证件照换底功能
2019/08/19 Python
从pandas一个单元格的字符串中提取字符串方式
2019/12/17 Python
windows10环境下用anaconda和VScode配置的图文教程
2020/03/30 Python
RIP版本1跟版本2的区别
2013/12/30 面试题
新闻学毕业生自荐信
2013/11/15 职场文书
班子四风对照检查材料思想汇报
2014/09/29 职场文书
高中生思想道德自我评价
2015/03/09 职场文书
李强感恩观后感
2015/06/17 职场文书
pycharm无法导入lxml的解决办法
2021/03/31 Python
搭建Yolov5服务器
2022/04/30 Servers
Springboot中如何自动转JSON输出
2022/06/16 Java/Android