跳到主要内容

🎆 动态烟花模拟器

一个使用HTML5 Canvas实现的交互式烟花模拟效果。点击画布发射烟花,调整参数创建您自己的烟花秀!

烟花配置

使用说明

  • 点击画布任意位置发射烟花
  • 使用控制按钮暂停/播放动画
  • 调整配置参数改变烟花效果
  • 点击"发射一个"按钮随机发射烟花

🎨 技术特性

  • 使用HTML5 Canvas实现高性能渲染
  • 基于物理的粒子系统模拟
  • 完全可自定义的烟花参数
  • 响应式设计,适配各种屏幕尺寸
  • 实时交互控制

🕹️ 交互指南

  • 点击画布 - 在点击位置发射烟花
  • 调整滑块 - 改变烟花物理参数
  • 控制按钮 - 暂停/播放、清空、发射单个烟花
  • 自动发射 - 切换自动发射模式

⚙️ 参数说明

  • 发射频率 - 控制新烟花生成的频率
  • 重力 - 影响粒子下落速度
  • 摩擦力 - 控制粒子运动阻力
  • 粒子数量 - 每个烟花的粒子数
  • 粒子速度 - 粒子爆炸初始速度

💻 TypeScript 实现

这个烟花模拟器使用TypeScript实现,具有完整的类型安全。主要特性包括:

  1. 类型定义:为粒子、烟花和配置参数提供了完整的类型定义
  2. 类实现:使用ES6类实现粒子和烟花系统
  3. React Hooks:使用useState、useEffect和useCallback管理状态和副作用
  4. 性能优化:使用requestAnimationFrame实现平滑动画
// Particle 类示例
class Particle {
  x: number;
  y: number;
  size: number;
  color: string;
  alpha: number;
  
  constructor(x: number, y: number, hue: number) {
    this.x = x;
    this.y = y;
    this.size = Math.random() * 3 + 1;
    this.color = `hsl(${hue}, 100%, 50%)`;
    this.alpha = 1;
  }
}

此演示为Docusaurus页面创建,使用TypeScript实现,兼容现代浏览器。 在移动设备上使用触摸事件同样支持交互。