之前的樱花树只有粉色花朵,很多朋友想要加上绿叶,优化版本来啦!树枝直立向上生长,枝头随机分布粉嫩樱花与清新嫩叶,画面层次更加丰富。
完整绘图代码
import turtle
import random
# 画布设置
screen = turtle.Screen()
screen.bgcolor("#f8f8f8")
pen = turtle.Turtle()
pen.speed(0)
pen.hideturtle()
# 绘制樱花花瓣
def draw_petal():
pink_list = ["#ffc0cb", "#ffb6c1", "#ff9ebb"]
pen.fillcolor(random.choice(pink_list))
pen.begin_fill()
for _ in range(2):
pen.circle(14, 90)
pen.circle(5, 90)
pen.end_fill()
# 绘制小绿叶
def draw_leaf():
pen.fillcolor("#73c060")
pen.begin_fill()
for _ in range(2):
pen.circle(12, 90)
pen.circle(4, 90)
pen.end_fill()
# 递归生成树枝
def draw_tree(trunk_len):
if trunk_len > 6:
pen.pencolor("#6b4423")
pen.pensize(trunk_len // 3)
pen.forward(trunk_len)
branch_angle = random.randint(18, 26)
pen.left(branch_angle)
draw_tree(trunk_len * 0.72)
pen.right(branch_angle * 2)
draw_tree(trunk_len * 0.72)
pen.left(branch_angle)
pen.backward(trunk_len)
else:
# 随机生成花朵或者绿叶
rand = random.random()
if rand < 0.65:
draw_petal()
else:
draw_leaf()
# 画笔朝上,树直立不会倒置
pen.penup()
pen.goto(0, -240)
pen.pendown()
pen.left(90)
draw_tree(100)
turtle.done()
零基础精简知识点
1. import random:随机分配花瓣和绿叶,每一次运行树木形态略有区别
2. 两个自定义函数:draw_petal()樱花、draw_leaf()绿叶,方便修改造型大小
3. 递归函数draw_tree():自动分叉生长枝干,主干粗、细枝纤细
4. pen.left(90)核心代码:画笔朝向正上方,解决树木倒置问题
5. begin_fill()与end_fill()成对使用,实现图形填充颜色
6. turtle.done()放在代码末尾,绘图窗口不会直接关闭
感悟短句
几行代码,构建一树春日风光。自学编程不必急于求成,慢慢调试、一点点优化,总能做出自己满意的画面。
简单说明
运行后树枝末端随机出现粉色樱花、绿色嫩叶,花和叶子搭配自然;
如果你想要调整叶子多少,修改代码里 rand < 0.65 这个数字:
数值越大,花朵越多、叶子越少;数值越小,绿叶更多。
#Python零基础 #turtle樱花绘图 #自学编程日常