2026-06-23-13-38-48 新增逆向工作区单轴拉伸

This commit is contained in:
2026-06-23 13:54:15 +08:00
parent 1e044fb349
commit 5a9d09a5bf
9 changed files with 401 additions and 42 deletions

View File

@@ -0,0 +1,55 @@
# 需求分析-2026-06-23-13-38-48
## 开始时间
2026-06-23-13-38-48
## 原始需求摘要
用户指出“逆向工作区”现有 `X拉伸``Y拉伸``Z拉伸` 都是等比例拉伸,希望新增一种可直接沿某一个轴拉伸模型的方式。该方式仍要求旋转 X/Y/Z 为 0 或 90 度整数倍,并且拉伸某轴时对应的平移 X/Y/Z 为 0后续缩放、自动微调匹配工作区都应使用新拉伸后的模型。
## 业务目标
- 在保留现有等比例自动拉伸的基础上,新增单轴非等比例拉伸能力。
- 单轴拉伸后的模型位姿要成为统一数据源,后续缩放、保存、导出、逆向分割映射和自动微调匹配都沿用该位姿。
- 保持旧项目和旧位姿数据兼容,旧数据没有单轴拉伸字段时按 `1` 处理。
## 输入与输出
- 输入:当前 `WebSite/src/components/ReverseWorkspace.tsx` 的拉伸交互、`ModelPose` 类型、`server.ts` 位姿归一化/导出/自动匹配逻辑、项目库预览逻辑。
- 输出:新增轴向拉伸系数、逆向工作区单轴拉伸按钮和状态反馈、前后端统一识别并应用单轴拉伸后的位姿。
## 影响范围
- 前端类型与组件:
- `WebSite/src/types.ts`
- `WebSite/src/components/ReverseWorkspace.tsx`
- `WebSite/src/components/AutoMatchWorkspace.tsx`
- `WebSite/src/components/ProjectLibrary.tsx`
- 后端:
- `WebSite/server.ts`
- 工程文档:
- 本次需求分析、实现方案、测试方案
- `工程分析/经验记录.md`
## 关键约束
- 必须按 `工程分析/代码编纂工作流.md` 执行。
- 单轴拉伸启用条件:
- 旋转 X/Y/Z 均为 0 或 90 度整数倍。
- 拉伸 X/Y/Z 时,对应平移 X/Y/Z 为 0。
- 新增字段必须向后兼容,不破坏已有项目状态、位姿 JSON、自动匹配结果和导出包。
- 自动匹配可继续只微调平移与统一缩放,但评分和结果展示必须基于单轴拉伸后的模型。
## 风险点
- 前端三维视图和二维映射如果使用不同变换顺序,会导致所见与导出/自动匹配不一致。
- 后端导出和自动匹配若未同步新增轴向拉伸字段,会出现页面正确但结果错误。
- 旧保存位姿缺少新字段时,如果归一化不完整,可能导致 `NaN` 或类型检查失败。
- 单轴拉伸按钮过多可能挤压现有工具栏,需要保持紧凑可读。
## 待确认问题或默认假设
- 默认将新增单轴拉伸理解为 DICOM/融合视图坐标系下的 X/Y/Z 非等比例拉伸。
- 默认保留现有 `X拉伸/Y拉伸/Z拉伸` 等比例行为,并新增另一组 `X轴/Y轴/Z轴` 单轴拉伸按钮。
- 默认单轴拉伸会把对应平移自动归零,而不是仅提示用户手动归零。