银杏树,因其形态优美、叶片独特而被人们喜爱。银杏的叶子呈扇形,秋天时叶片呈现出金黄的色彩,成为秋季的代表之一。今天,我们将使用Python的turtle库 来绘制一棵具有银杏树🍂特色的树。 通过编写Python代码,我们将模拟银杏树的树干、树枝、叶子等细节,最终呈现出一棵生动的银杏树🍂。
我们将利用Python的turtle库来绘制银杏树🍂。首先,我们会画出树干和树枝,然后用颜色填充银杏的扇形叶子,使其看起来更加自然。
🔥以下是实现银杏树🍂的完整代码:
bash
from turtle import *
from random import *
from math import *
def ginkgo_tree(n, l):
pd() # 下笔
# 阴影效果,使用深黄色系,优化颜色计算
t = (cos(radians(heading() + 45)) / 8 + 0.3) * 0.8
pencolor(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 + 5
d = 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()
🔥效果图如下: