56 lines
2.7 KiB
Markdown
56 lines
2.7 KiB
Markdown
# 需求分析-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轴` 单轴拉伸按钮。
|
||
- 默认单轴拉伸会把对应平移自动归零,而不是仅提示用户手动归零。
|