Files
three-demos/注释说明.md
2025-11-21 14:04:26 +08:00

4.8 KiB
Raw Permalink Blame History

12/index.vue 详细注释说明

概述

已为 src/views/three/12/index.vue 文件添加了详细的中文注释,涵盖了所有关键代码部分。

注释内容分类

1. 文件头部注释

  • 文件功能描述
  • 主要特性列表8大功能点
  • 作者信息和时间戳

2. 导入和变量声明注释

  • 公共 Composables:详细说明每个导入函数的用途

    • useThreeScene() - 场景基础设置
    • useEnvironment() - 环境相关功能
    • useParticleSystem() - 粒子系统
    • usePostProcessing() - 后期处理
    • useThreeLighting() - 灯光系统
  • 状态变量:按功能分类注释

    • Three.js 核心对象(场景、相机、渲染器等)
    • 粒子系统(蒸汽、火焰)
    • 火焰蔓延相关变量
    • 设备告警系统
    • 物体选择与信息显示
    • 射线检测

3. 核心函数注释

init() - 初始化函数

  • 分为多个逻辑块,每个块都有标题注释:

    • 初始化公共工具函数
    • 创建场景
    • 创建环境背景
    • 创建相机
    • 创建渲染器
    • 创建控制器
    • 设置灯光系统
    • 创建地板
    • 设置后期处理
    • 初始化射线检测
    • 加载 3D 模型
    • 事件监听
    • 启动动画循环
  • 每个配置参数都有说明

loadModel() - 模型加载函数

  • 遍历模型子对象的处理逻辑
  • 特定设备的识别和初始化
  • 蒸汽和火焰效果的创建

spreadFire() - 火焰蔓延函数

  • 蔓延算法说明
  • 距离计算逻辑
  • 阈值判断说明
  • 中心大火触发条件

removeInitialFire() - 移除初始火焰

  • 功能说明和调用时机

createCenterFire() - 创建中心大火

  • 多层火焰效果的创建逻辑
  • 四周火焰柱的配置
  • 参数计算说明

animate() - 动画循环函数

  • 各个系统的更新逻辑
  • 火焰蔓延时间控制
  • 告警闪烁效果计算
  • 标签位置更新

updateLabelPosition() - 标签位置更新

  • 3D 到 2D 坐标转换
  • 屏幕像素坐标计算

onCanvasClick() - 点击事件处理

  • 归一化设备坐标转换
  • 射线检测逻辑
  • 材质信息获取
  • 轮廓描边设置

showDeviceDialog() - 显示设备弹窗

  • 弹窗内容配置

clearSelection() - 清除选择

  • 状态重置

toggleAlert() - 切换告警状态

  • 开启告警的视觉效果
  • 关闭告警的状态恢复

toggleParticles() - 切换蒸汽效果

  • 粒子发射器控制

toggleFlame() - 切换火焰效果

  • 火焰系统的完整启停逻辑
  • 状态重置和资源清理

closeDialog() - 关闭弹窗

onResize() - 窗口大小变化处理

  • 相机和渲染器尺寸更新

生命周期钩子

  • onMounted - 组件挂载时初始化
  • onUnmounted - 组件卸载时资源清理

4. 模板部分注释

  • Three.js 渲染容器:说明用途
  • 物体信息标签
    • 显示时机
    • 位置动态跟随
    • 内容结构(名称、材质、坐标)
  • 设备详情弹窗
    • 触发条件
    • 告警/正常状态展示
    • 关闭逻辑
  • 控制面板
    • 场景特性列表
    • 设备控制按钮
    • 交互说明
    • 技术信息

5. 样式部分注释

  • 文件级说明:主题色和样式分类
  • 物体信息标签
    • 定位和动画
    • 内容样式
  • 弹窗
    • 遮罩层和主体
    • 告警状态特殊样式
    • 动画效果
  • 控制面板
    • 布局和定位
    • 按钮样式和交互效果
    • 自定义滚动条

注释特点

  1. 结构清晰:使用分隔线和标题组织注释
  2. 说明详细:不仅说明"是什么",还说明"为什么"
  3. 中文友好:所有注释均使用中文
  4. 参数说明:配置项都有注释解释
  5. 逻辑分组:相关代码按功能分组并添加标题注释

涉及的技术点

  1. Three.js 核心:场景、相机、渲染器、控制器
  2. 模型加载GLTFLoader
  3. 粒子系统:蒸汽效果、火焰效果、火焰蔓延
  4. 后期处理轮廓描边OutlinePass
  5. 射线检测:物体点击选择
  6. 材质系统发光效果emissive
  7. 动画系统requestAnimationFrame 循环
  8. 坐标转换3D 世界坐标到 2D 屏幕坐标
  9. Vue 3Composition API、响应式状态、生命周期钩子
  10. CSS 动画:淡入、滑入、脉冲动画

使用的公共 Composables

  1. useThreeScene() - 场景、相机、渲染器、控制器的创建
  2. useEnvironment() - 天空盒、地板、网格、流动光效
  3. useThreeLighting() - 多光源照明系统
  4. usePostProcessing() - 后期处理合成器和效果
  5. useParticleSystem() - 粒子发射器(蒸汽、火焰)

文件统计

  • 总行数:约 1260 行
  • 注释覆盖:
    • 脚本部分:每个函数和重要代码块都有注释
    • 模板部分:每个主要组件都有说明
    • 样式部分:添加了分类和关键样式说明