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多进程操作实例
Nov 21 Python
在Python中使用判断语句和循环的教程
Apr 25 Python
Python中的异常处理相关语句基础学习笔记
Jul 11 Python
Python基于回溯法子集树模板解决m着色问题示例
Sep 07 Python
python3爬取淘宝信息代码分析
Feb 10 Python
python opencv检测目标颜色的实例讲解
Apr 02 Python
pandas的object对象转时间对象的方法
Apr 11 Python
浅谈python3发送post请求参数为空的情况
Dec 28 Python
Python3使用TCP编写一个简易的文件下载器功能
May 08 Python
Python基于paramunittest模块实现excl参数化
Apr 26 Python
python3.6环境下安装freetype库和基本使用方法(推荐)
May 10 Python
Python中文纠错的简单实现
Jul 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
基于PHP+MySQL的聊天室设计
2006/10/09 PHP
php使用$_POST或$_SESSION[]向js函数传参
2014/09/16 PHP
php验证码的制作思路和实现方法
2015/11/12 PHP
PHP结合Jquery和ajax实现瀑布流特效
2016/01/07 PHP
PHP读MYSQL中文乱码的快速解决方法
2016/10/01 PHP
浅谈PHP中的错误处理和异常处理
2017/02/04 PHP
AJAX的使用方法详解
2017/04/29 PHP
关于PHP求解三数之和问题详析
2020/11/09 PHP
在js中单选框和复选框获取值的方式
2009/11/06 Javascript
jquery post方式传递多个参数值后台以数组的方式进行接收
2013/01/11 Javascript
JavaScript从0开始构思表情插件
2016/07/26 Javascript
Linux使用Node.js建立访问静态网页的服务实例详解
2017/03/21 Javascript
vue+axios+mock.js环境搭建的方法步骤
2018/08/28 Javascript
vuejs2.0运用原生js实现简单拖拽元素功能
2020/08/21 Javascript
vue组件定义,全局、局部组件,配合模板及动态组件功能示例
2019/03/19 Javascript
vue filter 完美时间日期格式的代码
2019/08/14 Javascript
vue输入框使用模糊搜索功能的实现代码
2020/05/26 Javascript
Python实现短网址ShortUrl的Hash运算实例讲解
2015/08/10 Python
Python3使用正则表达式爬取内涵段子示例
2018/04/22 Python
Pyspider中给爬虫伪造随机请求头的实例
2018/05/07 Python
Python get获取页面cookie代码实例
2018/09/12 Python
python判断一个对象是否可迭代的例子
2019/07/22 Python
Python之Class&Object用法详解
2019/12/25 Python
python语言是免费还是收费的?
2020/06/15 Python
python 提高开发效率的5个小技巧
2020/10/19 Python
pandas实现导出数据的四种方式
2020/12/13 Python
详解Python中@staticmethod和@classmethod区别及使用示例代码
2020/12/14 Python
缓解脚、腿和背部疼痛:Z-CoiL鞋
2019/03/12 全球购物
委托书范文
2014/04/02 职场文书
《从现在开始》教学反思
2014/04/15 职场文书
公司踏青活动方案
2014/08/16 职场文书
环保项目建议书
2014/08/26 职场文书
党员个人公开承诺书
2014/08/29 职场文书
2015年公务员转正工作总结
2015/04/24 职场文书
聊聊golang中多个defer的执行顺序
2021/05/08 Golang
2021年最新用于图像处理的Python库总结
2021/06/15 Python