外缘旋转切页

把物理表圈变成页面导航
指针在 r≥185 的外缘起手后,累计切向旋转每达到 45° 提交一个 detent。一次长拖可以跨多页,视觉弧保留未满一格的 residual。
捕获规则
- 466×466 圆心为
(233,233)。 r ≥ 185可以开始 edge rotation;这给表圈内侧留出约 48 px 宽容区。- 起手后外缘事务优先于页面主动作,不因途中进入中心而退化成点击。
- 总移动达到 12 px 后 tap 取消永久锁存。
Detent 累计
每个 pointer move 计算相邻极角的 signed delta,累加到 residual;达到 ±π/4 就提交一次页面切换并扣除一格,循环处理,所以单个样本也能跨多个 detent。
ts
while (abs(residual) >= PI / 4) {
switchPage(sign(residual))
residual -= sign(residual) * PI / 4
}离环重入
离开有效 annulus 时把事务标记为 rebasePending。重新进入的第一个点只更新参考角,不施加 delta;否则穿过圆心或从屏外回来会被极角跳变解释成近 π 的旋转。
反馈
代码绘制蓝色结构弧、黄色当前 detent 与红色尾迹;每跨一格可以播放短音/触感(板上无振动马达,因此实体只保留音频与视觉)。不足一格的拖动只回弹,不执行页面主动作。
