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

176 lines
4.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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 3**Composition API、响应式状态、生命周期钩子
10. **CSS 动画**:淡入、滑入、脉冲动画
## 使用的公共 Composables
1. `useThreeScene()` - 场景、相机、渲染器、控制器的创建
2. `useEnvironment()` - 天空盒、地板、网格、流动光效
3. `useThreeLighting()` - 多光源照明系统
4. `usePostProcessing()` - 后期处理合成器和效果
5. `useParticleSystem()` - 粒子发射器(蒸汽、火焰)
## 文件统计
- 总行数:约 1260 行
- 注释覆盖:
- 脚本部分:每个函数和重要代码块都有注释
- 模板部分:每个主要组件都有说明
- 样式部分:添加了分类和关键样式说明