Python绘图之桃花盛开
作者:JJJims 发布时间:2022-03-20 08:05:50
标签:python,turtle,樱花树
今天请各位读者朋友欣赏用 Python 实现的鲜花盛宴,你准备好了吗?90 行代码即可实现一棵美丽的鲜花盛开树。小编也是鲜花爱护协会者之一,但是想要看到美丽的花朵,得历经很多;对于知识的运用也是如此,需要不断吸收新知识,学习新技能,才能盛开出美丽的花朵。接下来就看看一棵迷人的花树是怎么实现的吧!
夏天的花
实现思路
实现思路主要是利用之前学过的 Python 绘图模块 Turtle,Turtle 详细学习课程请参考趣玩 Python 之绘制基本图形 再结合随机函数生成任意的一棵树,樱花树主要组成部分有树干和花瓣以及飘落的花瓣构成。
亭亭玉立的树干
绘画的树干使用了 Python 中的随机函数,这样每次生成的树干都是随机的,树干的选择也是随机设置参数进行调整。
示例图:
代码如下所示:
def cherryTree(branch, t):
if branch > 4:
# 枝干数
if 7 <= branch <= 13:
# 随机数生成
if random.randint(0, 3) == 0:
t.color('snow') # 花瓣心的颜色
else:
t.color('pink') #花瓣颜色
# 填充的花瓣大小
t.pensize( branch / 6)
elif branch < 8:
if random.randint(0, 2) == 0:
t.color('snow')
else:
# 设置树叶颜色
t.color('green')
t.pensize(branch / 5)
else:
t.color('Peru') # 树干颜色
t.pensize(branch / 11) #调整树干的粗细
t.forward(branch)
a = 1 * random.random()
t.right(20 * a)
b = 1 * random.random()
cherryTree(branch - 10 * b, t)
t.left(60 * a)
cherryTree(branch - 10 * b, t)
t.right(40 * 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(75)
# 向前移动
t.forward(a)
# 放下画笔
t.down()
# 设置花瓣颜色
t.color('pink') # 粉红色
# 画个小圆当作花瓣
t.circle(1)
# 提起画笔
t.up()
# 画笔向后退
t.backward(a)
# 画笔向前行
t.right(70)
t.backward(b)
鲜花配文字
一棵盛开的鲜花树怎么能少得了合适的文案呢?这里我们再利用小海龟绘图将文字配上
代码如下:
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()
画笔样式调整
t = turtle.Turtle()
# 画布大小 获取到屏幕
w = turtle.Screen()
t.hideturtle() # 隐藏画笔
t.getscreen().tracer(8, 0) # 获取屏幕大小
w.screensize(bg='LightCyan') # 设置屏幕背景颜色
t.left(80)
t.up()
t.backward(140)
t.down()
t.color('sienna')
cherryTree(50, t)
petal(300, t)
最终结果
至此,清风徐来,繁花已开!
来源:https://blog.csdn.net/fallenjency/article/details/105638332


猜你喜欢
- 本文实例讲述python调用Moxa PCOMM Lite通过串口Ymodem协议实现发送文件的方法,该程序采用python 2.7编写。主
- 组件之间传值/调用方法的几种方式(一)父组件向子组件传值==props1.在父组件中使用子组件的地方绑定数据<children :me
- 利用SocketServer模块来实现网络客户端与服务器并发连接非阻塞通信。首先,先了解下SocketServer模块中可供使用的类:Bas
- ASP在线压缩ACCESS数据库原理很简单:利用JRO.JetEngine的压缩功能建立一个新的数据库文件,然后把原来的删掉、替换!既然这样
- 第一种使用queue队列实现:#生产者消费者模型 其实服务器集群就是这个模型# 这里介绍的是非yield方法实现过程import threa
- 什么是1433端口 1433端口,是SQL Server默认的端口,SQL Server服务使用两个端口:TCP-1433、UDP-1434
- 什么是变量在Python编程语言中,变量是用于存储数据值的标识符。它们可以用来引用数据值,而不是直接使用值本身。可以使用等号(=)运算符来将
- 本文实例讲述了flask框架实现连接sqlite3数据库的方法。分享给大家供大家参考,具体如下:1. 在flask文件夹中新建一个model
- 概述Golang 是一个跨平台的新生编程语言. 今天小白就带大家一起携手走进 Golang 的世界.数据类型转换数据类型转换可以帮助我们将一
- var obj = document.getElementByIdx_x(”testSelect”); //定位idvar index =
- 本文以实例形式实现了python监控linux性能以及进程消耗性能的方法,具体实现代码如下:# -*- coding: utf-8 -*-&
- 目录1 键的类型,列表/字典不可以,其它都可以2 多个对象可当作键名,顺序不同时是不同的键3 结论【有误】:今天看别人代码时发现一个事,就是
- 话说网站首页是用.NET语言写的,而二级栏目页却是用ASP写的,然后再配上众多全手工的静态专题页,整个网站形成了一个大杂烩。想要在这大杂烩中
- 1、旅行商问题(Travelling salesman problem, TSP)旅行商问题是经典的组合优化问题,要求找到遍历所有城市且每个
- 在上个随笔中贴出了效果库的整体框架,和一个简单的opacity插件. 今天这个随笔主要是扩展其他常用 效果插件,毕竟框架只能是个空
- 现在我将清除页面缓存的一些方法总结如下:1、在Asp页面首部加入<% Response.Buffer = True
- 数据库的数据量达到一定程度之后,为避免带来系统性能上的瓶颈。需要进行数据的处理,采用的手段是分区、分片、分库、分表。一、什么是mysql分表
- Matplotlib简介Matplotlib是非常强大的python画图工具Matplotlib可以画图线图、散点图、等高线图、条形图、柱形
- 本文为大家分享了python的concat等多种用法,供大家参考,具体内容如下1、numpy中的concatenate()函数:>&g
- 我们都知道tensorflow框架可以使用tensorboard这一高级的可视化的工具,为了使用tensorboard这一套完美的可视化工具