母亲节快乐——樱花树

母亲节快乐樱花绘制程序

在这里插入图片描述

功能概述

  • 使用Python的turtle库绘制樱花树。
  • 模拟樱花花瓣飘落的效果。
  • 在画布上显示“母亲节快乐”和一个心形符号。

主要函数

tree(branchLen, t)

  • 递归函数用于绘制樱花树的枝干。
  • 参数branchLen表示当前树枝的长度。
  • 参数t是turtle对象。
  • 根据树枝长度,使用不同颜色和粗细绘制树枝。
  • 递归调用自身以绘制更小的树枝。

petal(m, t)

  • 用于绘制m个掉落的樱花花瓣。
  • 使用随机位置和大小来模拟花瓣飘落的效果。

display_text(t)

  • 在画布上显示“母亲节快乐”和一个心形符号。
  • 可以调整文字和符号的位置和颜色。

程序执行步骤

  1. 初始化turtle对象t和画布w
  2. 设置画布标题为“母亲节快乐”并调整背景颜色。
  3. 调用tree函数开始绘制樱花树。
  4. 调用petal函数添加掉落的樱花花瓣。
  5. 使用display_text函数在画布上显示祝福语。
  6. 点击画布后程序结束。

完整代码

# coding=utf-8
# 设置文件编码为UTF-8,确保中文字符正确显示

import turtle
import random
from time import sleep

# 画樱花的躯干函数
def tree(branchLen, t):
    sleep(0.0005)  # 控制绘制速度
    if branchLen > 3:  # 如果树枝长度大于3
        if 8 <= branchLen <= 12:  # 如果树枝长度在8到12之间
            if random.randint(0, 2) == 0:  # 随机选择颜色
                t.color('snow')  # 白色
            else:
                t.color('lightcoral')  # 淡珊瑚色
            t.pensize(branchLen / 3)  # 设置画笔粗细
        elif branchLen < 8:  # 如果树枝长度小于8
            if random.randint(0, 1) == 0:  # 随机选择颜色
                t.color('snow')
            else:
                t.color('lightcoral')  # 淡珊瑚色
            t.pensize(branchLen / 2)  # 设置画笔粗细
        else:
            t.color('sienna')  # 赭色
            t.pensize(branchLen / 10)  # 设置画笔粗细
        t.forward(branchLen)  # 向前移动树枝长度
        a = 1.5 * random.random()  # 计算右转角度
        t.right(20 * a)  # 右转
        b = 1.5 * random.random()  # 计算递归树枝长度
        tree(branchLen - 10 * b, t)  # 递归绘制右侧树枝
        t.left(40 * a)  # 左转
        tree(branchLen - 10 * b, t)  # 递归绘制左侧树枝
        t.right(20 * a)  # 右转回到主干
        t.up()  # 抬起画笔
        t.backward(branchLen)  # 向后移动树枝长度
        t.down()  # 放下画笔

# 掉落的花瓣函数
def petal(m, t):
    for i in range(m):  # 循环绘制m个花瓣
        a = 200 - 400 * random.random()  # 随机花瓣位置
        b = 10 - 20 * random.random()
        t.up()  # 抬起画笔
        t.forward(b)  # 向前移动
        t.left(90)  # 左转90度
        t.forward(a)  # 向前移动
        t.down()  # 放下画笔
        t.color('lightcoral')  # 设置花瓣颜色
        t.circle(1)  # 画圆形花瓣
        t.up()  # 抬起画笔
        t.backward(a)  # 向后移动
        t.right(90)  # 右转90度
        t.backward(b)  # 向后移动

# 显示文字函数
def display_text(t):
    t.up()  # 抬起画笔
    t.goto(0, -270)  # 移动画笔到指定位置
    t.color('black')  # 设置文字颜色
    t.write("母亲节快乐", align="center", font=("黑 достижени", 24, "bold"))  # 写文字
    t.goto(20, -300)  # 移动画笔到指定位置
    t.color('red')  # 设置文字颜色
    t.write("❤️", align="center", font=("黑 достижени", 24, "bold"))  # 写心形符号

def main():
    t = turtle.Turtle()  # 创建turtle对象
    w = turtle.Screen()  # 创建screen对象
    w.title('母亲节快乐')  # 设置窗口标题
    t.hideturtle()  # 隐藏turtle箭头
    t.getscreen().tracer(5, 0)  # 设置动画速度
    w.screensize(800, 600, bg='wheat')  # 设置窗口大小和背景颜色
    t.left(90)  # 左转90度
    t.up()  # 抬起画笔
    t.backward(150)  # 向后移动
    t.down()  # 放下画笔
    t.color('sienna')  # 设置画笔颜色

    # 开始绘制樱花树
    tree(60, t)
    # 绘制掉落的花瓣
    petal(200, t)
    display_text(t)  # 显示文字
    w.exitonclick()  # 点击窗口后退出

main()  # 调用main函数开始执行程序

注意事项

  • 代码中使用了sleep函数来控制绘制速度。
  • w.exitonclick()使得程序在点击画布后退出。
  • 代码中使用了随机数生成器来增加自然效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值