56 lines
2.3 KiB
Markdown
56 lines
2.3 KiB
Markdown
# 需求分析 - 2026-05-07-16-53-23
|
||
|
||
## 原始需求摘要
|
||
|
||
用户要求继续严格使用代码编纂工作流处理 3D 模型位姿问题,本次无需人工二次确认:
|
||
|
||
1. 单击旋转 X/Y/Z 效果正常,但旋转后切换 `模型显示` 的预览/标准/精细/超精细时,模型位置会明显偏移。
|
||
2. 使用鼠标拖拽旋转时,旋转中心感觉没有落在模型内部中心。
|
||
3. 将 `重置平移缩放位姿` 的字体颜色改为与 `重置旋转位姿` 一致。
|
||
4. 右下角坐标系需要随着旋转位姿变化而同步旋转。
|
||
|
||
## 业务目标
|
||
|
||
- 让 3D 模型在切换显示细节档位时保持当前视觉中心稳定,不出现跳走或离谱偏移。
|
||
- 让鼠标拖拽旋转围绕模型自身中心进行,而不是绕画布或偏移点旋转。
|
||
- 保持两个重置按钮视觉层级一致。
|
||
- 右下角坐标系成为真实的当前位姿方向参考。
|
||
|
||
## 输入与输出
|
||
|
||
输入:
|
||
|
||
- 用户在 `项目库 - 3D 模型` 中切换模型显示细节档位。
|
||
- 用户通过滑块、快捷按钮、鼠标拖拽调整旋转位姿。
|
||
- 用户点击重置按钮。
|
||
|
||
输出:
|
||
|
||
- 切换 `预览/标准/精细/超精细` 后模型仍围绕同一中心展示。
|
||
- 鼠标拖拽旋转时模型围绕内部几何中心旋转。
|
||
- `重置平移缩放位姿` 与 `重置旋转位姿` 文字颜色一致。
|
||
- 右下角 X/Y/Z 坐标系随 `rotateX/Y/Z` 变化同步旋转。
|
||
|
||
## 影响范围
|
||
|
||
- `WebSite/src/components/ProjectLibrary.tsx`
|
||
- `NativeStlViewer` 中 Three.js 模型中心化、相机、渲染层级、重载逻辑。
|
||
- 鼠标拖拽旋转的状态更新方式。
|
||
- 右下角坐标系 overlay。
|
||
- 整体位姿按钮样式。
|
||
|
||
## 风险点
|
||
|
||
- 若渲染容器重建时没有清理旧 DOM,可能出现 overlay 被清空或事件丢失。
|
||
- 若每个 STL 文件分别中心化,会破坏拼装关系;必须使用所有可见 STL 的整体包围盒中心。
|
||
- 若切换细节档位后继承了旧平移/缩放,但新模型 baseScale 不一致,视觉上仍可能变化,需要保持统一相机距离和 pivot 中心。
|
||
- HTML 坐标轴用 CSS 旋转只近似表达 3D 方位;更可靠方案是用 SVG 根据旋转矩阵投影三轴。
|
||
|
||
## 待确认问题
|
||
|
||
- 本次用户已明确“需求分析、实现方案、测试方案、执行修改都不用人工二次确认”,因此直接执行。
|
||
|
||
## 人工审核状态
|
||
|
||
- 本次免二次确认。
|