C2.19.2pinch failure from merged contacts设计研究

合并会让捏合缩放等双指手势在起始阶段失效

别名: 捏合失败 · 起始合并 · pinch onset

概念解释

捏合、旋转、两指滚动都要在手势起始几帧拿到两个稳定 id,才能记下基线距离或夹角。若两指落下时已经并成一个触点,识别器看见的是单指按下。等手指分开、斑块分裂,基线已经被污染:初始间距接近零,随后的任何分开都会被读成巨大的放大。地图、图片查看器里“刚下手就暴涨”往往是这个起始合并,不是缩放曲线写错。

机制

双指手势的第一件事是采样两指坐标、锁定变换原点。合并让这一步得不到第二坐标,识别器要么不进入捏合态,要么用单指位移去碰单击/拖动的阈值。用户的意图是缩放,系统的仲裁却把它当成拖动候选。等到分裂发生,第二 id 带着一个突然冒出来的坐标进入;若识别器此时才锁基线,基线短得不像两根手指。相对变化 Δd/d0 在 d0≈0 时爆炸,于是第一帧缩放因子离谱。有的实现选择“直到两 id 稳定 50 ms 才锁基线”,能避开爆炸,但用户会感觉捏合起手迟钝。

怎么研究

让被试从并拢落指再分开做捏合,对比从自然间距落下的控制组。自变量是起始指距、是否先接触后移动、以及识别器锁基线的策略(首帧 / 稳定窗口 / 最小间距门闩)。因变量是手势被识别为捏合还是拖动的比例、第一帧缩放因子、以及用户是否报告“一碰就放大”。把相机里的真实指距和事件里的 id 数对齐,才能证明失败发生在起始合并而不是后续跟踪丢失。

边界

已经稳定的两指再靠拢,是进行中的缩小,不是起始合并;那条路径有有效基线。系统级的辅助缩放(双击放大、按钮加减)不依赖双 id,合并伤不到它们。单指双击拖动缩放走另一套状态机,起始合并与它无关。非常大的目标上,用户习惯把两指分得很开,起始合并很少见;问题集中在手机单手捏合、儿童手、以及把缩放手势做在窄工具条里的界面。

怎么落地

  • 捏合识别器设最小基线:两 id 间距低于本机合并临界的若干倍时,不锁缩放,也不把单指位移交给拖动,直到分开或超时取消。
  • 给图片和地图提供加减按钮或双击放大,作为两指起始失败时的可见出路。
  • 用“并拢落下再分开”作为手势 QA 的必测,而不只测从舒适间距开始的标准捏合。

延伸

  • 同组C2.19.1 两指靠得过近时可能被系统识别合并为一个触点 · C2.19.3 触点从合并状态分裂时坐标可能出现跳变 · C2.19.4 分裂判定的阈值随传感器精度和手指接触面积而不同
  • 相邻C3.08 捏合缩小 · C3.09 张开放大
  • 站内检索pinch onset · baseline distance · contact merging

同组卡片

快捷操作

分享

分享当前页面

ios_share

https://hci.top/zh/handbook/C2.19.2