这篇文章参考了别人的博客《三月桃花开,用python给你带来你的桃花运,详细解析画一棵表白树》[1],原文作者:沙漏在下雨,这里简单记录一下学习过程。
这里使用的是python 的turtle模块,如果读者使用的是Pycharm ,在使用 turtle时会存在一些问题,可以看我的另一篇博客《Ubuntu:解决PyCharm中turtle模块无法使用的问题》[2]。
目录
一、代码详解
(一)绘制画幕
(二)绘制落花
(三)绘制树枝与花瓣
(四)绘制多棵树
二、完整代码
(一)完整代码
(二)效果
一、代码详解
(一)绘制画幕
首先绘制画幕,命令说明如下:
screensize(width, height, bg=color):设置画幕大小及颜色
setup(p1, p2):设置画幕大小,当 p1、p2 为小数时表示屏幕占比;当 p1、p2 为整数时表示像素
tracer(speed):设置绘制速度,speed越大表示绘制速度越快def get_screen(width, height, color, speed):
# 创建画幕
screen_obj = turtle.Screen()
# 画布大小:(width, height),颜色:color
screen_obj.screensize(width, height, bg=color)
screen_obj.setup(1.0, 1.0)
# speed倍加速
screen_obj.tracer(speed)
return screen_obj
(二)绘制落花
在确定落花数量的情况下,我们首先要评估落花的范围,这里通过两句语句来约束落花的范围(落花数量越多,当然地落花范围也就越大):
# 有正有负就可以让画笔往二个方向走
x = flower - 4 * flower * random()
# 花瓣整体宽度(-10, 10)
y = 10 - 20 * random()
然后我们来讲讲turtle常用的几个命令吧:
首先,我们得明确,对于 turtle 画布来说,其为一个xOy 的平面,画布中心为原点 O ;对于 turtle 画笔来说,其有一个初始方向,指向x 轴正方向。
penup():起笔(可以想象成画画的时候沾墨之后提笔)
forward():向前移动
backward():向后移动
left(degree):逆时针旋转 degree 度
right(degree):顺时针旋转 degree 度
pendown():落笔
pencolor(color):笔墨颜色为 color
circle(r):画一个半径为 r 的圆
代码如下:
def draw_petal(turtle_obj, flower):
# 绘制掉落的花瓣
for i in range(int(flower / 2)):
# 有正有负就可以让画笔往二个方向走