笔划如何匹配
松开绘制按钮时,Input.Observer 分两个阶段决定要运行什么:
- 您绘制的是哪个形状? 笔划会与作用范围内的手势进行评分,最高得分如果达到匹配阈值就会胜出。本页说明这一阶段。
- 在这里哪个操作使用该形状? 检查应用程序组中针对该形状的触发器的修饰键、绘制按钮、区域和配置方案。请参阅作用范围与回退规则。
实时提示对到目前为止绘制的笔划使用完全相同的两个阶段,因此提示总是显示如果您在那一刻松开将会运行的内容。
笔划如何评分
每次比较都会给出 0 到 100 的得分:
- 对笔划稍作平滑处理,以消除手的抖动。
- 沿着笔划的长度将其重采样为固定数量、间隔均匀的点(默认为 36 个)。
- 将两点之间每个短线段的方向,与已保存示例中相同线段的方向进行比较。
- 平均差值就是得分:所有线段方向都相同时为 100,所有线段方向都相反时为 0。
这在绘制时意味着:
| 变化的因素 | 对得分的影响 |
|---|---|
| 大小,或在屏幕上绘制的位置 | 无 |
| 绘制速度 | 无 |
| 方向:从右到左而不是从左到右 | 相反方向的得分接近 0 |
| 旋转:倾斜绘制的形状 | 降低,倾斜越多降得越多 |
| 起点:从顶部或底部开始的圆、顺时针或逆时针 | 每种都是不同的形状 |
| 比例:长脚或短脚的 L | 降低:每个部分在笔划中所占的比例不同 |
有多个示例的手势会与每个示例分别评分。示例评分 决定如何组合这些得分:最佳示例(默认)取最高分;所有示例的平均值 取它们的平均值,因此一个与某个示例接近、但与其他示例相差较远的笔划得分会较低。
哪些形状参与竞争
笔划不会与整个手势库比较,而只与您按下时所在窗口作用范围内的形状比较:
- 拥有该窗口的应用程序组中手势触发器使用的每个形状,以及
- 当该组可以回退到全局时,全局组中手势触发器使用的每个形状(请参阅作用范围与回退规则)。
只要这些组中有任何触发器使用某个形状,该形状就算数,即使该触发器此刻无法运行:其操作已关闭、它限定于另一个配置方案、它需要您没有按下的修饰键,或者它需要另一个绘制按钮或区域。这样的形状仍然可能赢得笔划,然后什么都不会运行。作用范围内没有任何触发器使用的形状永远不会参与竞争,因此在那里永远不会胜出。
胜者
- 得分最高者胜出,前提是它达到或超过匹配阈值。 如果没有任何得分达到阈值,就没有匹配。
- 得分完全相同时: 先遇到的形状胜出:应用程序组自己的形状先于全局组的形状,按该组操作列表的顺序。
- 没有第二选择。 一旦某个形状胜出,就只查找该形状的操作:先在应用程序组中,如果该组会回退,再在全局组中。如果没有符合条件的操作(例如需要 Shift 而您没有按),就什么都不会运行,即使某个得分较低的形状有符合条件的操作也是如此。
作用范围内最接近的形状胜出
由于只有作用范围内的形状参与竞争,一个明显是其他形状的笔划,只要作用范围内最接近的形状达到阈值,仍会与之匹配。
示例:全局组使用三个形状:“向下滑动”“向左滑动”和“对勾”。在一个没有任何应用程序组拥有的窗口上,您绘制了“向上滑动”。“向上滑动”在手势库中,但作用范围内没有任何触发器使用它,因此它不参与竞争。笔划会与作用范围内的三个形状进行评分;如果“对勾”得分最高并达到阈值,就会运行“对勾”的操作。
有两种方法可以阻止这种情况:
- 将作用范围内的该形状绑定到一个什么都不做的操作。 这样它就会参与竞争,对它自己的笔划得分最高,并且不运行任何内容。当 应用程序组 页面发现这种情况时,会显示横幅“此处的笔画可能会运行错误的操作”,其 添加空操作 按钮会为您添加该操作。请参阅应用程序组。
- 提高匹配阈值,使笔划必须更接近某个形状才算数。
手势 页面上该手势自己的 会运行其他操作 卡片会从形状的角度列出相同的情况。
没有匹配时
在任何作用范围内都不匹配任何操作的笔划:
- 不运行任何内容;
- 不会 交还单击:指针下方的窗口什么也收不到;
- 如果您设置了 无匹配 全局事件(例如播放声音),则会运行它。请参阅全局事件。
当到目前为止的笔划不匹配任何内容时,提示会消失,因此没有提示就能提前告诉您结果。
设置
匹配设置位于 手势 页面的 设置 选项卡中的 手势匹配 卡片上。
匹配阈值
匹配阈值 ① 是算作匹配的最低得分:默认为 75,范围从 50(宽松)到 100(严格)。
- 当运行了错误的操作,或者您并非有意作为手势的笔划运行了某些内容时,请 提高 它。这样潦草的笔划会更常常什么都不匹配。
- 当您有意作为手势的笔划经常什么都不匹配时,请 降低 它。这样与您的任何形状都不相似的笔划会更常常被作用范围内最接近的形状拿走。
手势 页面的 绘制以测试 卡片会显示笔划相对于此阈值的得分。请参阅手势库。
笔画平滑质量
笔画平滑质量 ② 在匹配速度和准确性之间进行权衡。每个选项都会同时设置重采样点数和 示例评分:
| 选项 | 点数 | 示例评分 |
|---|---|---|
| 快速 | 24 | 最佳示例 |
| 平衡(默认) | 36 | 最佳示例 |
| 精确 | 64 | 所有示例的平均值 |
点数越多,越能注意到形状的细节。在高级模式下设置的任何其他组合都会显示为 自定义。
高级模式。 该卡片会增加三行:
- 重采样精度:笔划重采样的点数,8 到 128(默认为 36)。
- 示例评分:最佳示例 或 所有示例的平均值。
- 训练建议阈值:一个 0 到 100 的得分(默认为 80),达到或超过该得分时,训练窗口会建议将笔划另存为最接近手势的另一个示例,而不是新手势。它不影响匹配。