Files
REVOXELSEG_DICOM/工程分析/实现方案-2026-05-20-02-15-10.md

57 lines
2.2 KiB
Markdown
Raw Permalink 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.
# 实现方案-2026-05-20-02-15-10
## 实现方案文档路径
`工程分析/实现方案-2026-05-20-02-15-10.md`
## 修改目标
缩小“影像与模型融合视角”右下角 XYZ 标识,并将其从静态 SVG 改为随模型位姿和三维场景旋转联动的方向指示器。
## 涉及路径
- `WebSite/src/components/ReverseWorkspace.tsx`
- `工程分析/需求分析-2026-05-20-02-15-10.md`
- `工程分析/实现方案-2026-05-20-02-15-10.md`
- `工程分析/测试方案-2026-05-20-02-15-10.md`
- `工程分析/经验记录.md`
## 技术路线
1. 新增轴向投影数据结构:
- 定义 X/Y/Z 三个方向在屏幕 inset SVG 中的投影向量。
- 提供默认轴向,避免 DICOM/模型未加载时空白。
2. 改造 `CoordinateAxesInset`
- 视觉尺寸由 72px 缩小到约 54px。
- 线段终点、标签位置和透明度由投影数据驱动。
3.`FusionThreeView` 中计算动态方向:
- 在 Three.js animation loop 中让 `fusionRoot``modelPoseGroup` 更新矩阵。
- 读取 `modelPoseGroup.getWorldPosition()``getWorldQuaternion()`
- 将模型局部 X/Y/Z 方向投影到当前 camera 屏幕空间。
- 仅在投影签名变化时更新 React 状态,减少无意义重渲染。
## 执行步骤
- 增加 AxisProjection 类型、默认值和投影辅助函数。
- 改造坐标轴 inset 的 SVG 尺寸和绘制逻辑。
- 在融合视图动画中调用投影计算并传给 inset。
- 执行 `npm run lint``npm run build`
- 追加经验记录、提交、推送并重新部署。
## 兼容性与回滚方案
- 如果动态投影出现异常,默认轴向仍可显示。
- 不修改 DICOM/STL 真实数据、模型位姿状态和实际渲染变换,仅增加可视化辅助。
- 回滚只需恢复 `CoordinateAxesInset` 为静态 SVG。
## 预计文件变更
- `ReverseWorkspace.tsx`:动态坐标轴投影与缩小样式。
- 工程分析文档:新增本次三份文档,更新经验记录。
## 提交与部署策略
- Commit message`2026-05-20-02-15-10 优化融合视角方向标识`
- 显式暂存本次相关文件,避免提交历史删除状态。
- 推送到 Gitea `origin/main`,并使用 `tmux` 会话 `revoxelseg-dicom` 重新部署。