topfans/docs/superpowers/specs/2026-05-22-lenticular-gyro-optimization-design.md

2.1 KiB
Raw Blame History

光栅卡陀螺仪交互优化设计方案

日期: 2026-05-22 文件: docs/superpowers/specs/2026-05-22-lenticular-gyro-optimization-design.md


1. 问题描述

设备使用陀螺仪倾斜查看光栅卡时,图片在左右视图之间快速来回切换,无法稳定在某一侧。

期望行为:

  • 设备居中(不倾斜)→ 显示中性图
  • 往左倾斜 → 稳定显示左视图
  • 往右倾斜 → 稳定显示右视图

当前行为:

  • 轻微倾斜就触发切换,且图片在左右之间来回振荡
  • 没有平衡点让图片稳定

2. 根本原因

原因缺少中性阈值区Dead Zone

陀螺仪数据直接映射到图片切换阈值,没有任何"容忍区"。

当设备略微偏离中心时:

  • gamma 值微小的正负变化
  • 直接导致 x 方向变化
  • 触发 opacity 切换

加上陀螺仪本身的噪声和设备轻微晃动,导致图片不断在左右之间来回切换。


3. 修复方案

文件: frontend/composables/useHolographicPreview.js

修改:增大中性阈值区

当前代码已有 dead zone 判断逻辑,只需增大 db 系数即可:

// 第79行
const db = 0.08 * dead  // 从 0.016 改为 0.08

说明: 增大 db 系数 = 中性区变宽 = 更难触发切换 = 图片更稳定


4. 参数调整

参数 当前值 修改后 说明
db (dead zone) 0.016 0.08 中性区阈值,越大越难触发切换

建议值范围: 0.05 ~ 0.12

  • 值越大:中性区越宽,越稳定但响应越慢
  • 值越小:越敏感,但容易误触发

5. 验收标准

测试场景 期望结果
设备静止居中 显示中性图,稳定不动
轻微倾斜 保持中性,不触发切换
明显往左倾斜 显示左视图,稳定
明显往右倾斜 显示右视图,稳定
从倾斜缓慢回到居中 平滑过渡,无振荡

6. 影响范围

  • 修改文件:frontend/composables/useHolographicPreview.js
  • 不影响触摸滑动交互
  • 不涉及后端或数据库