C2.01.1Touch contact centroid设计研究

触摸是面接触,系统需归算为一个点

别名: 面接触 · 触点 · 质心 · contact patch

概念解释

手指按在屏幕上留下的是一片有面积、形状和压力分布的接触斑(contact patch),不是数学意义上的一个点。触摸控制器必须把这片区域归算成单一坐标——常用几何中心或加权质心(centroid)——命中测试、拖拽跟踪、手势识别才能拿到一个可用的输入。这条知识是整组的起点:手指触摸事件里的坐标从来不是"客观的接触位置",而是一次算法归算的输出,后面几条讲的偏移和瞄准误差都建立在这个归算步骤之上。

机制

为什么必须归算成一个点,而不是把整片接触区域原样交给上层?因为几乎所有 UI 框架的事件模型——命中测试、事件冒泡、拖拽状态机——都是围绕单点坐标设计的:按钮的命中判定是"某个坐标在不在这个矩形里",不是"两片区域是否重叠"。如果把整片接触斑原样交给应用层,命中测试就要变成多边形求交问题,而且一旦接触斑跨越两个控件的边界,谁该响应就成了歧义问题。把接触斑归算成一个点,是把这个歧义交给传感器/驱动层用某种确定算法(几何中心、加权质心、经过滤波的估计点)先行解决掉,代价是不可逆的信息丢失:归算完成之后,应用层拿到的只是一个坐标,接触斑本身的面积、形状、方向,除非厂商额外暴露"面积""方向"这类字段,否则已经无法复原。

怎么研究

研究这一步通常需要同时记录原始传感器输出(电容值网格或压力分布图)和系统最终报告的坐标,再比较归算算法在不同接触条件(手指粗细、按压力度、接触角度、屏幕位置)下与某个物理参照真值(例如手指下方预先标记的靶点)之间的偏差。方法论要点:不能只检验报告坐标"是否稳定"——同一根手指反复点同一位置得到几乎相同的坐标,只说明算法是确定性的,不说明它准确;一个带系统性偏移的算法完全可以非常稳定地输出错误答案,稳定性和准确性是两件必须分开验证的事。

边界

不是所有触摸设备都存在这一步归算。电阻屏靠压力使两层导电膜在某处直接接触,物理上天然只产生一个点,不存在"从一片区域里挑一个代表点"的算法步骤,这条知识描述的效应对它不成立。触控笔笔尖的接触面积本身就极小,通常无需复杂的质心估计。归算算法也不是行业统一标准,同一芯片厂商在不同固件版本之间都可能调整代表点的取法,导致同一硬件在系统更新前后出现细微但真实的命中行为差异——这是应用层完全无法感知、也无法控制的一层变量。

怎么落地

  • 把系统报告的触点当作"一次算法估计",而不是手指的真实几何中心;命中测试逻辑不要假设它精确等于视觉图标的中心。
  • 为小目标预留比图标本身更大的命中容差,把归算带来的误差当作设计时必须承受的既定噪声,而不是试图彻底消除的缺陷。
  • 若平台额外暴露了接触面积、方向等原始数据,只把它们用于辅助判断(如手掌误触排除),不要作为核心交互判定的唯一依据——不同设备暴露的字段完整度差异很大。

延伸

  • 同组C2.01.2 质心随手指角度与压力偏移 · C2.01.3 触点位置与用户主观瞄准点不重合
  • 相邻C2.02 最小触达尺寸 · C2.04 胖手指问题
  • 站内检索touch centroid · contact area · hit testing

同组卡片

快捷操作

分享

分享当前页面

ios_share

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