Pārlūkot izejas kodu

docs(issue-52): record camera flight animation

ChenJZ 1 dienu atpakaļ
vecāks
revīzija
1a10df4a4c

+ 12 - 0
.scratch/cockpit-shell-panel-layout/issues/52-untitled.md

@@ -143,6 +143,18 @@ AI 不代劳的原因:`AGENTS.md` 禁止自动 build/dev/浏览器截图;后
 
 **验证**:`t52-device-pick`、`t52-facility-relations`、`t52-device-plan`、`t52-device-source`、`t55-detail-usability`、`t55-device-loading`、`t56-real-water-device`、`t23-click-flow`、`t23-sfc-compile`、`t09-point-status` 与整套 12 脚本全部通过。按 AGENTS 未跑 build/dev/browser。
 
+### 2026-10-22 三次反馈:点击设备后的镜头定位运动效果(已实现,`0d844bb`)
+
+维护者:「点击点位后的镜头定位运动效果也需要实现。」此前 `focusDevice` 是直接改写 `target`/`distance` 再重绘 —— **瞬移**,没有运动过程。
+
+实现:`FLIGHT_MS=620ms` 逐帧缓动(ease-in-out cubic),从当前 `target`/`distance` 插值到目标并每帧重绘。取消策略:用户 `pointerdown` 拖拽或滚轮接管镜头时立即 `cancelFlight()`,销毁时同样取消,不与用户抢相机。
+
+**顺带修掉一个定位漂移**:目标点原先取「设备组整体包围盒」中心,而图标是按屏幕像素恒定尺寸缩放的——飞行途中图标变大,包围球中心随之移动,镜头会「飘」。改为取**稳定几何**(`device-body`)的包围球心。
+
+**可注入接缝**:`scheduleFrame` / `now` 两个参数,使脱浏览器回归能逐帧推进而不是只看终态。
+
+`t52-camera-flight.mjs` 断言:①受理瞬间不瞬移且已排帧;②半程已移动但未到终点(证明是连续运动);③到期镜头方向正对设备中心(用方向点积,不能用距离——`lookAt` 只取单位向量);④拖拽接管后不再排新帧;⑤销毁后停止推进。全套回归通过。
+
 Status: ready-for-human
 Assignee: codex
 Type: task