3.6 KiB
3.6 KiB
需求分析:逆向工作区视图比例、白底控件、平移缩放与三维拉伸
开始时间:2026-05-20-15-54-46
原始需求摘要
用户要求继续优化逆向工作区:
- “DICOM 切片位置”展示效果要类似“DICOM 切片范围”,白底、格式统一,不放入 DICOM 图像中,放到图片右侧;
Overlay Label Map也不要放在图片中。 - 左侧“模型显示/影像与模型融合视角”略微变小、变窄,为右侧视图留出更多空间。
- 右侧 DICOM 影像支持鼠标滚轮放大缩小、鼠标拖拽移动;“逆向分割映射视图”增加位置重置按钮;“影像与模型融合视角”右侧也增加位置重置按钮。
- 逆向工作区底部三列不平行,需要拉长“逆向分割映射视图”和“可视化工具栏”,让底部对齐。
- “影像与模型融合视角”右侧增加自动拉伸按钮;仅当旋转 XYZ 都为 0 或 90 的整数倍时可用;按特定方向对模型做三维等比例拉伸。当前初始状态若存在自动拉伸导致 DICOM 与模型顶/底不在同一平面,后续以手动选择拉伸方向为准,不再默认自动拉伸。
业务目标
- 让右侧二维映射视图的控件与中部工具栏控件风格一致,避免深色大面板压缩或遮挡影像。
- 增强二维映射视图审查能力,支持缩放、拖拽和平移复位。
- 增强三维融合视图审查能力,提供视角复位和受约束的模型等比例拉伸操作。
- 优化三列布局比例和底部对齐,使右侧影像审查区更宽、更稳。
输入与输出
输入:
WebSite/src/components/ReverseWorkspace.tsxWebSite/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 体范围估算缩放,不在初始加载时自动执行。