黑夜可能漫长,但总会迎来温暖的阳光,三月如期而至,武大的樱花又一次盛开。那么今天就一起来看看怎样在python中画一棵美丽的樱花树~

说到用python画画,那当然就是小乌龟Turtle库了,为啥是turtle呢,想象一个小乌龟,在一个横轴为x、纵轴为y的坐标系原点,(0,0)位置开始,它根据一组函数指令的控制,在这个平面坐标系中移动,从而在它爬行的路径上绘制了图形。

一、安装与引入

安装没有什么难度直接pip安装就可以

pip install turtle

可使用以下3种方法引入:

二、使用

turtle库使用起来也很简单,主要就是利用几个核心的控制代码

turtle.goto(x,y):直接跳转到(x,y)点,以绘图窗口中心为原点,

turtle.fd(d):以当前方向,往前行进d像素。

turtle.bk(d):保持当前方向不变,往后退行d像素。

turtle.circle(r,angle):以r为半径圆的angle角度旋转。

turtle.penup():抬笔

turtle.pendown():落笔

urtle.left(angle):向左旋转angle度。

turtle.right(angle):向右旋转angle度。

比如绘制树干部分的代码可以这样写

def Tree(branch, t):

time.sleep(0.0005)

if branch > 3:

if 6 <= branch <= 12: #

if random.randint(0, 2) == 0: #随机绘制

t.color('snow') #设置颜色

else:

t.color('lightcoral') # 树叶颜色

t.pensize(branch / 3)

elif branch < 6:

if random.randint(0, 1) == 0:

t.color('snow')

else:

t.color('lightcoral') #

t.pensize(branch / 2)

else:

t.color('sienna') # 赭(zhě)色

t.pensize(branch / 10) # 6

t.forward(branch)

a = 1.5 * random.random()

t.right(20 * a)

b = 1.5 * random.random()

Tree(branch - 10 * b, t)

t.left(40 * a)

Tree(branch - 10 * b, t)

t.right(20 * a)

t.up()

t.backward(branch)

t.down()

而写字的部分就不用一笔一划的去绘制,直接使用turtle.write()就可以在指定位置写上你需要的文字。

write(arg,move=false,align='left',font=('arial',8,'normal'))

#arg--将写入Turtle绘画屏幕的文字。

#align(可选)--“左(left)”、“中(center)”或“右(right)”之一。

#font(可选)--(fontname、fontsize、fonttype)。

那么来看看最后效果吧!

以上就是用python绘制樱花树的详细内容,更多关于python绘图的资料请关注python博客其它相关文章!

python樱花树的设计思路_用python绘制樱花树相关推荐

  1. 接口测试用例设计思路_基于python语言的接口自动化demo小实战

    近期通过自己的学习以及实战,完成了一个关于测试接口的接口自动化demo. 下面想跟大家分享一下,主要的思路是根据接口文档确定测试用例,并将测试用例写在excel中. 01 因为只是小作demo,测试用 ...

  2. python俄罗斯方块课程设计报告_用python实现俄罗斯方块

    !/usr/bin/python -- conding:utf-8 -- from tkinter import * import time import threading import rando ...

  3. python随机分组的思路_「Python」每日一练:学生学习小组分组程序

    编程题 学习小组分组程序:某课程共分4个小组,现有12名学生,要求随机分配到各组中.要求每组有且只能有3名学生. 编程要求:(1)要求使用嵌套列表保存数据:(2)要求导入随机数模块 思路分析 (1)首 ...

  4. python登录代码思路_用python登录Dr.com思路以及代码分享

    用python登录Dr.com思路以及代码分享 发布于 2014-08-28 22:31:52 | 192 次阅读 | 评论: 0 | 来源: 网友投递 Python编程语言Python 是一种面向对 ...

  5. python 按需加载_基于python的opcode优化和模块按需加载机制研究(学习与个人思路)(原创)...

    基于python的opcode优化和模块按需加载机制研究(学习与思考) 姓名:XXX 学校信息:XXX 主用编程语言:python3.5 文档转换为PDF有些图片无法完全显示,请移步我的博客查看 完成 ...

  6. python网络爬虫的流程图_基于Python的网络爬虫的设计与实现

    龙源期刊网 http://www.qikan.com.cn 基于 Python 的网络爬虫的设计与实现 作者:高祖彦 来源:<商情> 2020 年第 33 期 [摘要]一个爬虫从网上爬取数 ...

  7. python制作物联网控制软件下载_基于Python和Django框架的物联网智能设备管理系统的设计与实现...

    论文写作指导:请加QQ229366758 基于Python和Django框架的物联网智能设备管理系统的设计与实现 作者:未知 摘 要:针对目前日益增多的智能设备提出了兼容性好,稳定性高,易于管理的管理 ...

  8. python做数据库课设_基于Python的实时数据库设计

    基于 Python 的实时数据库设计 韩菲,金磊,戴文浩,李艳飞,杨树 [摘 要] Berkeley Db 作为一款优秀轻便的嵌入式数据库,在实际中得到了广 泛的应用,其提供了针对多种语言的 API ...

  9. python解题思路_黄哥Python: 一道水题“最大唯一数” 解题思路

    有人在**论坛上提问,求解一个数组中最大唯一数. 1.读题,数组中全部是整数,有的数字有重复的,求出不重复的最大整数. 2.解题思路,利用Python 字典去统计每一个整数出现的次数,整数为key,出 ...

最新文章

  1. runtime error: invalid memory address or nil pointer dereference
  2. Linux 使用记录
  3. POJ 3322 Bloxorz I(BFS)
  4. 约吗? 免费领取一大波90后单身女神产品经理(增加5位女神)
  5. django+ajax+表格加载,如何使用ajax在Django-admin表格内联中读取/写入输入字段?
  6. java 多线程 聊天_Java做一个多线程类似于QQ的聊天程序。
  7. 在STM32单片机上跑神经网络算法
  8. java两个数最大公约数和最小公倍数,java求两个数的最大公约数和最小公倍数
  9. nor flash驱动编写步骤
  10. 开源工具kettle中Job流程的理解
  11. 如何实现公平的效绩考核?
  12. 怎么自己制作一个U盘
  13. 如何去掉广告实现百度精准搜索
  14. 基于Goolgle最新NavigationDrawer实现全屏水平平移
  15. sar adc的常用指标(二)
  16. python儿童-少儿Python创意编程课
  17. 史上ElasticSearch 最全详细使用教程
  18. Android借助bmob实现简单的登陆注册
  19. mysql客户端连接10060,Navicat远程连接MySQL出现10060解决办法小结
  20. 基于引擎开发HTML5游戏实战(一)---游戏引擎

热门文章

  1. pc/sc 编程_烟灰_百度空间
  2. 生产力 生产关系 生产工具_生产力工具的第二次亮相
  3. pikachu之unsafe upfileupload
  4. Linux云计算命令大全
  5. 基础知识:电容充电放电原理
  6. 设计模式——装饰模式(Decorator)
  7. 【解决方案】“月子会所”事件的背后,如何做好行业监管?
  8. 语音识别学习资料入门整理
  9. EVPN L2VPN
  10. 服务器安全软件--服务器安全狗windows V4.2枸杞版发布