- 背景介绍
Turtle库是Python自带的图形化模块,其基于Tkinter模块,是一个简单易用的绘图工具。本文将介绍如何利用Turtle库绘制一颗樱花树。
- 安装Turtle库
Python自带Turtle库,无需单独安装。
- 绘制樱花树
(1)导入Turtle库
import turtle
(2)调整画笔和画布
t = turtle.Turtle() # 创建画笔
t.hideturtle() # 隐藏画笔
t.getscreen().bgcolor("#6BB7E6") # 设置背景颜色
t.color("white") # 设置画笔颜色
t.speed(0) # 设置画笔速度
t.penup() # 画笔抬起
t.setpos(0, -200) # 画笔移动到(-200, 0)
t.pendown() # 画笔放下
说明:
t.hideturtle()
用于隐藏画笔,使得结果更美观t.getscreen().bgcolor("#6BB7E6")
设置背景颜色为淡蓝色t.color("white")
设置画笔颜色为白色t.speed(0)
设置画笔速度为最快(0-10,0为最快)t.penup()
用于在移动画笔时不画出线
(3)绘制树干
def tree(size, pen):
if size > 0:
pen.pensize(size/10)
pen.fd(size)
pen.rt(30)
tree(size-25, pen)
pen.lt(60)
tree(size-25, pen)
pen.rt(30)
pen.bk(size)
说明:
size
参数表示这是一个递归的函数,最初调用应始于树的高度pen.pensize(size/10)
用于根据高度调整画笔粗细pen.fd(size)
使画笔前进一段距离pen.rt(30)
(pen.lt(60)
) 用于调整画笔角度tree(size-25, pen)
递归调用自身来绘制树枝pen.bk(size)
使画笔后退一段距离
(4)绘制樱花
from random import randint
def sakura(pen):
# 樱花的位置
x = randint(-200, 200)
y = randint(0, 200)
size = randint(10, 25)
# 设置画笔的颜色与样式
pen.color("#F0E6F1")
pen.penup()
pen.setpos(x, y)
pen.pendown()
# 绘制樱花
for i in range(5):
pen.begin_fill()
pen.circle(size)
pen.end_fill()
pen.lt(72)
说明:
x
和y
用于生成樱花的位置size
用于生成樱花的大小pen.color("#F0E6F1")
设定樱花画笔的颜色pen.penup()
用于绘制樱花时不画出线pen.setpos(x, y)
将画笔移动到随机位置pen.pendown()
用于在绘制樱花时画出线pen.begin_fill()
开始填充绿色pen.circle(size)
绘制圆弧pen.end_fill()
结束填充
(5)主程序
# 绘制树干和树枝
tree(150, t)
# 绘制樱花
for _ in range(100):
sakura(t)
turtle.done()
说明:
tree(150, t)
用于绘制樱花树的主干和树枝(高度设为150)for _ in range(100):
用于循环绘制100朵樱花sakura(t)
用于绘制一朵樱花-
turtle.done()
用于显示图形 -
其他示例
除了绘制樱花树,Turtle库还可以用于绘制其他图形,以下是另外两个示例:
(1)绘制螺旋线
import turtle
t = turtle.Turtle()
t.speed(0)
for i in range(500):
t.forward(i)
t.right(100)
turtle.done()
说明:
t.speed(0)
设置画笔速度为最快for i in range(500):
用于循环绘制500次t.forward(i)
用于向前移动距离i
(初始值为0)t.right(100)
用于向右旋转100度
(2)绘制简单的花朵
import turtle
t = turtle.Turtle()
t.speed(0)
def draw_flower():
for i in range(4):
t.fd(100)
t.rt(90)
t.rt(45)
t.fd(70)
t.rt(90)
t.fd(70)
t.rt(45)
for i in range(8):
t.rt(45)
t.fd(50)
t.bk(50)
t.lt(90)
t.fd(70)
t.lt(90)
t.penup()
t.goto(0, 0)
t.pendown()
for i in range(36):
draw_flower()
t.rt(10)
turtle.done()
说明:
def draw_flower():
定义绘制花朵的函数for i in range(4):
定义花瓣的形状t.rt(45)
(t.lt(90)
) 定义花瓣的角度t.fd(70)
定义花枝的长度for i in range(8):
用于绘制花的中心部分-
t.rt(10)
用于旋转角度 -
结论
本文介绍了使用Turtle库绘制樱花树以及其他图形的方法。Turtle库是一个简单易用的绘图工具,可以用于教育和娱乐。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python利用Turtle库绘制一颗樱花树 - Python技术站