Python樱花树
文章目录
- 系列文章
- 前言
- 技术需求
- 1.1 Turtle画板设置
- 1.2 Turtle画笔控制
- 1.3 Turtle基本绘图操作
- 1.4 Turtle图形填色
- 1.5 Turtle文本输出
- 完整代码
- 代码分析
- 2.1 樱花类
- 2.2 樱花树
- 2.3 主函数
- 2.4 樱花林
- 写在后面
系列文章
序号 | 文章目录 | 直达链接 | |
表白系列 | |||
1 | 无法拒绝的表白界面 | https://want595.blog.csdn.net/article/details/134744894 | |
2 | 满屏飘字表白代码 | https://want595.blog.csdn.net/article/details/135037388 | |
3 | 无限弹窗表白代码 | https://want595.blog.csdn.net/article/details/134744711 | |
4 | 李峋同款可写字版跳动的爱心 | https://want595.blog.csdn.net/article/details/134744191 | |
5 | 流星雨 | https://want595.blog.csdn.net/article/details/134747408 | |
6 | 漂浮爱心 | https://want595.blog.csdn.net/article/details/134744929 | |
7 | 爱心光波 | https://want595.blog.csdn.net/article/details/134747365 | |
8 | 玫瑰花 | https://want595.blog.csdn.net/article/details/134747447 | |
节日系列 | |||
1 | 新春/跨年 | 烟花秀(2022) | https://want595.blog.csdn.net/article/details/128727394 |
烟花秀(2023) | https://want595.blog.csdn.net/article/details/135042880 | ||
粒子烟花 | https://want595.blog.csdn.net/article/details/136029420 | ||
2 | 圣诞节 | 圣诞礼物 | https://want595.blog.csdn.net/article/details/135336583 |
圣诞树(2022) | https://want595.blog.csdn.net/article/details/128428985 | ||
绿色圣诞树(2023) | https://want595.blog.csdn.net/article/details/135048607 | ||
粉色圣诞树(2023) | https://want595.blog.csdn.net/article/details/135043042 | ||
3 | 冬至 | 大雪纷飞 | https://want595.blog.csdn.net/article/details/128806017 |
4 | 生日 | 生日蛋糕 | https://want595.blog.csdn.net/article/details/128739755 |
5 | 儿童节 | 五彩气球 | https://want595.blog.csdn.net/article/details/128741043 |
6 | 国庆节 | 国庆祝福 | https://want595.blog.csdn.net/article/details/128740923 |
7 | 万圣节 | 万圣礼物 | https://want595.blog.csdn.net/article/details/128734395 |
8 | 愚人节 | 愚人代码 | https://want595.blog.csdn.net/article/details/128696990 |
9 | 中秋节 | 浪漫星空 | https://want595.blog.csdn.net/article/details/128737284 |
10 | 植树节 | 樱花树 | https://want595.blog.csdn.net/article/details/128700178 |
动漫系列 | |||
1 | 名侦探柯南系列 | 柯南 | https://want595.blog.csdn.net/article/details/134777613 |
2 | 喜羊羊与灰太狼系列 | 喜羊羊 | https://want595.blog.csdn.net/article/details/134778583 |
懒羊羊 | https://want595.blog.csdn.net/article/details/134847642 | ||
灰太狼 | https://want595.blog.csdn.net/article/details/135335303 | ||
小灰灰 | https://want595.blog.csdn.net/article/details/135335445 | ||
小香香 | https://want595.blog.csdn.net/article/details/135056783 | ||
3 | 海绵宝宝系列 | 海绵宝宝 | https://want595.blog.csdn.net/article/details/134847364 |
4 | 哆啦A梦系列 | 哆啦A梦 | https://want595.blog.csdn.net/article/details/135037884 |
5 | HelloKitty系列 | hellokitty | https://want595.blog.csdn.net/article/details/135337732 |
6 | Tom&Jerry系列 | Tom&Jerry | https://want595.blog.csdn.net/article/details/135337775 |
7 | 草莓熊系列 | 草莓熊 | https://want595.blog.csdn.net/article/details/135337832 |
8 | 皮卡丘系列 | 迷你皮卡丘 | https://want595.blog.csdn.net/article/details/135337911 |
高级皮卡丘 | https://want595.blog.csdn.net/article/details/135337937 | ||
豪华皮卡丘 | https://want595.blog.csdn.net/article/details/135337947 | ||
炫酷系列 | |||
1 | 一闪一闪亮星星系列 | 张万森下雪了 | https://want595.blog.csdn.net/article/details/135336915 |
一闪一闪亮星星 | https://want595.blog.csdn.net/article/details/135337049 | ||
2 | 代码雨 | https://want595.blog.csdn.net/article/details/135054341 | |
3 | 七彩花朵 | https://want595.blog.csdn.net/article/details/135056670 | |
4 | 3D星空 | https://want595.blog.csdn.net/article/details/135056516 | |
5 | 金榜题名 | https://want595.blog.csdn.net/article/details/135056150 | |
6 | 满天星 | https://want595.blog.csdn.net/article/details/135056305 | |
…… |
前言
粉色系最爱!Python樱花树等你获取~
哈喽小伙伴们好久不见啦,最近樱花开得好美吖,博主想和大家一起分享春天的快乐,一起来看看博主画的樱花树吧!
技术需求
在使用Python绘制樱花树之前,让我们先深入了解turtle库的基础知识。
Turtle库是Python中一个重要的内置绘图包,提供了丰富的绘图工具和功能。掌握Turtle绘图后,你可以创作出各种图案。
1.1 Turtle画板设置
使用turtle.screensize()
函数可以调整Turtle画板的大小:
turtle.screensize(width, height, bg)
width
: 设置画板宽度。height
: 设置画板高度。bg
: 设置画布背景颜色。
1.2 Turtle画笔控制
Turtle画笔常用的几个函数包括:
① turtle.penup()
: 抬起画笔,移动时不留下痕迹。
② turtle.pendown()
: 放下画笔,与penup()
相对,放下后继续绘图并留下痕迹。
③ turtle.pensize(size)
: 设置画笔粗细。
④ turtle.pencolor(color)
: 设置画笔颜色,可查阅Python支持的所有颜色。
⑤ turtle.hideturtle()
: 隐藏画笔,隐藏后绘图时看不到画笔。
1.3 Turtle基本绘图操作
绘图过程中常用的一些移动函数有:
① turtle.forward(distance)
: 向前移动指定距离。
② turtle.backward(distance)
: 向后移动指定距离。
③ turtle.left(angle)
: 向左旋转指定角度。
④ turtle.right(angle)
: 向右旋转指定角度。
⑤ turtle.speed(speed)
: 设置绘图速度,范围为0(最快)到10(最慢)。
1.4 Turtle图形填色
完成图形绘制后,可使用turtle.fillcolor()
进行填色:
turtle.begin_fill() # 开始填充
turtle.fillcolor(color) # 设置填充颜色
turtle.end_fill() # 结束填充
1.5 Turtle文本输出
使用turtle.write()
函数可以在绘图完成后添加文本:
turtle.write(text, move=False, align="left", font=("宋体", 8, "normal"))
text
: 要写入的文本内容。move
: 是否将画笔移动到文本右下角,默认为False
。align
: 文本对齐方式,可选值为"left"
、"center"
、"right"
。font
: 字体设置,三元组形式(fontname, fontsize, fonttype)
,例如("宋体", 8, "normal")
。
完整代码
完整代码在这里哦:https://want595.blog.csdn.net/article/details/128700178
代码分析
在对turtle库进行初步了解后,我们正式进入今天的主题!
2.1 樱花类
既然是樱花树,自然少不了樱花的绘制。在此,我选择了五片花瓣的经典樱花设计
def flower(): tu.hideturtle() tu.pensize(2) tu.pencolor("pink")flowersize = ra.randint(1, 5) for _ in range(5): tu.forward(flowersize)tu.backward(flowersize)tu.right(72)
2.2 樱花树
完成樱花的绘制后,接下来我们将通过递归方法来构建樱花树
def tree(n, k):tu.pendown() tu.pencolor("black")tu.pensize(n / 4)tu.forward(k) if n > 0:r = ra.random() * 10 + 10l = ra.random() * 10 + 10x = k * (ra.random() * 0.25 + 0.7) tu.right(r)tree(n - 1, x)tu.left(l + r)tree(n - 1, x)tu.right(l)# Continue the tree structure here...
2.3 主函数
最后,我们需要一个主函数来整合并实现完整的樱花树
tu.setup(800, 480)
tu.bgcolor("lavenderblush")
tu.hideturtle()
tu.tracer(0)
tu.penup()
tu.goto(0, -150)
tu.pendown()
tu.left(90)
tree(12, 50)
for _ in range(99):tu.penup()tu.goto(ra.randint(-150, 150), ra.randint(-150, 0))tu.pendown()flower()
2.4 樱花林
单棵樱花树显然不足以构成美景,利用循环语句,我们可以创建一片美丽的樱花林
for _ in range(20):tu.penup() tu.goto(ra.randint(-300, 300), ra.randint(-150, 0))tu.pendown()tu.left(90) tree(8, 30)tu.setheading(0)# Continue the forest creation here...
写在后面
小伙伴们咱们下期见喔!