首页 > 编程语言 >Python Turtle:绚丽多彩的烟花动画

Python Turtle:绚丽多彩的烟花动画

时间:2024-11-06 10:16:50浏览次数:5  
标签:Turtle turtle 绚丽多彩 particle Python screen 烟花 color pen

以下是一个使用 Python 的turtle库实现的烟花动画程序示例:

收起

python

复制

import turtle
import random
import time

# 创建画布
screen = turtle.Screen()
screen.bgcolor("black")
screen.title("Fireworks Animation")

# 烟花颜色列表
colors = ["red", "orange", "yellow", "green", "blue", "purple"]

# 发射烟花函数
def firework(x, y):
    pen = turtle.Turtle()
    pen.hideturtle()
    pen.speed(0)
    pen.penup()
    pen.goto(x, y)
    pen.pendown()
    color = random.choice(colors)
    pen.color(color)
    for i in range(30):
        pen.forward(i * 2)
        pen.right(144)
    explosion(pen.xcor(), pen.ycor(), color)

# 烟花爆炸效果函数
def explosion(x, y, color):
    particles = []
    for i in range(30):
        particle = turtle.Turtle()
        particle.hideturtle()
        particle.speed(0)
        particle.penup()
        particle.goto(x, y)
        particle.pendown()
        particle.color(color)
        angle = random.randint(0, 360)
        distance = random.randint(10, 50)
        particle.setheading(angle)
        particle.forward(distance)
        particles.append(particle)
    for _ in range(10):
        for particle in particles:
            particle.forward(5)

# 绑定鼠标点击事件来触发烟花
screen.onclick(firework)

# 主循环
while True:
    screen.update()
    time.sleep(0.1)

在这个程序中:

初始化部分:

  1. 首先创建了一个turtle屏幕对象screen,将背景颜色设置为黑色,并设置了标题。
  2. 定义了一个包含多种颜色的列表colors,用于烟花的颜色选择。

烟花发射和爆炸函数:

  1. firework函数用于发射一个烟花。当调用该函数时,它会在指定的(x, y)坐标处创建一个turtle对象作为烟花。烟花的颜色是从colors列表中随机选择的,然后通过循环绘制出烟花上升的轨迹(这里是一个简单的多边形)。之后调用explosion函数在烟花的顶部位置产生爆炸效果。
  2. explosion函数用于创建烟花爆炸的效果。它在给定的坐标(x, y)处创建多个turtle对象作为烟花爆炸的粒子,每个粒子有随机的方向和距离,然后通过循环让这些粒子向外扩散,模拟爆炸的视觉效果。

事件绑定和主循环:

  1. firework函数绑定到鼠标点击事件上,这样每次点击鼠标时就会发射一个烟花。
  2. 在主循环中,不断更新屏幕以显示动画效果,并添加了一个小的时间延迟0.1秒,以控制动画的帧率和流畅度

标签:Turtle,turtle,绚丽多彩,particle,Python,screen,烟花,color,pen
From: https://blog.csdn.net/zhaoshanshan168/article/details/143562397

相关文章

  • Python:用 turtle 库打造趣味动画 —— 基础示例与进阶拓展
    以下是一个使用Python的matplotlib库实现的简单动画程序示例,展示了一个正弦波动态变化的效果,标题为《Python与Matplotlib:动态正弦波动画展示》。收起python复制importnumpyasnpimportmatplotlib.pyplotaspltimportmatplotlib.animationasanimation#创......
  • Python酷库之旅-第三方库Pandas(192)
    目录一、用法精讲891、pandas.Index.nunique方法891-1、语法891-2、参数891-3、功能891-4、返回值891-5、说明891-6、用法891-6-1、数据准备891-6-2、代码示例891-6-3、结果输出892、pandas.Index.value_counts方法892-1、语法892-2、参数892-3、功能892-4、返......
  • 讲解Python选择语句
    Python选择语句1.`if`语句语法:示例:2.`else`语句语法:示例:3.`elif`语句语法:示例:4.嵌套选择语句示例:5.条件表达式(TernaryOperator)示例:6.布尔值与条件表达式示例:7.多重条件判断示例:8.总结与应用场景Python中的选择语句(也称为条件语句)用于根据不同的条......
  • python+flask计算机毕业设计果园管理系统(程序+开题+论文)
    文件加密系统的设计与实现tp835本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容一、选题背景关于果园管理系统的研究,现有研究多侧重于果园的生产环节管理,如自动化灌溉、病虫害监测等技术层面的应......
  • python+flask计算机毕业设计共享自习室小程序(程序+开题+论文)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容一、选题背景关于共享自习室小程序的研究,现有研究多侧重于自习室的基本功能和运营模式等方面,如自习室的预约、计费等基础功能的实现。专门针对将......
  • python+flask计算机毕业设计广电集团客户管理系统(程序+开题+论文)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容一、选题背景关于广电集团客户管理系统的研究,现有研究多集中于广播电视业务的传播、技术革新等方面,专门针对广电集团客户管理系统的研究较少。在客......
  • python+flask计算机毕业设计高校学生课堂考勤打卡APP的设计和实现(程序+开题+论文)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容一、选题背景关于高校学生课堂考勤的研究,现有研究多集中在传统点名方式的改进以及基于单一技术的考勤系统开发。例如,有的研究专注于利用蓝牙技术实......
  • python+flask计算机毕业设计好骑行打卡园app系统(程序+开题+论文)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容好骑行打卡园app系统毕业设计相关内容一、选题背景关于骑行打卡类APP的研究,现有研究主要以骑行记录和路线规划为主,专门针对骑行打卡园这种集打卡......
  • python+flask计算机毕业设计个人健康管理小程序(程序+开题+论文)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容个人健康管理小程序毕业设计说明一、选题背景关于个人健康管理小程序的研究,现有研究主要以综合性健康管理系统为主,专门针对小程序形式的个人健康......
  • 使用Python Flask实战构建Web应用
     你是否曾想过,使用Python来快速搭建一个Web应用?Flask作为一个轻量级的Web框架,因其简单、灵活且高效,成为了很多开发者首选的工具。今天,就让我们一同走进Flask的世界,探索如何使用它轻松构建一个实战Web应用!为什么Flask是Python开发者中最受欢迎的Web框架之一?它到底有哪些独特的......