2026-05-04-05-41-22 增强3D实体预览和位姿控制

This commit is contained in:
2026-05-04 05:50:06 +08:00
parent 4922c2d991
commit 1cc750b7e4
7 changed files with 444 additions and 24 deletions

View File

@@ -0,0 +1,73 @@
# 测试方案 - 2026-05-04-05-41-22
## 静态检查
- 执行 `npm run lint`,确认 TypeScript 类型检查通过。
- 执行 `npm run build`,确认生产构建通过。
## 集成测试
- 调用 STL preview API
- `limit=6000`
- `limit=16000`
- `limit=36000`
- 确认返回顶点数量随实体化程度增加,且响应不报错。
- 调用 DICOM preview API确认连续请求不同 slice 时均可返回合理 `slice/total/width/height`
## 关键业务场景验证
### 3D 模型页
- 默认进入后模型可见。
- 实体化程度从“预览”切换到“标准/精细”后,模型表面更连续,而不是纯点云感。
- 开启“整体白色实体”后,显示效果接近参考图的灰白实体模型。
- 调整旋转 X/Y/Z、平移 X/Y/Z、缩放后模型位姿即时变化。
- 点击重置后,位姿恢复默认。
- 隐藏/显示单个 STL、调整颜色、透明度仍正常。
- WebGL 不可用时二维兜底仍可见,不出现空白画布。
### DICOM 切片页
- 长按上箭头时,切片编号连续增加,图像连续变化。
- 长按下箭头时,切片编号连续减少,图像连续变化。
- 快速连续切换时,不出现旧请求覆盖新切片的错帧。
- 到达首帧/末帧时不越界。
### 逆向工作区
- 顶部全局 header 仍显示“逆向工作区”。
- 页面内容区不再重复显示第二个“逆向工作区”。
- 页面内容区不再出现上方重复“当前项目xxx”副标题。
- 项目标签行字号变大且显示当前项目、DICOM 数量、STL 数量。
## 医学影像数据相关边界验证
- DICOM 连续切片时保留当前 plane、mode、rotation 状态。
- STL 实体化程度不改变各构件的原始相对空间关系,只改变抽样密度和显示材质。
- 位姿控制作用于整体模型 group不改变单个 STL 的相对拼装位置。
## 回归风险
- 高实体化程度可能提升渲染压力,需要在 UI 中保留“预览”档位。
- DICOM 连续请求可能造成响应乱序,需要请求序号保护。
- 逆向工作区删除标题后仍需保证用户知道当前处于哪个页面,依赖全局 header。
## 人工审核状态
用户已回复“确认方案”,按本测试方案执行验证。
## 执行结果
- `npm run lint`:通过。
- `npm run build`通过Vite 仍提示 bundle 超过 500 kB为现有 Three.js/Recharts 依赖带来的非阻断警告。
- STL preview API 验证:
- `limit=6000`:返回 `5795` 个抽样三角面、`52155` 个顶点数值。
- `limit=16000`:返回 `8692` 个抽样三角面、`78228` 个顶点数值。
- `limit=36000`:返回 `17384` 个抽样三角面、`156456` 个顶点数值。
- DICOM 连续切片 API 验证:`slice=120~124` 均返回 `512x512``total=300`,文件名按 `121.dcm``125.dcm` 连续变化。
- 无头 Chrome 前端验证:
- 3D 模型页存在“模型显示、预览、标准、精细、白色实体、整体位姿、旋转 X、平移 Z、缩放”等控件。
- WebGL 不可用场景仍生成二维预览 canvas尺寸 `1172x567`
- 逆向工作区正文不再重复页面标题:`逆向工作区` 只出现 1 次。
- `当前项目:头部 CT 模型逆向体素化演示` 只出现 1 次,并保留 `DICOM 300``STL 9`
- 已重新部署到 `http://192.168.3.11:4000/`tmux 会话:`revoxelseg-dicom`