65 lines
3.6 KiB
Markdown
65 lines
3.6 KiB
Markdown
# 需求分析:逆向工作区视图比例、白底控件、平移缩放与三维拉伸
|
||
|
||
开始时间:`2026-05-20-15-54-46`
|
||
|
||
## 原始需求摘要
|
||
|
||
用户要求继续优化逆向工作区:
|
||
|
||
1. “DICOM 切片位置”展示效果要类似“DICOM 切片范围”,白底、格式统一,不放入 DICOM 图像中,放到图片右侧;`Overlay Label Map` 也不要放在图片中。
|
||
2. 左侧“模型显示/影像与模型融合视角”略微变小、变窄,为右侧视图留出更多空间。
|
||
3. 右侧 DICOM 影像支持鼠标滚轮放大缩小、鼠标拖拽移动;“逆向分割映射视图”增加位置重置按钮;“影像与模型融合视角”右侧也增加位置重置按钮。
|
||
4. 逆向工作区底部三列不平行,需要拉长“逆向分割映射视图”和“可视化工具栏”,让底部对齐。
|
||
5. “影像与模型融合视角”右侧增加自动拉伸按钮;仅当旋转 XYZ 都为 0 或 90 的整数倍时可用;按特定方向对模型做三维等比例拉伸。当前初始状态若存在自动拉伸导致 DICOM 与模型顶/底不在同一平面,后续以手动选择拉伸方向为准,不再默认自动拉伸。
|
||
|
||
## 业务目标
|
||
|
||
- 让右侧二维映射视图的控件与中部工具栏控件风格一致,避免深色大面板压缩或遮挡影像。
|
||
- 增强二维映射视图审查能力,支持缩放、拖拽和平移复位。
|
||
- 增强三维融合视图审查能力,提供视角复位和受约束的模型等比例拉伸操作。
|
||
- 优化三列布局比例和底部对齐,使右侧影像审查区更宽、更稳。
|
||
|
||
## 输入与输出
|
||
|
||
输入:
|
||
|
||
- `WebSite/src/components/ReverseWorkspace.tsx`
|
||
- `WebSite/src/index.css`
|
||
- 复用逆向视图的 `WebSite/src/components/ProjectLibrary.tsx`
|
||
|
||
输出:
|
||
|
||
- 右侧“DICOM 切片位置”改为白底控制卡片,放在影像右侧外部。
|
||
- `Base DICOM` / `Overlay Label Map` 信息移出影像内部,以独立白底图层状态展示。
|
||
- 二维映射视图支持滚轮缩放、拖拽平移、位置复位。
|
||
- 三维融合视图支持位置复位。
|
||
- 模型位姿增加手动三维等比例拉伸控制,旋转角度满足 90 度倍数时可用。
|
||
- 左中右布局比例调整,右侧视图获得更多宽度,底部保持对齐。
|
||
|
||
## 影响范围
|
||
|
||
- 逆向工作区三列主布局。
|
||
- `FusionThreeView` 三维场景交互与工具按钮。
|
||
- `VoxelizationMappingView` 二维映射视图交互、控件样式和白底布局。
|
||
- 项目库中复用的两类视图会同步获得复位/缩放等能力。
|
||
|
||
## 关键约束
|
||
|
||
- 不改变 DICOM/STL 原始数据和导出算法。
|
||
- 不默认自动拉伸模型,避免再次引入初始错位;自动拉伸由用户手动触发。
|
||
- 三维拉伸只在 XYZ 旋转均为 90 度整数倍时启用。
|
||
- 二维影像缩放和平移只影响浏览视口,不改变切片索引、分割映射和导出结果。
|
||
- 不提交历史删除状态、软著文档和无关运行态文件。
|
||
|
||
## 风险点
|
||
|
||
- Three.js 场景复位需要在组件内部暴露状态触发,避免影响原有 OrbitControls。
|
||
- 二维 Canvas 缩放和平移需要同时作用于 Base DICOM 和 Overlay Label Map,保持叠加严格同步。
|
||
- 三维模型拉伸方向若与医学物理坐标不完全一致,需要在 UI 上做成“手动校正”而非默认自动修正。
|
||
- 调整三列比例可能影响较小视口下的滚动和可用宽度。
|
||
|
||
## 默认假设
|
||
|
||
- “模型显示”指左侧“影像与模型融合视角”的三维模型/融合视图区域。
|
||
- “自动拉伸”本轮实现为用户手动点击的等比例缩放操作,按 X/Y/Z 方向选择基于 DICOM 体范围估算缩放,不在初始加载时自动执行。
|