C3.09.1Spread and pinch as one bidirectional gesture设计研究
张开与捏合是同一手势的两个方向
别名: 双指张开 · unpinch · 反向捏合
概念解释
两指张开(spread / unpinch)把画面拉近,两指靠拢把画面推远。它们不是两套手势词汇,而是同一条间距通道上的正负方向。识别器、锚点、滤波、抬起后的倍数保留,都应对称。把放大做成另一种双指套路(例如必须先双击再拖),等于拆掉这条双向轴。
机制
span 的变化率带符号:增大则倍数上升,减小则下降。肌肉记忆也是双向的——看不够近就再张开一点,看太近了就合拢,不必换手势。若放大走一套阈值、缩小走另一套,或放大需要额外武装,人在连续调节时会在中途卡住。对称还包括失败态:张到头和捏到头都应该弹性触边,而不是一边回弹一边死锁。方向在接触中途可以翻转:一次按住里先张开再合拢,应是同一条 scale 曲线上的来回,而不是被切成两次独立手势。
怎么研究
让人把图先放大到细节再缩回整体,只许用双指,不许抬手换工具。记录中途改方向的次数、改方向时倍数是否跳变、是否有一次方向被系统忽略。把“张开”和“捏合”注册成两个独立 recognizer 作为对照,通常会在方向翻转处丢事件。眼动可以看人是否在改方向前去找按钮,那说明他们不相信这是同一条轴。
边界
某些无障碍开关把“放大”做成单指双击拖动,缩小要反向拖,那是另一条单指轴,不应再同时注册一套不对称的双指。游戏里的双指只张开释放技能、合拢无效果,那是技能设计不是视图缩放。两指旋转若优先占用了双指接触,张开可能被吃成转角,双向缩放轴在旋转优先的画布上要让路或解耦。
怎么落地
- 用同一个 span 驱动倍数的升降;一次接触里允许方向来回,不要在翻转时重启手势。
- 放大和缩小共用同一套触边回弹和松手保留,不要一边粘滞一边瞬移。
- 请人在一次双指按住中把图拉近再推远。倍数应连续过峰,不应在改方向时跳回 100% 或卡住。若他们抬手换了“放大工具”,双向轴没有被感知到。