From b6e6ace233058965d61841874f274c30c02cedd7 Mon Sep 17 00:00:00 2001 From: admin <572701190@qq.com> Date: Sun, 24 May 2026 19:19:11 +0800 Subject: [PATCH] =?UTF-8?q?2026-05-24-19-11-30=20=E8=B0=83=E6=95=B4?= =?UTF-8?q?=E4=BD=8D=E5=A7=BF=E5=BE=AE=E8=B0=83=E6=AD=A5=E8=BF=9B=E4=B8=BA?= =?UTF-8?q?0.001?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Docker部署/README.md | 2 +- WebSite/src/components/ProjectLibrary.tsx | 17 ++++--- WebSite/src/components/ReverseWorkspace.tsx | 8 +-- 工程分析/实现方案-2026-05-24-19-11-30.md | 54 +++++++++++++++++++++ 工程分析/测试方案-2026-05-24-19-11-30.md | 46 ++++++++++++++++++ 工程分析/经验记录.md | 14 ++++++ 工程分析/需求分析-2026-05-24-19-11-30.md | 44 +++++++++++++++++ 7 files changed, 173 insertions(+), 12 deletions(-) create mode 100644 工程分析/实现方案-2026-05-24-19-11-30.md create mode 100644 工程分析/测试方案-2026-05-24-19-11-30.md create mode 100644 工程分析/需求分析-2026-05-24-19-11-30.md diff --git a/Docker部署/README.md b/Docker部署/README.md index 5603dcc..f2a4acc 100644 --- a/Docker部署/README.md +++ b/Docker部署/README.md @@ -13,7 +13,7 @@ 当前 Docker 构建会同步包含以下能力: - 二维逆向分割映射按实体填充显示,rib、skin 等薄壳或细长构件会做局部实体化兜底,导出的分割 Label Map 也按填充区域写入。 -- 模型位姿支持以模型中心沿 X/Y/Z 轴镜像翻转,保存、项目库预览和导出均沿用该位姿。 +- 模型位姿支持以模型中心沿 X/Y/Z 轴镜像翻转,平移和缩放支持 `0.001` 级微调,保存、项目库预览和导出均沿用该位姿。 - “构件分别导出”会把所有构件 NIfTI 文件集中到导出包内的 `segmentation-parts/` 目录。 - 项目库 DICOM 首页支持滚轮缩放、拖拽平移和位置重置。 - 项目库与工作区的 DICOM 切片编号按医学影像顺序显示,滑条使用非进度条样式。 diff --git a/WebSite/src/components/ProjectLibrary.tsx b/WebSite/src/components/ProjectLibrary.tsx index b4bbbac..3e1aeb6 100644 --- a/WebSite/src/components/ProjectLibrary.tsx +++ b/WebSite/src/components/ProjectLibrary.tsx @@ -126,6 +126,9 @@ const modelPoseLimits: Record = { scale: { min: 0.5, max: 2.5 }, }; const modelPoseStepPrecision: Partial> = { + translateX: 3, + translateY: 3, + translateZ: 3, scale: 3, }; @@ -2136,16 +2139,16 @@ export default function ProjectLibrary({ { key: 'rotateX' as const, label: '旋转 X', min: -180, max: 180, step: 1, value: modelPose.rotateX, minus: '-90°', plus: '+90°', delta: 90 }, { key: 'rotateY' as const, label: '旋转 Y', min: -180, max: 180, step: 1, value: modelPose.rotateY, minus: '-90°', plus: '+90°', delta: 90 }, { key: 'rotateZ' as const, label: '旋转 Z', min: -180, max: 180, step: 1, value: modelPose.rotateZ, minus: '-90°', plus: '+90°', delta: 90 }, - { key: 'translateX' as const, label: '平移 X', min: -2, max: 2, step: 0.05, value: modelPose.translateX, minus: '-X', plus: '+X', delta: 0.25 }, - { key: 'translateY' as const, label: '平移 Y', min: -2, max: 2, step: 0.05, value: modelPose.translateY, minus: '-Y', plus: '+Y', delta: 0.25 }, - { key: 'translateZ' as const, label: '平移 Z', min: -2, max: 2, step: 0.05, value: modelPose.translateZ, minus: '-Z', plus: '+Z', delta: 0.25 }, - { key: 'scale' as const, label: '缩放', min: 0.5, max: 2.5, step: 0.005, value: modelPose.scale, minus: '-0.005', plus: '+0.005', delta: 0.005 }, + { key: 'translateX' as const, label: '平移 X', min: -2, max: 2, step: 0.001, value: modelPose.translateX, minus: '-0.001', plus: '+0.001', delta: 0.001 }, + { key: 'translateY' as const, label: '平移 Y', min: -2, max: 2, step: 0.001, value: modelPose.translateY, minus: '-0.001', plus: '+0.001', delta: 0.001 }, + { key: 'translateZ' as const, label: '平移 Z', min: -2, max: 2, step: 0.001, value: modelPose.translateZ, minus: '-0.001', plus: '+0.001', delta: 0.001 }, + { key: 'scale' as const, label: '缩放', min: 0.5, max: 2.5, step: 0.001, value: modelPose.scale, minus: '-0.001', plus: '+0.001', delta: 0.001 }, ].map((item) => ( -
+
{item.label}