This commit is contained in:
2025-11-21 14:04:26 +08:00
parent 9a2c352163
commit cdc8b0554c
2 changed files with 531 additions and 199 deletions

File diff suppressed because it is too large Load Diff

175
注释说明.md Normal file
View File

@@ -0,0 +1,175 @@
# 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 行
- 注释覆盖:
- 脚本部分:每个函数和重要代码块都有注释
- 模板部分:每个主要组件都有说明
- 样式部分:添加了分类和关键样式说明