实现思路主要是利用 Python 绘图模块 Turtle
再结合随机函数生成任意的一棵树,
樱花树主要组成部分有树干和花瓣以及飘落的花瓣构成。
import turtle
import random
import time
需要以上模块

1.画樱花的躯干

绘画的树干使用了 Python 中的随机函数,
这样每次生成的树干都是随机的,
树干的选择也是随机设置参数进行调整。

示例图:

代码如下所示:# 画樱花的躯干(60,t)
def Tree(branch, t):  # 写一个躯干的函数time.sleep(0.0005)   # 用到的函数推迟调用线程的运行,可通过参数secs指秒数,表示进程挂起的时间,推迟了0.0005秒。 if branch > 3:if 8 <= branch <= 12:if random.randint(0, 2) == 0:   # 随机数,产生 0 到 2 的一个整数型随机数  t.color('snow')  # 白else:t.color('lightcoral')  # 淡珊瑚色t.pensize(branch / 3)   # 括号内填整数表示画笔宽度单位为像素(px)elif branch < 8: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)  # 6t.forward(branch)  # 让画笔向前移动branch像素单位(px)a = 1.5 * random.random()  # 产生 0 到 1 之间的随机浮点数t.right(20 * a)  # 顺时针移动 20 * a °度b = 1.5 * random.random()Tree(branch - 10 * b, t)t.left(40 * a)  # 逆时针移动 40 * a ° 度Tree(branch - 10 * b, t)t.right(20 * a)t.up()t.backward(branch)  # 沿着当前相反方向后退指定距离t.down()以上代码实现的是随机树干以及花瓣颜色、树叶的颜色填充,同时还调整了花瓣大小和树干粗细。使整个树干看起来更协调。

2.掉落的花瓣

示例图:

代码如下所示:# 画掉落的花瓣(m,t)
def Petal(m, t):for i in range(m):a = 200 - 400 * random.random()b = 10 - 20 * random.random()t.up()t.forward(b)  # 沿着当前方向前进指定距离t.left(90)t.forward(a)t.down()t.color('lightcoral')  # 淡珊瑚色  t.circle(1)  # 绘制一个指定半径r和角度e的圆或弧形t.up()t.backward(a)t.right(90)t.backward(b)

3.鲜花配文字

配字,显得更有诗意。
示例图:

代码如下:def des_word():t.color('LightCoral') # 字体颜色设置t.hideturtle()#  t.goto(-50, -130)t.goto(-60,-170)t.pu()t.write('姹紫嫣红桃花笺,',move=False, align='center', font=('Arial', 20, 'normal'))t.pd()t.pu()#  t.goto(90, 130)t.goto(150,-170)t.write('繁花似锦为君妍', move=False, align='center', font=('Arial', 20, 'normal'))t.pd()

4.画笔样式调整

代码如下:# 绘图区域
t = T.Turtle()  # 模块
# 画布大小
w = T.Screen()  # 屏幕turtle.setup(600,600)  也可以怎么写,定义画布大小
t.hideturtle()  # 隐藏画笔
t.getscreen().tracer(5, 0)
w.screensize(bg='wheat')  # wheat小麦
t.left(90)
t.up()
t.backward(150)
t.down()  # 画完不退出
t.color('sienna')

最终代码:


import turtle as T
import random
import time# 画樱花的躯干(60,t)
def Tree(branch, t):time.sleep(0.0005)if branch > 3:if 8 <= branch <= 12:if random.randint(0, 2) == 0:t.color('snow')  # 白else:t.color('lightcoral')  # 淡珊瑚色t.pensize(branch / 3)elif branch < 8: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)  # 6t.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()# 掉落的花瓣
def Petal(m, t):for i in range(m):a = 200 - 400 * random.random()b = 10 - 20 * random.random()t.up()t.forward(b)t.left(90)t.forward(a)t.down()t.color('lightcoral')  # 淡珊瑚色t.circle(1)t.up()t.backward(a)t.right(90)t.backward(b)def des_word():t.color('LightCoral') # 字体颜色设置t.hideturtle()#  t.goto(-50, -130)t.goto(-60,-200)t.pu()t.write('姹紫嫣红桃花笺,',move=False, align='center', font=('Arial', 20, 'normal'))t.pd()t.pu()#  t.goto(90, 130)t.goto(150,-200)t.write('繁花似锦为君妍', move=False, align='center', font=('Arial', 20, 'normal'))t.pd()# 绘图区域
t = T.Turtle()
# 画布大小
w = T.Screen()
t.hideturtle()  # 隐藏画笔
t.getscreen().tracer(5, 0)
w.screensize(bg='wheat')  # wheat小麦
t.left(90)
t.up()
t.backward(150)
t.down()
t.color('sienna')# 画樱花的躯干
Tree(60, t)
# 掉落的花瓣
Petal(200, t)
# 文字
des_word()
w.exitonclick()

最终示例图:

至此,清风徐来,繁花已开! 以上内容全部是抄的,但是知识是自己的。

Python小技 繁花盛开相关推荐

  1. Python 小技之繁花曲线

    Python 小技之繁花曲线 前几天逛朋友圈的时候,无意间刷到同学这样一条内容: 不知道大家有没有眼熟的感觉,反正是勾起了我不少回忆. 这种叫做"万花尺"的小玩意儿小时候应该不少人 ...

  2. Python 小技之实现的鲜花盛宴,你准备好了吗?

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者:派森酱 PS:如有需要Python学习资料的小伙伴可以加点击下方链接 ...

  3. Python 小技之繁花盛开

    今天请各位读者朋友欣赏用 Python 实现的鲜花盛宴,你准备好了吗?90 行代码即可实现一棵美丽的鲜花盛开树.小编也是鲜花爱护协会者之一,但是想要看到美丽的花朵,得历经很多:对于知识的运用也是如此, ...

  4. Python小技 不到100行代码制作各种证件照

    生活中经常需要使用各种版本的电子版证件照,如:红底.蓝底.白底.一寸.两寸等等. 在 Python 中替换图片背景色可以用 Image 模块, 利用 Image 模块可以改变图片大小.背景色等操作. ...

  5. 繁花盛开的夏天读后感

    繁花盛开的夏天读后感 作者:烟罗 方柯和南玄"从校服到婚纱"的纯美爱恋故事.一个是黑暗里开出的洁白小花,一个是黑暗里隐隐燃烧的沉默邪火.在开满紫色鼠尾草与白色桔梗花的夏栖镇,他们隐 ...

  6. Python炫技操作:花式导包的八种方法

    点击上方"Python爬虫与数据挖掘",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 五岳寻仙不辞远,一身好入名山游. ...

  7. python3经典小程序代码_一个可以套路别人的python小程序实例代码

    python可以开发什么?谁有python小程序的源代码,...桌面程序,web都可以,还有比如现在讲的多的人工智能,神经网络源码可以去找一些开源代码,搜索一下,蛮多的. 分享python小程序代码练 ...

  8. 很多人不知道的Python 炫技操作:海象运算符的三种用法

    Python 炫技操作--海象运算符的三种用法 1. 第一个用法:if/else 2. 第二个用法:while 3. 第三个用法:推导式 Python 版本发展非常快,如今最新的版本已经是 Pyhto ...

  9. 收藏喜+1!值得使用的100个Python小技巧

    目前Python可以说是非常流行,在目前的编程语言中,Python的抽象程度是最高的,是最接近自然语言的,很容易上手. 你可以用它来完成很多任务,比如数据科学.机器学习.Web开发.脚本编写.自动化等 ...

最新文章

  1. Iptables架构
  2. pthread_cond_singal condition
  3. HDU 3625 Examining the Rooms【第一类斯特灵数】
  4. 边缘计算云原生开源方案选型比较
  5. qt制作一个画板_如何直接用Sketch制作动画|Sketch插件|
  6. Java 8新特性(二)
  7. Deploy过程出错解决
  8. 近一半程序员单身、年薪低于 15 万,程序员扎心现状大调查!
  9. 学习笔记:自己编译安装OpenCV+测试opencv安装是否成功
  10. Atitit onvif协议获取rtsp地址播放java语言attilx总结
  11. 分计算iv值_【美股期權】多高的IV才算高?理解IV percentile
  12. 一篇文章学会Yaml的语法超详细(建议收藏)
  13. 经典算法详解(2):费氏数列
  14. 探索深海生态系统和冰卫星的协同作用-深海机器人开发与空间技术合作
  15. 解决marathon上docker实例一直waitting的问题
  16. Android 开发笔记 “android调试遇到ADB server didn't ACK以及顽固的sjk_daemon进程 ”
  17. 最新视频连接解析地址
  18. Centos服务器上使用移动硬盘(NTFS分区)
  19. 使用scipy.integrate模块中的quad和dblquad方法分别进行单重积分和多重积分
  20. ARM-translation table walk

热门文章

  1. SAI绘制文字渐变教程,应用于服装图案设计
  2. nagios存入 mysql数据说明与提取_4.使用NDOUtils将Nagios监控信息存入数据库
  3. C/C++代码获取今天凌晨零点零时零分的时间戳
  4. java path钱明细_费用明细
  5. c语言删除字符常数组的某一个元素,C语言实现删除数组中某个元素
  6. 条件随机场的简单理解
  7. 【自动化测试】Postman工具,Tests中获取response返回值错误的问题,显示为[object Object]
  8. 【XBMC教程/kodi】有关XBMC软解、硬解以及外挂播放的详细解答
  9. 虚幻引擎聚光材质怎么做
  10. 抓取部分京东手机信息案例(Java案例)