fix(iced/feedback): 复审 r3 的 A/B/D/E/F 项 + C 项待 rebase 后改 view_at
(先落一个中间提交,rebase main 之后再按 tower 的修正把空态图标改成 32/view_at)
This commit is contained in:
1 parent
5d9e75efd8
commit
a4cdd61fe5
12 files changed
+325
-108
No files matched your search
@@ -18,13 +18,16 @@
|
||||
//! 所以 [`KeyPoint::easing`] 的语义就是段起点的缓动;最后一点之后一律**保持末值**
|
||||
//! (Compose 对未覆盖的区间就是保持,这也是「段跑到头以后停在满格」的来源)。
|
||||
//!
|
||||
//! ## 首点必须在 `ms = 0`(复审 P1-B 的教训)
|
||||
//! ## 首点的两种合法情况(复审 P1-B 的教训)
|
||||
//!
|
||||
//! Compose 在 keyframes **缺 0ms 关键帧**时会自己补一个 `t = 0`、值 = 动画**初值**的点
|
||||
//! (`VectorizedKeyframesSpec` 构造里 `Map.containsKey(0) == false` 就 `timestamps.add(0, 0)`,
|
||||
//! 且 `playTime <= 0 → startValue`)。本求值器不猜:首点不在 0 就 `debug_assert` 炸,
|
||||
//! 逼调用方把那个点显式写出来(环形旋转就漏过这一点:`ROTATION` 首点是 300ms/90°,
|
||||
//! 于是 `[0, 0.05)` 被恒定为 90°,周期末尾 360° → 下周期 90° 还会瞬时倒跳 270°)。
|
||||
//! 且 `playTime <= 0 → startValue`)。本求值器对这种情况按「保持首值」处理,而它**只等价于**
|
||||
//! Compose 的「初值」—— 所以守卫是「首点不在 0ms **且** 首值 ≠ 0」才 `debug_assert` 炸:
|
||||
//!
|
||||
//! - `SEG_TAIL_1/2`(首点 250/900ms、首值 **0**)与 Compose 的「初值 0」等价,**合法**;
|
||||
//! - `ROTATION` 曾经首点 300ms/**0.25**:`[0, 0.05)` 被恒定成 90°、周期末尾 360° → 下周期
|
||||
//! 90° 瞬时倒跳 270°。现在首点显式补成 0ms/0°。
|
||||
|
||||
use unlucky_design::motion::Easing;
|
||||
|
||||
|
||||
Reference in new issue
Block a user