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