C3.08.2Pinch zoom anchor at midpoint设计研究
缩放锚点取两指中点,保证捏合处内容不漂移
别名: 缩放原点 · pinch centroid · 锚点漂移
概念解释
缩小围绕哪一点发生,决定画面会不会从指缝里逃走。把两指中点(或接触质心)当成缩放锚点,捏合处的内容在倍数变小时仍留在两指之间。锚点若钉在视口中心或左上角,人盯着的那块会在缩小过程中滑向别处,像地图自己在挪。
机制
缩放是相似变换,必须选一个不动点。选中点,则两指连线的中点在内容坐标里保持不动,缩小表现为周围景物向中点收拢,符合“我按着的这里是焦点”。选视口中心,则指下的建筑会向屏幕中央飞,人要边捏边追。捏合缩小尤其敏感:倍数下降时视野迅速变大,锚点误差会被放大成整块地标的平移,看起来像误触发了平移。中点本身也在动(两指一边捏一边挪),所以每一帧要用当帧中点,而不是按下时的中点冻住——冻住的锚点会在手指平移后把内容从指下拽走。
怎么研究
在图上标一个点,让人把两指按在它两侧再捏拢,测量该点相对中点的漂移。自变量:锚在中点、锚在视口中心、锚在按下时冻住的中点。因变量为漂移像素、为了把点追回来额外做的平移、主观“图在滑”。高速摄像看中点与地标是否同向同速。
边界
两指严重不对称(一指几乎不动、另一指划大弧)时,几何中点与人以为的“按着的地方”会分家,质心或较稳的那一指可能更接近主观锚点。缩放若与旋转耦合,不动点还要同时满足转角,中点仍是最省事的选择。键盘或按钮缩放没有双指中点,锚点应改用视口中心或当前选区,不能假装有一个捏合中点。
怎么落地
- 每帧用两指当前位置的中点作锚,缩小围绕它发生;同时把中点平移加进视口,这样边捏边挪才不会撕开黏着。
- 不要把锚点写死在布局左上或屏幕正中,除非这是按钮缩放。
- 把两指标在一座桥的两端再捏拢。桥应留在两指之间变小。若桥滑到屏幕另一侧,锚点就钉错了。