模拟种子发芽:使用 turtle 绘制出种子从土壤中长出幼苗,逐渐生长出根、茎、叶的过程,设置不同的生长阶段和时间间隔。
import turtle import time import random # 初始化屏幕和画笔 screen = turtle.Screen() screen.setup(800, 600) screen.bgcolor("lightcyan") screen.tracer(0) pen = turtle.Turtle() pen.hideturtle() pen.speed(0) def draw_soil(): """绘制土壤层""" pen.penup() pen.goto(-400, -200) pen.pendown() pen.color("#8B4513") pen.begin_fill() for _ in range(2): pen.forward(800) pen.left(90) pen.forward(200) pen.left(90) pen.end_fill() screen.update() def draw_seed(): """绘制初始种子""" pen.penup() pen.goto(0, -120) pen.pendown() pen.color("#6B4423") pen.begin_fill() pen.circle(12) pen.end_fill() screen.update() def grow_roots(): """模拟根系生长""" pen.penup() pen.goto(0, -132) pen.pendown() pen.color("#CD853F") pen.width(2) # 绘制主根 pen.setheading(270) for _ in range(15): pen.forward(2) screen.update() time.sleep(0.05) # 绘制侧根分支 for _ in range(8): angle = random.randint(-45, 45) length = random.randint(10, 25) pen.left(angle) for _ in range(length): pen.forward(1) screen.update() time.sleep(0.02) pen.penup() pen.backward(length) pen.right(angle) pen.pendown() def grow_stem(): """模拟茎干生长""" pen.penup() pen.goto(0, -120) pen.pendown() pen.color("green") pen.width(5) pen.setheading(90) # 茎干生长动画 for _ in range(80): pen.forward(2) screen.update() time.sleep(0.02) # 茎干细节纹理 pen.width(1) for _ in range(15): pen.color("#228B22") pen.left(15) pen.forward(5) pen.backward(5) pen.right(30) pen.forward(5) pen.backward(5) pen.left(15) pen.forward(10) def draw_leaves(): """绘制展开的叶片""" pen.penup() pen.goto(0, 40) pen.pendown() pen.color("#32CD32") # 左侧叶片 pen.begin_fill() pen.setheading(150) pen.circle(40, 120) pen.setheading(270) pen.circle(40, 120) pen.end_fill() # 右侧叶片 pen.begin_fill() pen.setheading(30) pen.circle(-40, 120) pen.setheading(90) pen.circle(-40, 120) pen.end_fill() # 叶片脉络 pen.color("#008000") pen.width(2) for _ in range(3): pen.penup() pen.goto(0, 40) pen.pendown() pen.setheading(random.randint(100, 160)) pen.forward(30) for _ in range(3): pen.penup() pen.goto(0, 40) pen.pendown() pen.setheading(random.randint(20, 80)) pen.forward(30) screen.update() # 分阶段执行生长过程 draw_soil() # 绘制土壤层 draw_seed() # 绘制初始种子 time.sleep(1) # 种子休眠阶段 grow_roots() # 根系发育阶段 time.sleep(0.5) # 生长间隔 grow_stem() # 茎干生长阶段 time.sleep(0.3) # 准备展开叶片 draw_leaves() # 叶片展开阶段 turtle.done()