银杏树,因其形态优美、叶片独特而被人们喜爱。银杏的叶子呈扇形,秋天时叶片呈现出金黄的色彩,成为秋季的代表之一。今天,我们将使用Python的turtle库来绘制一棵具有银杏树🍂特色的树。 通过编写Python代码,我们将模拟银杏树的树干、树枝、叶子等细节,最终呈现出一棵生动的银杏树🍂。
我们将利用Python的turtle库来绘制银杏树🍂。首先,我们会画出树干和树枝,然后用颜色填充银杏的扇形叶子,使其看起来更加自然。
🔥以下是实现银杏树🍂的完整代码:
from turtle import *
from random import *
from math import *
def ginkgo_tree(n, l):pd() # 下笔# 阴影效果,使用深黄色系,优化颜色计算t = (cos(radians(heading() + 45)) / 8 + 0.3) * 0.8pencolor(t, t * 0.7, 0) # 让颜色更接近银杏叶的颜色if n > 5: # 当 n 大于 5 时,使树干更粗pensize(max(n / 2, 5)) else:pensize(max(n / 3, 1)) # 确保树枝有最小粗细forward(l) # 画树枝if n > 0:b = random() * 20 + 5 # 调整分支偏转角度范围c = random() * 20 + 5d = l * (random() * 0.3 + 0.6) # 调整下一个分支的长度范围# 右转一定角度, 画右分支right(b)ginkgo_tree(n - 1, d)# 左转一定角度,画左分支left(b + c)ginkgo_tree(n - 1, d)# 转回来right(c)else:# 画叶子right(90)# 银杏叶子使用黄色,更鲜明的黄色pencolor("#FFD700")# 绘制扇形的银杏叶,优化叶子形状begin_fill()fillcolor("#FFD700")for i in range(3):circle(8, 120) # 增大叶子尺寸left(120)end_fill()left(90)# 添加 0.3 倍的飘落叶子if (random() > 0.7):pu()# 飘落t = heading()an = -45 + random() * 90 # 调整飘落角度范围setheading(an)dis = int(800 * random() * 0.5 + 400 * random() * 0.3 + 200 * random() * 0.2)forward(dis)setheading(t)# 画叶子pd()right(90)# 飘落叶子的颜色稍淡pencolor("#FFEC8B") # 更淡的黄色# 绘制飘落的扇形叶子,优化形状begin_fill()for i in range(3):circle(5, 120) # 调整飘落叶子尺寸left(120)end_fill()left(90)pu()# 返回t = heading()setheading(an)backward(dis)setheading(t)pu()backward(l) # 退回
bgcolor("white") # 把背景色换成天空蓝
ht() # 隐藏 turtle
speed(0) # 速度 1-10 渐进,0 最快
tracer(0, 0)
pu() # 抬笔
backward(50)
left(90) # 左转 90 度
pu() # 抬笔
backward(300) # 后退 300
ginkgo_tree(12, 100) # 递归 7 层
done()
🔥效果图如下: