模拟种子发芽

模拟种子发芽:使用 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()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值