2026-05-20-00-19-47 同步位姿并填充实体映射
This commit is contained in:
54
工程分析/实现方案-2026-05-20-00-19-47.md
Normal file
54
工程分析/实现方案-2026-05-20-00-19-47.md
Normal file
@@ -0,0 +1,54 @@
|
||||
# 实现方案-2026-05-20-00-19-47
|
||||
|
||||
## 实现方案文档路径
|
||||
|
||||
`工程分析/实现方案-2026-05-20-00-19-47.md`
|
||||
|
||||
## 修改目标
|
||||
|
||||
让右侧“逆向分割映射视图”的 Overlay Label Map 实时响应中部模型位姿,并将渲染形态从表面三角面投影升级为闭合实体 Mask 区域填充。
|
||||
|
||||
## 涉及路径
|
||||
|
||||
- `WebSite/src/components/ReverseWorkspace.tsx`
|
||||
- `工程分析/需求分析-2026-05-20-00-19-47.md`
|
||||
- `工程分析/实现方案-2026-05-20-00-19-47.md`
|
||||
- `工程分析/测试方案-2026-05-20-00-19-47.md`
|
||||
- `工程分析/经验记录.md`
|
||||
|
||||
## 技术路线
|
||||
|
||||
1. 在 `VoxelizationMappingView` 新增 `modelPose` 入参,父组件直接传入中部工具栏当前位姿。
|
||||
2. 新增浏览器端刚性变换函数:
|
||||
- 以全局 STL bounds 中心归一化顶点。
|
||||
- 按 `scale -> rotateX -> rotateY -> rotateZ -> translate` 顺序变换。
|
||||
- 将变换后坐标映射到固定 DICOM Overlay 画布坐标系。
|
||||
3. 将原先“靠近切片的三角面填充”改为“切片平面求交”:
|
||||
- 对每个三角面与当前 Z 平面求交。
|
||||
- 收集切面边界线段。
|
||||
4. 将边界线段按扫描线射线法光栅化为实心 Mask:
|
||||
- 逐行收集边界线段与水平扫描线的交点。
|
||||
- 采用奇偶配对填充闭合区域内部像素。
|
||||
- 按构件颜色与透明度写入 Overlay ImageData,并通过离屏画布合成,避免多构件互相覆盖。
|
||||
5. 对边界不完全闭合的极少数抽样场景,使用端点多边形保底填充,避免完全空白。
|
||||
6. 使用 `requestAnimationFrame` 合并高频位姿变化,做到位姿滑条拖动时实时刷新。
|
||||
7. 更新右侧状态文案,显示实心 Mask 像素数量和参与构件数量。
|
||||
|
||||
## 兼容性与回滚方案
|
||||
|
||||
- 不修改后端 API,不影响 DICOM preview、STL preview 和导出接口。
|
||||
- 如果新填充算法异常,可回退到上一版 `drawVoxelOverlayLayer`。
|
||||
- 如果某个构件没有形成闭合区域,只影响该构件 Overlay,不影响 Base Layer 和其他构件。
|
||||
|
||||
## 预计文件变更
|
||||
|
||||
- `ReverseWorkspace.tsx`:新增位姿变换、切面求交、Mask flood fill、Overlay rAF 重绘。
|
||||
- 新增本次三份工程文档。
|
||||
- 更新 `经验记录.md`。
|
||||
|
||||
## 提交与部署策略
|
||||
|
||||
- 执行 `npm run lint` 与 `npm run build`。
|
||||
- 重新部署 `tmux` 会话 `revoxelseg-dicom`。
|
||||
- 提交信息:`2026-05-20-00-19-47 同步位姿并填充实体映射`
|
||||
- 使用已验证的 Gitea 临时凭据方式推送。
|
||||
Reference in New Issue
Block a user