Python小技 繁花盛开
实现思路主要是利用 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小技 繁花盛开相关推荐
- Python 小技之繁花曲线
Python 小技之繁花曲线 前几天逛朋友圈的时候,无意间刷到同学这样一条内容: 不知道大家有没有眼熟的感觉,反正是勾起了我不少回忆. 这种叫做"万花尺"的小玩意儿小时候应该不少人 ...
- Python 小技之实现的鲜花盛宴,你准备好了吗?
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者:派森酱 PS:如有需要Python学习资料的小伙伴可以加点击下方链接 ...
- Python 小技之繁花盛开
今天请各位读者朋友欣赏用 Python 实现的鲜花盛宴,你准备好了吗?90 行代码即可实现一棵美丽的鲜花盛开树.小编也是鲜花爱护协会者之一,但是想要看到美丽的花朵,得历经很多:对于知识的运用也是如此, ...
- Python小技 不到100行代码制作各种证件照
生活中经常需要使用各种版本的电子版证件照,如:红底.蓝底.白底.一寸.两寸等等. 在 Python 中替换图片背景色可以用 Image 模块, 利用 Image 模块可以改变图片大小.背景色等操作. ...
- 繁花盛开的夏天读后感
繁花盛开的夏天读后感 作者:烟罗 方柯和南玄"从校服到婚纱"的纯美爱恋故事.一个是黑暗里开出的洁白小花,一个是黑暗里隐隐燃烧的沉默邪火.在开满紫色鼠尾草与白色桔梗花的夏栖镇,他们隐 ...
- Python炫技操作:花式导包的八种方法
点击上方"Python爬虫与数据挖掘",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 五岳寻仙不辞远,一身好入名山游. ...
- python3经典小程序代码_一个可以套路别人的python小程序实例代码
python可以开发什么?谁有python小程序的源代码,...桌面程序,web都可以,还有比如现在讲的多的人工智能,神经网络源码可以去找一些开源代码,搜索一下,蛮多的. 分享python小程序代码练 ...
- 很多人不知道的Python 炫技操作:海象运算符的三种用法
Python 炫技操作--海象运算符的三种用法 1. 第一个用法:if/else 2. 第二个用法:while 3. 第三个用法:推导式 Python 版本发展非常快,如今最新的版本已经是 Pyhto ...
- 收藏喜+1!值得使用的100个Python小技巧
目前Python可以说是非常流行,在目前的编程语言中,Python的抽象程度是最高的,是最接近自然语言的,很容易上手. 你可以用它来完成很多任务,比如数据科学.机器学习.Web开发.脚本编写.自动化等 ...
最新文章
- 通过踩坑带你读透虚拟机的“锁粗化”
- java如何实现乌龟爬行_乌龟是怎样爬行的
- C Primer+Plus(十七)高级数据表示 编程练习(二)
- php读取ds18b20,DS18B20_单总线协议
- 7-60 二分查找法之过程 (10 分)
- mysql 增量备份_MySQL增量备份与恢复(增量备份概述、特点,断点恢复实操)
- 玩转Android---事件监听篇---第2篇
- AI 专利之争:小米超华为,国家电网才是大 Boss?
- 苹果发布2019年上半年透明度报告,收到数万条政府请求
- cmd 生成wsdl文件_Spring Boot SOAP系列之WSDL是什么“Lese”
- 2017IMO第五题
- 在Java语言的if语句是什么表达式,if语句中的条件表达式中只能使用
- 为任意屏幕尺寸构建 Android 界面
- Windows 查看已保存wifi密码
- resure挽救笔记本系统和一些相关的操作记录
- Hi3559A 开发环境搭建
- 编译安装baas平台-cello-h3c
- python小游戏大合集(有注释,持续更新)
- Python构建简单线性回归模型教程
- A Novel Task Allocation for Maximizing Reliability Considering Fault-Tolerant in VANET ... 学习笔记