# Molecular Visualizer - 功能开发路线图

## 已完成功能 ✓

### 核心功能
- [x] SMILES输入和3D可视化
- [x] XYZ/PDB文件上传
- [x] 多种显示样式 (Stick, Sphere, Ball+Stick, Line, Cross, Cartoon, Surface)
- [x] 原子属性显示 (点击查看元素、序号、坐标)
- [x] 键属性显示 (键长、键级、键类型)
- [x] 元素选择和高亮

### 测量工具 (新增 v1.1)
- [x] 距离测量 (Distance)
- [x] 角度测量 (Angle)
- [x] 二面角测量 (Dihedral)

### UI/UX改进 (新增 v1.1)
- [x] 暗色模式 (Dark Mode)
- [x] 实时SMILES语法验证
- [x] 分子查看历史记录
- [x] 快捷键扩展 (R重置, +/-缩放, 方向键旋转, 空格自动旋转)

### 数据功能 (新增 v1.1)
- [x] PubChem集成 (名称/CID搜索)
- [x] PNG图片导出
- [x] SVG矢量图导出

### 低难度功能 (新增 v1.2)
- [x] 工具提示 (Tooltip) - 鼠标悬停显示原子信息
- [x] 快捷键提示面板 - 按H键显示/隐藏
- [x] 预设配置 - 一键切换常用设置
- [x] 分子性质计算卡片 - 分子量、氢键计数等
- [x] 背景颜色快捷切换 - 白/黑/灰/透明一键切换

---

## 待开发功能

### 中优先级 - 中等功能

#### 1. 氢键检测与标注
**描述**: 自动检测并显示氢键
**难度**: ⭐⭐ 中
**预计时间**: 4-6小时
**功能**:
- 基于距离/角度检测H-bond
- 虚线标注氢键
- 可过滤弱/强氢键

#### 2. PDB/MOL2文件支持
**描述**: 扩展支持的分子文件格式
**难度**: ⭐⭐ 中
**预计时间**: 4-6小时
**功能**:
- PDB文件导入 (蛋白质/晶体结构)
- MOL2文件导入
- 保存为PDB格式

#### 3. 构象生成
**描述**: 生成多个低能构象
**难度**: ⭐⭐ 中
**预计时间**: 6-8小时
**功能**:
- 使用OpenBabel生成多个构象
- 滑块切换不同构象
- 显示能量信息

#### 4. 响应式移动端适配
**描述**: 优化手机/平板体验
**难度**: ⭐⭐ 中
**预计时间**: 4-6小时
**功能**:
- 触摸手势支持
- 移动端布局调整
- 捏合缩放

#### 5. 表面性质映射
**描述**: 静电势能面(ESP)可视化
**难度**: ⭐⭐ 中
**预计时间**: 6-8小时
**功能**:
- 计算部分电荷
- 静电势能面着色
- 亲疏水性表面

#### 6. 环形/芳香环检测
**描述**: 自动识别并高亮环结构
**难度**: ⭐⭐ 中
**预计时间**: 4-6小时
**功能**:
- 识别芳香环
- 识别五元环、六元环
- 高亮环结构

---

### 高优先级 - 高级功能

#### 7. 分子对接可视化
**描述**: 显示配体-受体结合模式
**难度**: ⭐⭐⭐ 高
**预计时间**: 2-3天
**功能**:
- PDBQT文件支持
- 结合位点显示
- 相互作用标注

#### 8. 药效团可视化
**描述**: 识别和标注药效团特征
**难度**: ⭐⭐⭐ 高
**预计时间**: 2-3天
**功能**:
- 疏水基团
- 氢键供体/受体
- 芳香环
- 正/负电荷

#### 9. 动画控制
**描述**: 分子动画播放控制
**难度**: ⭐⭐⭐ 高
**预计时间**: 1-2天
**功能**:
- 自动旋转开/关
- 振动动画
- 构象过渡动画

#### 10. 多分子对比
**描述**: 并排显示多个分子
**难度**: ⭐⭐⭐ 高
**预计时间**: 2-3天
**功能**:
- 分屏显示
- 同步旋转
- 叠加比较

#### 11. 分享功能
**描述**: 生成分享链接或图片
**难度**: ⭐⭐⭐ 高
**预计时间**: 1-2天
**功能**:
- 生成分享URL (需要后端)
- 嵌入代码生成
- 社交媒体分享

---

## 技术债务

### 性能优化
- [ ] 大分子渲染优化 (>1000原子)
- [ ] 渐进式渲染 (LOD)
- [ ] WebGL性能调优

### 代码质量
- [ ] 单元测试添加
- [ ] ESLint配置
- [ ] 代码文档生成

---

## 版本规划

### v1.2.0 (当前版本) - 2024-01-19
- ✓ 工具提示 (Tooltip)
- ✓ 快捷键面板 (H键)
- ✓ 预设配置 (Presets)
- ✓ 分子性质卡片
- ✓ 背景颜色快捷切换

### v1.3.0 (计划)
- [ ] 氢键检测
- [ ] 构象生成
- [ ] 环检测
- [ ] PDB/MOL2支持

### v2.0.0 (远期)
- [ ] 多分子对比
- [ ] 分子对接
- [ ] 药效团分析
- [ ] 分享功能

---

## 新增功能详细说明

### 工具提示 (Tooltip)
- 鼠标悬停在原子上显示元素符号和序号
- 可通过复选框启用/禁用
- 自动跟随鼠标位置

### 快捷键面板
- 点击⌨️按钮或按H键显示/隐藏
- 显示所有可用快捷键
- 点击遮罩层或X按钮关闭

### 预设配置
- **Default**: 默认Stick样式
- **Medicinal Chemistry**: Ball+Stick + 显示标签
- **Presentation**: Stick + 黑色背景
- **Crystallography**: Sphere + 标签和原子序号

### 分子性质卡片
- **Molecular Weight**: 分子量 (Da)
- **Exact Mass**: 精确质量
- **Heavy Atoms**: 重原子数
- **H-Bond Donors**: 氢键供体数
- **H-Bond Acceptors**: 氢键受体数
- **Rotatable Bonds**: 可旋转键数
- **Atom Composition**: 原子组成图

### 背景颜色快捷切换
- 白色/黑色/灰色/透明
- 一键切换，无需下拉菜单
- 透明背景适合导出PNG

---

## 贡献指南

### 添加新功能
1. 在TODO.md中创建条目
2. 评估难度和预计时间
3. 实现后标记完成
4. 更新README.md

### Bug修复
1. 在GitHub Issues中报告
2. 标记严重程度
3. 修复后关闭Issue

---

最后更新: 2026-01-19
