采用二维定位设备产生一维信号的方法及装置的制作方法

文档序号:2610354阅读:589来源:国知局
专利名称:采用二维定位设备产生一维信号的方法及装置的制作方法
技术领域
本发明整体涉及用于产生一维GUI输入,例如滚动信号的二维定位设备,例如计算机鼠标。

背景技术
图形用户界面,或者GUI已经成为人与个人计算机交互的标准范例。典型的GUI包括用于显示图形元素的屏幕和用于与这些元素交互的定位设备。定位设备的主要功能是通过将关注指示符(例如光标)移动到所期望的元素上,来在多个同时显示的GUI元素中进行选择。定位设备的第二个功能在于携带按钮或者与获得关注点的GUI元素进行交互的其他控制。例如,通常通过在显示屏幕上将光标移动到按钮的可视像上,并按下与该定位设备相关联的物理按钮,来“按下”GUI的“按钮”。
最重要的GUI任务之一是电子文档的空间导航,通常通过与沿着文档周边的滚动条进行交互来执行所述空间导航。图1示出了典型的具有相关联的滚动条的文档窗口。垂直滚动条在窗口的右侧示出,水平滚动条在窗口的底部示出。在图1的示例中,窗口足够宽,无须滚动就能够看到整个文档,所以水平滚动条是无效的。所示的垂直滚动条在其两端具有行向上和行向下的箭头,对着内部的向上翻页和向下翻页区域和在翻页区域之间的滑块。滑块的位置通常指示了文档可以看到的部分在全部范围中的位置。滑块的尺寸通常指示对文档当前可以看到部分的百分比。
在相关的滚动条箭头上单击左侧定位设备按钮,则将所看到的文档向上或者向下滚动一行。在相关的翻页区域上单击,则将文档向上或者向下滚动一页。通过在滑块上按住左侧按钮来抓住滑块,从而允许滑块直接随着定位设备的移动而进行移动。滑块移动一个像素,则将文档移动一定量,该量是随着文档长度变化的。该变化是这样的恰好当滑块达到其运动限度时,平滑地到达相关文档的极值。因此,对于短文档来说,滑块移动一个像素可以等同于文档滚动一个像素,而对于长文档来说,滑块移动一个像素可以等同于多个文档页。在该段落中所描述的特征是典型的,但是能够随着应用的不同而改变。
滚动条的一个广泛认知的问题在于,关注点必须从文档移动到其周边并且再次返回以在导航与其他GUI任务之间进行切换。由此,最近已经出现了几种机制,用于从布置定位设备的硬件直接影响滚动。作为该趋势的一部分,使得定位设备生成的滚动信息对于应用有效的标准方法已经出现。此外,就在不久前,PC应用利用了一维任务的这些信号而不是滚动。
这些固有的一维导航窗口小部件的最广泛的配置是鼠标滚轴。滚轴典型地位于鼠标左键和右键之间,滚轴对于执行垂直滚动进行了优化,并且在其滚动时,很多现代系统可以默认执行垂直滚动操作。通过提供扩展模态信息,滚轴能够用于可替换的一维导航功能。例如,当在滚轴分别向上滚动或者向下滚动的同时按下键盘的Ctrl键,则对普通的电子数据表格程序进行放大或缩小,从而使得较少部分的可视表格带有较多的细节,或者较大部分的可视表格带有较少的细节。
滚轴的市场成功已经证明了直接执行一维GUI任务的能力是所期望的鼠标特征。然而,滚轴遇到了几个问题,使得它对于通用化的一维GUI输入并非最佳。首先,滚轴可寻址速度范围非常小。滚轴设置在用食指进行操作的位置处,并且在食指必须从滚轴抬起并重新放置在其上以允许进一步移动之前,滚轴仅仅能够在给定方向上转动相对小的量。此外,在每次食指重新放置在其上时,典型地采用仅仅几个可以通过的制动器对滚轴滚动进行制动。由于制动器典型地仅能够以相对慢的速度被通过,因此最大输入速度相对较低或者最小任务增量相对较大。
滚轴的更加重要的局限在于,通常用同一只手转动滚轴并同时提供扩展模态信息是困难的。这就使得在不同一维任务之间进行模态切换滚轴成为难题。例如,先前所述的电子数据表格缩放特点需要空闲的手通过键盘来提供扩展模态信息。也许鼠标最重要的缺点在于,它比其他现代光学鼠标在机械上较为复杂。该复杂性增加了制造成本,并且是造成制造后故障的主要原因。
总之,鼠标滚轴是对直接一维GUI输入的基本问题的主要的特别解决方案,并且具有几个重要的缺点。滚轴相对地昂贵和不可靠。它占用了手的最灵活的手指,使得模态重新定向输入成为问题。此外,低动态范围通常必须通过附加的工作模式进行补偿,附加的工作模式限制了除了滚动之外它对于一维任务的可用性。
因此,需要将二维鼠标移动转换为一维GUI变量的普通方法。为了最有效地利用鼠标的固有大动态范围,这种维度降低技术应该是基本上零次(如下所述)的,以使细微差别和控制最大化并使得精神疲惫最小化。在相同的模态调用中,它应该允许生成正值和负值。它应该提供非常宽的动态范围,从而使得不用将鼠标抬高,就能够容易地并有效地提供最小和最大的期望偏移。它应该是自我中心的,即,在一维任务空间中具有高自由度以移动任意距离,同时在二维输入空间中保持在中心位置附近。此外,结合附图和该背景技术,从以下的详细描述和附带的权利要求中,其他所期望特点和特征会变得清晰。


发明内容
本发明的各种实施例包括用于从二维鼠标移动中生成一维GUI信号的方法。所述方法能够是模态的,允许鼠标同时用于二维任务和一维任务。在单一的一维模态调用中,能够生成两个极性中的任意一个的无界信号,而同时保持在有界二维区域中,并且不离开定位表面。所生成的信号的量与鼠标移动的二维距离基本上成比例。
一旦已经进入一维模式,就从初始行进方向中确定初始极性。当在特定方向上已经发生了足够的转动,则所述初始极性就与该转动方向相关联。通过突然地颠倒方向就可以颠倒极性,或者在极性已经与转动方向相关联之后,通过从与极性相关联的方向的相反方向上进行足够的转动来颠倒极性。在极性的每次颠倒时,已经颠倒的极性不再与转动方向相关。在颠倒后进行足够的转换时,发生新的关联。
当设计采用鼠标时,在此所描述的方法和系统能够采用任何能够生成相对运动输入的定位设备,如以下更加详细的描述。公开了本发明的各种实施例,其适合于在典型的定位设备中嵌入使用。



以下将结合附图描述本发明,类似的附图标记表示类似的元素,和 图1示出具有有效垂直滚动条和无效水平滚动条的常规GUI窗口; 图2示出了示例性的输入路径和其降低维度的输出变量; 图3示出了来自初始行进方向上的示例性初始信号分配; 图4示出了示例性的固定手征关联; 图5示出了示例性的迟钝手征关联; 图6示出了手征关联如何要求邻接转动的示例; 图7示出了示例性的相对运动的手征的映射; 图8示出了八个示例性的近似走向,或者八分圆,它们适合于相关方向参数的有效计算; 图9示出了建立最近似于移动报告的八分圆走向的示例性流程图; 图10示出了从运动矢量和八分圆走向中建立一维输出变量中的递增量的示例性流程图; 图11示出了从八分圆走向中生成形成规范化运动矢量的示例性流程图; 图12示出了从给定的八分圆走向和转动量中发现相关八分圆走向的示例性流程图; 图13示出了发现从一个八分圆走向移动到另一个八分圆走向所必需的转动量的示例性流程图; 图14示出了对运动报告进行局部合并以获得有效的经过过滤的行进方向的示例性流程图; 图15示出了将小于颠倒所需的量,但是大于一个八分圆的方向变化放宽到正好一个八分圆的示例性流程图; 图16示出了用于确定三个近似走向是否一致的示例性流程图; 图17示出了用于累积活动统计的示例性流程图,活动统计确定是否改变八分圆走向; 图18示出了用于将一维极性与手征相关联的示例性流程图; 图19示出了用于确定八分圆走向改变量的示例性流程图; 图20示出了用于初始化简约状态变量的示例性流程图; 图21示出了用于增大来自运动报告和当前符号的一维输出变量的示例性流程图; 图22示出了用于提取一维输出变量的完整部分以将其传递到GUI子系统的示例性流程图; 图23示出了用于从运动报告序列中读出初始符号的示例性流程图; 图24示出了用于将二维运动报告序列降低到一维GUI变量报告序列的示例性整体流程图; 图25示出了用于监视鼠标报告流并且在二维和一维GUI任务之间进行模态切换的示例性整体流程图; 图26示出了在读出初始信号中所使用的状态变量的示例级数。
图27示出了由示例性的线性引发的符号反转造成的状态变量级数。
图28示出了由示例性的旋转引发的符号反转造成的状态变量级数。
图29示出了由示例性的改进的线性引发的符号反转造成的状态变量级数。

具体实施例方式
根据各种实施例,用于将来自鼠标或者其他输入设备的二维输入转换为一维信号的新技术,允许滚动或者其他用户界面导航任务,而没有现有技术的缺点。在一种这样的技术中,输入设备置于工作模式下,其响应该输入设备的二维移动,生成具有极性和大小的一维信号。当用户移动输入设备时,对与该运动相对应的二维信号进行处理,以确定与该运动相关的距离测量数据。该距离测量数据用于确定最终的一维信号的大小。在另一个实施例中,从二维移动的方向中确定一维信号的极性。其结果是,提供了表现出宽动态范围的低阶技术,其克服了以上所述的很多缺点。在此所述的各种技术和系统适用于广大范围的各种环境,并且采用硬件和/或者软件的组合以任何方式实现。此外,在此所述的信号和数据处理技术可以用任意软件语言或者软件环境实现。例如,这种软件可以驻留在鼠标中或者其他输入设备中,或者可以驻留在与定位设备通信的计算主机中的存储器或者其他数据储存器中,或者在任何其他设备或者位置中。
在此所述的概念可以采用广大范围的输入设备实现,包括鼠标、轨迹球、操纵杆、惯性感测设备、视频游戏控制器等等。尤其是,以下所述的技术非常适合于所谓的“相对运动”设备,例如鼠标和操纵杆。相对运动的使用暗示映射决定是基于距离和方向信息而不是关于绝对位置、力等等的信息。因此,诸如鼠标、操纵杆等等之类的相对运动定位设备报告该设备或者该设备的部件的移动而不是(或者还包括)该设备或者部件的绝对位置。如果这种设备在特定方向上移动到运动界限(例如,鼠标垫边缘或者鼠标的其他工作平面),则相对运动设备典型地脱离工作表面,并且在该方向上能够发生进一步运动之前,将其重新放置在远离界限的位置上。避免这些重新回到中心的操作通常规定单一移动不应该经常接近运动界限。为了克服相对运动设备的该情况,在此描述的各种技术允许响应设备的二维移动的扩展滚动(或者其他一维移动)。
术语 在观看各种改进的一维输入之前,建议开发一些通常适用于GUI输入的术语。由于其是更加成熟的领域,因此将使用二维输入或者定位来推动该开发。
动态范围 GUI任务的动态范围是其最大预期任务速度除以最小预期任务速度。对于规范的定位GUI任务来说,最大速度通常发生在将光标掠过高分辨率屏幕时。现代的屏幕的宽度可能有超过2000个像素宽,并且由于用户典型地希望在一秒钟的几分之一的时间内扫过整个屏幕,因此通常使用超过2000像素/秒的任务速度。相反地,不管多大的显示屏幕,也必须有例如窗口尺寸的边缘之类的最小特征。必须被GUI任务选定的最小特征尺寸是其分辨率,并且对于定位任务来说,所需分辨率通常是单一像素。对单一像素进行选定的时间当然能够是任意长,导致任意低的最小定位速度。然而,对于用户来说,不寻常的是在GUI任务的精调部分花费多于1秒的时间。因此,通过假设任务的分辨率在一秒级别的时间间隔中是可以达到的,来对任务的动态范围进行标准化。
定义任务的分辨率为R,其最小任务速度为RL,并且其最大任务速度为RH,则任务的动态范围公式能够简化为如下
对于定位,其造成所需定位动态范围为
为了使得输入设备有效地执行特定GUI任务,该设备的动态范围应该合理地匹配该任务的动态范围。采用与任务的术语相类似的术语,输入设备的动态范围能够定义为其最大设备速度除以其最小设备速度。通过将1秒设置为最小设备时间消耗来在此进行进行标准化,设备的动态范围相当于其能够在1秒内报告的最小可识别输入单位的总数量。
对于鼠标,最大设备速度是通过在单一报告中能够传递的运动的最大量乘以1秒内能够作出的报告数量来计算的。最小可识别鼠标移动的传统名称是“米奇(mickey)”,并且现代USB鼠标能够报告最大128米奇的运动,报告速度最大达到每秒120次。因此,鼠标的原始动态范围是
这足够进行定位任务,但是不幸的是,另一个因素导致了对鼠标动态范围的限制。
相对运动的定位设备(例如鼠标)报告移动而不是绝对位置或者加上绝对位置。如果在特定方向上移动到运动界限,则要报告在该方向上的进一步运动,必须典型地将其从其工作表面脱离并重新放置在远离该界限的位置。避免这些重新回到中心的操作通常需要单一移动不应该经常接近运动界限。使得重新回到中心的需求最小化的一般标准是将任何单一定位设备的移动限制到基本上小于其工作区域的50%。
例如,舒适的鼠标工作区域通常直径大约4到5英寸。服从该一般标准意味着最大期望移动为大约2英寸。给定1/400英寸的典型米奇分辨率,和单位增益系统,其中一个米奇的鼠标运动产生一个像素的显示器移动,典型鼠标在2英寸内能够移动光标400×2=800像素。因此,在该示例中,受到空间限制的鼠标动态范围小于采用2000像素宽度的显示器所必需的范围的一半,并且少于原始动态范围的十分之一。
有用的是,注意到仅仅当输入设备在设备空间中进行线性移动时才会受到空间限制。沿着闭合路径的运动不是一定会受到空间限制。例如,通过在5英寸直径的圆内连续移动鼠标,而将鼠标速度保持在大致类似于其原始动态范围,10,000米奇/秒是非常可行的。
弹道学 弥补在有效设备和必需任务动态范围之间的不足额的一个普通方法是在从设备变量中形成任务变量时,插入非线性处理函数。在定位设备用词中,这些处理函数称为“弹道学函数”。该名称是提示输入设备受到外力影响的方式与抛射体路径受到环境因素(例如重力和风)影响的方式相同。然而,在计算机输入域中,在运作中的“外部”力是人工插入的弹道学函数。
在最简单的GUI输入系统中,通过采用单位增益,从设备变量中获得任务变量 g(t)=1·d(t) (4) 即,设备变量实质上等同于GUI任务变量。例如,单位增益定位系统对于所报告的设备运动的每一米奇,始终将光标移动一个像素。弹道学函数的目的是通过将较小的增益提供给相对小的设备输入,将较大的增益提供给相对大的设备输入,来扩展任务动态范围。对其的数学公式如下 g(t)=B(d)·d(t) (5) 在每个时间步长中,典型地通过采用与设备变量相关的增益,从设备变量中生成GUI变量。例如,用于鼠标的最早弹道学函数之一包括,在将大于4的设备报告大小乘2,并将大于10的设备报告大小再乘2。,较为正式的描述采用C的三重操作符语法如下 B(d)=d≤4?1:(d≤10?2:4)(6) 该方案可用是因为鼠标以规则速率报告其运动,除非存在小于一个米奇的运动要进行报告,在该情况下,不进行任何报告并且保留任何潜在的不足一个的米奇,用于在下一个报告点与随后的运动合并。因此,当鼠标缓慢移动时,它或者不进行报告或者报告一个米奇。当运动速度增加时,一个米奇的报告的频率增加,直到达到全报告速度。超过全报告速度,每个报告的米奇数量增加。由于典型鼠标具有120个报告/秒的报告速度,如果报告包含一个以上的米奇,则鼠标移动相对快,在每个报告5米奇的情况下,速度为600米奇/秒。
由于无论如何5米奇报告表示相对快速的鼠标移动,因此在像素空间中距离能够加倍,并且用户仅仅意识到光标移动的更快。最终结果是通过在速度上快速增加然后快速降低的短运动,光标能够更加快速的掠过屏幕。一旦鼠标接近目标,移动降低到足够慢,从而不再使用额外的增益,再次导致全单像素控制。
弹道学函数对于扩展设备的动态范围是有用的,而增加的范围是以降低控制能力为代价的。幸运的是,该降低的控制能力典型地遇到了较高的速度,并基本上被该速度所掩盖。然而,存在的局限在于,通过弹道学函数能够将动态范围扩展多大,而不会对控制的用户可察觉的控制等级和实际控制等级造成重要的影响。普通GUI任务的一般标准限制是将原始设备动态范围扩展10x。
更高阶的运算 如上所述,限制鼠标动态范围的主要因素是工作区域的尺寸。弹道学函数显示出能够扩展设备的动态范围,但是有点以控制能力为代价。通常用于很多输入设备的规则是,输入设备的可控动态范围在大小上与其工作区域的尺寸成比例。
在设备尺寸受到特别限制的情况下,通过称为更高阶运算的另一种处理技术,能够进一步用任务可控性换取大小。设备的运算阶规定在输入或者设备变量中的变换是如何传递到输出或者GUI任务变量中的变化上。从数学上讲,与导数数量相关的阶连接了输入/输出关系。输出变量与输入变量成比例的工作模式是零阶模式,例如公式(4)。输出变量的一阶导数与输入变量成比例的工作模式是第一阶模式。第一阶模式采用不同形式表示,如下 并且采用积分形式如下 尽管比第一阶更高的工作模式略微不实用,但是第二阶模式会通过二次导数连接,等等。
在第一阶运算背后的概念是,在输入变量中相对较小的变化能够在时间上累积为输出变量中的相对大的变化。为了对相对运动设备进一步具体化该概念,输入变量d(t)和任务变量g(t)指在时间间隔t中移动多远,而不是移动到哪里。相对运动运算和对输入的时间积分所暗示的第二个概念是,在输入空间中绝对性。为了在多数设备中停止在输出空间中的运动,g(t)必须变为0,这暗示D(t)必须也变为0。为了使得D(t)变为0,d(t)对特定时间段的积分必须为0。这就暗示在输入设备中的零点或原点的概念。输入空间中一个极性的任何偏差都会持续生成周期性的输出空间信号,直到通过相反极性的输入空间移动将其消除。由于即使是在输入运动停止时也能够持续生成输出信号,因此第一阶模式有时称为“自动”模式。注意,用于生成自动输出信号的时基典型地不同于用于报告输入运动的时基,并且该输出信号典型地不与输入运动同时。
还能够将非线性弹道学函数用于第一阶工作模式。由于允许更加简单的分析和实现时,一般将弹道学应用于输入的时间积分 g(t)=B(D)·D(t) (9) 注意,弹道学能够调节输入和输出的比例性,但是不能够改变基本的运算阶。
通常工作在第一阶的最广泛使用的定位设备是等距操纵杆,在很多膝上型计算机上用于定位的用橡胶处理过的突点(nub)。由于等距操纵杆没有可察觉地移动,因此其能够比其他工作在第一阶的设备更小,例如,小到能够放置在标准键盘的略修改过的G和H键之间。
等距操纵杆产生的输入变量是对典型的通过食指施加的力的测量。第一阶运算使得显示器光标的速度与该力成比例。由于能够由人的手指舒适地施加或者舒适地决定的该力的范围不足以满足快速光标运动和单一像素分辨率,因此经常将弹道学函数结合在操纵杆系统中。在实际系统中,这些函数具有超过20:1的动态范围扩展比例。
使得等距设备特别适合于第一阶工作的属性在于,能够比可移动设备的可能速度更快地释放第一阶积分器。这是因为等距设备的颠倒仅仅需要所施加力的颠倒。对于可移动构件,在相反极性生成之前,在所施加力的颠倒之后需要额外时间来进行一个极性的滞缓。在两者都工作在第一阶时,等距设备的积分器更快的释放时间就导致对可移动设备的更高的可控性。
也许等距操纵杆的定位用途的主要缺点在于,第一阶运算和扩展的弹道学函数两者都造成对控制能力的限制。很多用户足够灵活,从而能够有效地使用它们,而另外一些用户则不行。该因素使得等距操纵杆潜在地不适合作为通用的可接收定位设备。
模态 使用单一设备生成一维和二维信号所必需的另一个概念是模态的概念。在定位环境中,还能够对该概念进行有成效的检查。在模态使用中,单一设备数据流通过补偿信息而进入一个以上的GUI任务。该扩展模态信息经常包含在设备数据流中,但是也能够通过完全分离的源提供。使得数据分发到特定模式的特定信息称为该模态的模态指示符。在没有扩展模态信息或者在缺省模态状态下,设备数据分发到其常规模式或者原始模式。
例如,二维输入数据是通过按钮状态形式的扩展模态信息,在GUI定位与拖动任务之间进行模态切换的。典型地,按钮状态是与生成定位数据的相同设备相关联的,并且其能够同时传递该数据。对于鼠标,拖动模态指示符主要为按下状态,通常是按下鼠标的左键。鼠标的原始模式是定位,由其左键的弹起表示。
扩展模态信息能够同时来自多个源。例如,一些GUI允许将拖动操作进一步分支为移动或者拷贝数据。用于拷贝的模态指示符典型地为鼠标左键按下状态与键盘上任意一个Shift键按下状态。移动是缺省或者原始拖动模式,其可以用鼠标左键按下状态与键盘上两个Shift键都弹起的状态表示。
维度降低 存在很多可能的技术用于将二维空间映射到一维空间。一种简单的映射是要抛弃每个二维坐标对中的一个。例如,简单地抛弃常规的垂直坐标(即,在常规(X,Y)对中的“Y”坐标)会得到一维变量,其向右增加,向左减少。在相对运动使用中,该变量在向右移动时会是正值,在向左移动时会是负值。然而,这种映射不能解决从有界二维移动中生成无界一维变量的问题。在到达最左边的二维边界之后,任何进一步的一维输出将会是向右的,因此为正值。由于对使用设备来说有效的二维空间的固有的有界特性,如果并非不可能采用该简单映射,则任意大的负值输出-或者该情况是正值输出-的生成是极度困难的。
其结果是,通常有用的简约映射的一个所期望属性是,从有界输出中合成无界输出。对其进行形象化的一种方式是,潜在的无限一维空间能够被“折叠起来”,以使其适合于固定大小的二维空间。相反地,被折叠起来的二维空间路径可以认为是展开的并沿着单一维度放置的。采用类推的方式,已经在四分之一英里的跑道上完成12圈的跑步者已经在输出空间上跑了3英里,但是跑步者在输入空间的开始和停止位置相同。类似地,鼠标在鼠标垫上或者其他工作表面上的二维运动能够转换为在一维空间中的无界移动。从数学术语上讲,相对运动报告的量的总数(表示总移动量)实质上大于相对运动报告总数的量(其表示从开始位置的净移动)。即使是相对运动设备实质上没有从其开始位置移动,实质的运动量可能已经发生。就该方面来说,术语“实质上”简单地想要暗示比由于偶然远离直路径的偏移或者由于测量误差而造成的量更大的量。
第二个所期望属性是在动态范围方面的利用有界输入空间。更大的输入空间应该允许更大的量,从而在输出空间上有着更快的累计。例如,旋转移动的简约映射能够用公式表达,所述映射是基于在对角经过的输出量的。然而,不管所经过的圆如何大,这种映射都会产生同样的输出量。由于与较大的圆相比,能够在物理上更快地经过较小的圆,因此这种映射将不期望在输入空间尺度与动态范围之间具有相反关系。
第三个所期望映射属性是它应该更加容易地被人所学习。同时的规则的反馈是决定映射学习能力的主要属性。为了提供好的反馈,映射应该配置为,不论在何时在输入空间中存在运动,都在输出空间中生成运动。在输入空间中应该避免盲点或者盲方向,并达到进行以上操作是普通的和可能的程度。
第四个所期望的映射属性是它应该是本能的。类似的运动应该产生所期望的结果。两个最普通的控制姿势是线性和旋转运动,并且由于线性运动对于小偏移是正常的,圆形运动对于更大的移动是正常的,期望有同时处理两者的统一机制。用于维度降低的这两类运动的统一主要是适当的符号管理的函数。在单一方向上的连续的线性运动应该不会造成符号反转,相反,在线性运动过程中在方向上明显的颠倒会导致符号反转。特定偏手性的连续的转向运动不应该造成符号反转,相反在旋转运动中的偏手性的明显的颠倒会导致符号颠倒。
为了实现方便,映射应该是分离的,使得一个输入属性生成输出符号,第二输入属性生成输出量。将在输入空间上的与大小成比例的动态范围需求传递到输出要求从输入距离中生成输出量。这进而要求与广泛的已知极性坐标描述相类似的输入方向和距离的描述。采用分离能力的规则和使用输入距离来确定输出量,留下了输入方向以确定输出符号。接下来描述基于这些规则的简约映射。
有符号的简约映射 表格1的各种规则整体上生成具有先前所述特性的示例性简约映射。该映射潜在地为无界的,因为只要避免线性颠倒和旋转颠倒,输出信号就能够保持不变。由于输出量在大小上与所经过的输入距离成比例,因此输出动态范围与输入设备的尺寸成比例,并且基本上可以避免输出盲点或者盲方向。来自线性运动的输出符号变化是通过突然的方向颠倒标准实现的,来自旋转运动的输出符号变化是通过转动方向颠倒标准实现的。映射本质上是可分离的,因为输出符号取决于输入方向并且输出量取决于输入距离。

表格1 为了进一步具体化这些规则如何能够真实实现的,有用的是定义离散二维相对运动变量(“报告”),其可以适当的用(Δx,Δy)对的序列表示。在以下所述的示例性实施例中,每个报告都适当地表示通过在采样周期内2个正交的基础的连续设备变量而积累的运动量。例如,在常规坐标系统中,计算机鼠标报告(1,1)表示鼠标已经移动远离用户一个参考单位(例如“米奇”),并从最新的报告开始的时间间隔内,向着用户右侧移动了一个参考单位。
现在转到附图并开始参考附图2,报告S1-S40的示例性序列概念上首尾相连地放置,其表示输入设备通过二维输入空间202的路径206。组成路径206的每个报告都与该路径的特定段一一对应的示出。因此,图2所示的示例性路径206包含40个段,其中每个段都处在各个报告S1-S40中的一个之前。例如,段205对应于报告S2,并且表示近似于输入设备在报告S1到S2之间所经过的运动的直线。
给定输入路径的框架,则通过用符号和量对路径的每个段进行标记,能够完成简约映射技术的主要工作。将这些符号/量组装为单一有符号变量,则直接生成相关的一维输出变量流204。在图2下部所示的该一维输出信号流204中,二维输入路径206的报告S1生成输出流204的第一个信号208,报告S40生成最后一个信号210。然而,在各种等价实施例中,可以采用可替换的信号生成和映射方案。
在先前所列出的可简约规则的环境中,在一维信号流204中进行符号标记能够看作是采用先前段的符号对路径206的每个段进行标记的稳定状态过程,并且被在路径206所表示的二维移动中检测线性和旋转方向颠倒的反转过程所扩大。线性颠倒通常具有优先级,因为典型地它们能够比旋转颠倒更快地被检测到、在图2所示的示例中,线性颠倒发生在报告S13和S14之间,并能够仅仅从这两个报告中的信息中直观地检测到。在比较中,从报告S27开始的旋转颠倒是不清楚的,直到显著靠后时,可能在接近报告S30时。
与进行符号标记相比,采用量对路径段进行标记是相对直接的。根据第三个简约规则(P3),路径段的量能够确定,以使其与段的长度成比例。最通用的长度测量是欧几里得距离,

但是在各种其他实施例中,可以实现和/或者增加计算上更加简单的方法等等。在图2的信号流204中所示的示例性的量是通过略微修改过的绝对距离测量生成的,绝对距离测量削弱了接近潜在旋转颠倒的运动,尽管这种提高可能不是存在于所有实施例中。
方向,手征和符号 在先前部分中的规则略叙了来自先前状态给出的特定输入运动的示例性的符号演变,但是迄今为止,还没有讨论从什么中建立要演变的初始状态。要初始化的一个状态变量是输出符号标记。如先前针对颠倒所描述的,线性运动通常能够比旋转运动更快的解析。这是因为对于用户能够察觉的准确等级来说,旋转运动能够分解为多个性线运动。例如,构成图2的路径206的各个段,每一个都能够看作是在报告之间的二维旋转运动的线性近似。因此,通过从线性运动中而不是旋转运动中确定符号,能够减少在决定初始标记中的延迟。该符号初始化规则总结在表格2。

表格2 符号初始化技术的一个示例适于图3所示的垂直排列的输出变量。根据该技术,定义了初始向上运动302,以生成初始正符号,反之,定义了向下运动302,以生成初始负符号。注意,对于图3所示的两个运动302和304来说,旋转方向对于两个初始符号是相同的。即,尽管两个路径302和304描述了逆时针运动,但是路径302由于其初始向上运动而为正,而路径304由于其初始向下运动而为负。然而,该示例表示需要将相同转动方向与不同符号相关联,或者类似地,需要将相同的符号与不同的转动方向相关联。
因此,要初始化的另一个状态变量表示与符号相关联的转动方向。由于单一符号能够具有不同的相关联的转动方向,并且由于符号能够比旋转方向更快地被预测到,因此转动方向与符号的关联可以延迟到初始信号发现的点之外。术语“迟钝的”经常用于描述延迟决定的计算机算法,并且在这里为了方便将会采纳该术语。
为了更加具体的处理该概念,有用的是将第二标记添加到输入路径的段上,以指示其转动优选性。采用了化学中用于指定分子转动平面偏振光所使用的术语,能够用“手征”段标签描述“转动优先性”或者段转动的主要方向。左手螺旋的优先性(即逆时针转动)可以指定为左旋转(L)。类似的,右手螺旋的优先性(即顺时针转动)可以指定为右旋转(D)。没有建立手征的段被指定为外消旋(R)。
对于一些设备和模态输入配置来说,可以省却外消旋状态并在手征与符号之间采用固定关联性。例如,图4示出了在有界定位表面406的最右侧边缘的初始向上402和初始向下404运动。例如,当通过沿着鼠标垫的最右侧边缘平行运动而进入简约模式时,能够出现该情况。由于在该示例中,不可能有更加向右侧的运动,初始向上402必须指示左旋转手征,并且初始向下404指示右旋转手征。其结果是,沿着表面边缘的初始运动能够同时建立输出符号和手征两者的初始值,因为随后在两种情况中的转动具有保留原始符号的所期望行为。通过模态几何限制可以避免旋转产生的初始符号的符号颠倒的复杂情况。
然而,当没有先前的几何限制时,如果任意一个随后的转动方向能够与最初确定的符号相关联,则用于将设备保持在其工作中心附近的学习能力和自由度被增强。用于实现以上所述内容的技术是延迟建立初始手征,直到已经发生了足以预测用户意图的转动。图5示出了对手征与符号之间的初始关联进行延迟的示例。在该示例中,“向上”运动502能够快速地识别出正符号,负向运动504能够快速地识别出负符号,但是手征初始为外消旋的。在初始转动方向上进行了足够的转动之后,可以建立左旋转或者右旋转手征。注意,上述图4的固定方案中仅仅可能有两种关联L+和D-。在迟钝的方案中,两种外消旋状态R+和R-导致手征和符号的四种可能关联L+,L-,D+和D-,分别对应于路径506,510,508和512。
建立手征与符号之间的关联所必需的转动量应该足够大,以使直到用户意图不明确之前都不建立关联,并且应该足够小,以使用户的意图不会被忽略。这两个需求可能是对立的,但是一个可能的解决方法是使得用于建立手征关联的转动量大致等于产生符号反转所必需的量。
另一种复杂的情况涉及旋转不足以建立手征关联对于随后反向旋转的足够量产生影响的方式。用于解决该问题的两个可能性包括忽略先前反向旋转,和对将先前反向旋转进行总体计算以增加建立关联所必需的随后的反向旋转量。倾向于进行总体计算而不是忽略该旋转的因素在于,关联确定应该注册有初始行进方向。这是因为,用户可能没有准确地沿着初始行进方向,但是仍然可以具有该方向的直觉概念。参考图6,相互均衡地示出了几个不足以建立手征关联的反向转动602、604、606、608;即,在相反方向上的轻微转动没有累加足够用于产生手征变化的净转动。在图中,采用虚线对在关联决定状态返回到其初始状态的示例性点进行了标记,尽管在等价实施例中能够使用其他技术。
如上所述,被延迟或者“迟钝的”手征分配的动机是为了在相对运动使用中避免不期望有的与转动相关的符号反转。基本概念是,旋转引起的符号反转通常需要旋转基线,从旋转基线中表示相反性。这种旋转基线一旦建立,就能够通过插入线性概念,例如突然的方向颠倒而被丢失。由于该掩饰效果,在线性颠倒时对外消旋手征条件的存储创建更加直观的旋转颠倒期望值。此外,由于相对来说不太可能在缺少任何插入线性颠倒时发生两次旋转颠倒,在旋转颠倒时对外消旋手征条件的恢复也会帮助生成更加稳定的旋转颠倒行为。
因此,示例性的迟钝手征分配方案在线性颠倒时和在旋转颠倒时,初始化地分配外消旋手征。用于建立旋转基线的转动量可以被设计成近似于引发信号旋转颠倒所必需的转动量,或者与之匹配。与基线相关联的转动适合于进行累加,以使在一个方向上不足的转动增加了造成关联所必需的随后的反向转动量。这些示例性手征和符号关联规则总结在表格3中。
现在参考图7,由二维信号/报告的序列表示的示例性输入路径700图示出了表格3所示的几个规则。当移动路径700开始时,将手征初始地假设为外消旋(规则P2a)。初始运动表现为向下,因此生成初始负符号值。作为通常采用逆时针方式的报告过程,大致在报告702处识别出左旋转手征。在报告703与704之间发生线性颠倒,意味着符号变为正,手征根据规则P2d重新设置为外消旋/未确定。大致在报告706处识别出顺时针旋转。路径700在报告708附近开始逆时针旋转,其最终导致大致在报告710处将手征重新设置到外消旋(并切换该信号)。由于随后顺时针运动与逆时针运动的混杂,手征保持在外消旋(根据规则P2c),直到在报告712附近,顺时针旋转证实了右旋转分配。注意,在图7所示的示例性路径的下部是上部的镜像。然而在该示例中,对于路径的每个部分,输出符号都保持相同。整体影响是最大化自由量,以表示无界有符号数输出,并最小化使得输入设备回到中心的需求。

表格3 方向量化 随着上述符号保持过程之后,注意力返回到确定何时发生线性颠倒或者旋转颠倒的问题上。嵌入使用的一个问题是使得决定颠倒所花费的计算资源的最小化。该问题典型地是状态简化之一;即,从自由二维输入的相关杂音中开发几个关键计算点。由于输入方向是用于决定颠倒的标准,则会对该目标有用的基本概念是方向量化的概念。如果将方向量化为相对少的几个可能值,则走向变化是特别有用的计算点。在该环境中,可能的走向数量越少,在下决定时走向的变化就变得越有效。另一方面,过少的被量化走向可能造成用户意图的丢失,因此被量化走向的数量应该和需要的一样多但是不能过少。在此,被量化走向还称为“可能走向”或者“桶”。
为了避免量化器“桶”伪像,在颠倒方向上至少应该有三个可能的走向有效,以便每个前进走向具有一个直接反向的走向和靠近直接反向走向的两个反向走向(反向走向的两个边中每个边上一个)作为对准保护。在当前前向走向的每个边上都应该至少有一个走向,以接收旋转进展。如果所有的被量化走向都定义为在大小上大致相等,则两个进展接收走向为上述三个颠倒走向提供了更好的平衡性。统计当前被量化走向,然后,在该示例性实施例中所采用的最小数量的量化器桶为1+2+2+3=8。
图8示出了示例性非均匀八分圆量化器方案,其适合于在计算机鼠标或者其他输入设备中的嵌入式使用。如图所示,4个轴向排列的“基本方向”桶被任意定义为比散布的对角排列的桶大2倍,因此通过以下所述的整数加法和单比特位移来决定量化。在该量化方案中,“关系”(沿着桶间的分界线在一个方向上行进)被打破,利于较小的对角桶。该方案采用在鼠标报告中典型地会遇到的小数值,造成相等的桶数量。
通过将相对运动报告从输入设备提供给量化器方案,能够简单地识别出大致走向。在示例性N和NE桶中的小的正整数报告的量化器数量如表格4所示。对每个桶间的边界能够用公式表示类似的分配方案,以将在任意方向中的二维运动分配到特定桶中。

表格4 给定量化走向,在简单地通过将所保留的来自过去输入的持久走向与从过去输入和当前报告中所形成的建议走向进行比较,而处理设备报告时,能够决定符号和手征颠倒。如果持久走向与建议走向之间的差异超过3个或者更多的八分圆,则可以直接指示线性颠倒决定。例如,如果持久走向与建议走向之间的差异为一个八分圆,则可以指示旋转运动。两个八分圆的差异能够放宽到单独一个八分圆的差异,因为随后的运动可能会继续所放宽的进展。如以下更加完整的描述,旋转运动不改变当前符号,而颠倒指示造成符号颠倒。这些普通概念中的每一个都是示例性的并能够在广大范围的可替换实施例中进行修改、补充或者替换。
在大多数情况中,建议走向变为下一个报告的持久走向。然而,对八分圆进展规则的细微修得到用于确定线性颠倒和旋转颠倒的统一机制。该修改是仅仅在当前优选手征方向上允许一个八分圆的走向变化。如果对判定统计进行更新而不管是否允许走向变化,则结果是与当前手征相反的旋转最终会在持久走向与当前走向之间生成3个八分圆的差异。当发生3个八分圆的差异时,仅仅采用线性颠倒规则识别颠倒。根据以上所述方向规则的示例性统一符号总结在表格5中。

表格5 先前的用于被量化走向进展的规则统一了线性颠倒和旋转颠倒规则。然而,关于在决定线性颠倒方向时的基本的不明确性的问题仍然保留。由于对于人来说,准确地颠倒定位设备的轨迹是困难的,在实际中对于轨迹颠倒来说很普通的是至少包含一些垂直于颠倒轴的运动。此外,颠倒运动进行的越快,它们容易造成的不准确性越高。第二混淆因素是在定位设备本身中所存在的少量不准确性。另一个人的意向使得该不准确性变得重要,以采用生成一致结果的最小直径来进行旋转运动。
这两个人的意向冲突,因为一方面小直径旋转在更大的线性运动环境中将会典型地被忽略。另一方面,在其他小直径旋转的环境中的小直径旋转典型地不会被忽略。这些难以预测的变化,连同从两个连续的大致走向中决定颠倒的简单计算模型一起,强调了大致走向不因为设备噪声或者人的不准确而发生改变的重要性。
减小不准确性和噪声的影响的第一规则是被量化方向应该仅仅随着在新方向中的足够的一致运动而改变。由于一致运动能够从多个设备报告中进行累加,因此足量可能需要逐渐地建立。为了计算简单,期望使用单一标量值建立足量。因此,需要用于保证仅仅使用相干信息来决定足量的机制。
为了使得运动一致,运动应该与单一意图一致。例如,与逆时针旋转一致的运动位于当前八分圆和它的两个左旋转最近邻中。相反地,与顺时针旋转一致的运动位于当前八分圆和它的两个右旋转最近邻中。与颠倒意图一致的运动完全位于与当前八分圆相对的三个八分圆中。与足量累加器的当前内容不一致的任何运动适当地造成累加器被清零。主要在当前走向方向中的运动也应该会造成足量累加器清零。这些示例性走向进展规则总结在表格6中。
如上所述,足以在一个环境中确定意图的运动量可能在另一个环境中是不足量的。这暗示需要自适应性的进展足量标准。两个必须要考虑的影响是设备不准确度和人不准确度。给定设备的不准确度是略微固定的,因此足量标准应该包括固定部分。人的不准确度是可变的,并且随着运动速度的增加而增大。因此,取决于速度的足量部分也可以是有益处的。

表格6 当速度增加时,取决于速度的足量部分应该相对快速地跟随速度变化。然而,速度的降低能够比不准确度相对更加迅速。这是因为减速固有地比加速更加难以控制。因此,取决于速度的足量部分应该仅仅允许相对缓慢地降低。这些示例性进展足量规则总结在表格7中。

表格7 用于降低进展足量规则的计算上的有效方法是在被量化走向变化时,使对于当前速度的标准逐渐消失。该方法还很大程度上独立于设备的难以预测的变化,例如报告速率,并且应该优于基于时间的逐渐消失方案。
距离和量 先前所述的简约规则需要一维输出变量的量应该在大小上与所经过的二维距离成比例。在先前所述的输出符号管理规则的环境中,对该成比例性规则的适当放宽能够具有效力。主要问题是,在一些环境中,运动的意图是不确定的。此外,在一些环境中,非正确打断的不确定运动能够导致不期望的输出。
因素最不利地进行合并的环境是旋转引发的符号颠倒。这是因为直到已经发生了明显的反向角转动之前,旋转颠倒都是不能检测到的。如果旋转半径相当大,则在对旋转颠倒进行初始化的点与检测到旋转颠倒的点之间,能够生成很大数量的一维输出。这能够导致在当前输出符号的方向上的显著过冲。
帮助改善方向不确定性的普通规则是,对输出仅仅累加输入运动在当前八分圆方向中的部分。这能够通过在当前八分圆方向中对输入报告和规范化矢量执行点积来实现。为了计算简单,规范化矢量能够限制在0和1的各种组合中。例如,“北方的”规范化矢量能够定义为(0,1),“东北方的”定义为(1,1)。此外,可以使用任何方向方案,将各种走向分配给任何任意参考。在此,对于基本方向的参考目的仅仅是为了示例和参考方便;在实际中,在广大范围的等价实施例中能够使用任何系统或者坐标和/或者方向的排列。
在最普通的情况中,对输出来说,期望累加能够比所经过的输入距离更慢。这是因为输出的单一单位通常造成线的GUI表示发生多于一个像素的变化。例如,在微软的视窗操作系统中,采用WM_MOUSEWHEEL消息执行当垂直滚动,对于单一单位的滚轴消息的典型应用程序响应是滚动相当于文本的几行的距离。在通过鼠标滚轴生成滚动输出时该行为是足够的,但是当滚动输出是由鼠标本身简约地生成时,该行为是略微混乱的。当通过鼠标运动进行滚动时,用户的期望是,给定特定运动速度,在滚动时窗口内容在像素空间中的运动与在定位时光标的运动大致一样快。
因此,在简约输出与在实际中用于影响一维GUI导航的机制之间插入增益匹配方案是有益的。比传统有效模式相比,因为简约模式提供了更高的动态范围,因此与现有导航机制匹配的增益通常要求简约输出应该被削弱,或者换句话说,增益应该小于其所提供的。
用于通过整数算术实现小数增益的标准技术是小数单位累加。匹配变量累加输入单位,直到达到称为累加器基数的阈值。一旦超过累加器基数,就用累加器除以其基数,并且该商变为小数增益的整数输出。将该除法的余数保留在累加器中。为了效率的原因,小数基数通常是2的乘方,以便能够通过二进制移位执行除法。对于很多一维导航任务来说,最小导航单位是文本的一行。因此,有用的小数增益是与普通字体大小成反比的。
简约模式提供了非常好的固有动态范围,而在需要表示更高性能的情况中,能够使用弹道学函数。例如,有用的导航工具能够将关注点从长文档的一端跳到另一端。充分非线性的轨迹能够允许快速简约运动,以实现该任务。平方定律轨迹的一个示例在公式10中示出。任意选择最大相对运动设备的坐标量128、绝对距离测量数据和小数累加器基数8,在本示例性实施例中从大致32的单一报告中产生最大输出。其结果是,简单的平方定律轨迹,造成大约32x的动态范围扩展。
g(t)=d(t)·d(t)(10) 详细示例性实施例 在图9-图25的流程图中示出了适合于由嵌入式微控制器或者其他处理器执行的优化的有符号的简约映射方法。示例性方法使用整数算术,以便在除法后保留整数商,并且在任何可能的时候,除法和乘法都是用2的乘方实现,因此允许采用比特位移实现。然而,这些特征是可选择的,并且可能不出现于所有的实施例中。
为了方便,在此示出和讨论的示例性流程图是按照在较高等级过程使用之前先引入较低等级过程的顺序排列的。每个流程图都被命名,并且过程通过这些名称相互引用。如果参数名称在过程定义和其使用点的定义中具有相同的名称,则通过引用能够传递过程参数,否则可以通过值来传递参数。此外,各种等价实施例可以在以下所述细节上有所变化。
表格8 实施例方法对二维相对运动输入变量进行操作,并响应地生成有符号的一维输出变量。保持了两种类型的内部状态,一种状态从一个报告到另一个报告具有持久性,而另一种状态是局部对于一个报告的。在该实现中,所有的状态变量都设计为适合于用16个比特的整数表示,尽管实现也可以采用其他方案。11个持久状态变量的名称和定义在图8中示出。在图9中示出了示例性局部变量。在此的所有这些状态变量名称都是一个字母长。持久变量名称是大写字母,局部名称是小写字母。两种类型的名称都可以具有大写希腊字母前缀,其提供关于该变量如何使用的附加信息。
表格9 在表格10中示出了在示例性流程图中使用的预先定义的常量。所有预先定义的常量的名称是一个或者两个字符长并且大写。所有常量都具有基本整数表示,其示例性值也在表格中示出。特定的其他预定义常数具有不同的值,取决于方法所使用的设备的特征。这些取决于设备的参数的值在流程图的描述之后给出。
表格10 图9示出用于将运动报告量化到八个可能八分圆走向之一中的示例过程。八分圆名称是通过罗盘指针缩写指定的。通常,北在远离用户处,东在用户右侧。通过5次或者更少次的整数比较完成量化。第一比较确定移动是向左还是向右。随后的比较采用4个斜率为1/2,-1/2,2,-2的线来切分输入平面。这些线对应于图8所示的切分点。注意,当方向报告直接沿着切分线落下时,比较是适合于更小的八分圆。
图10示出了用于执行运动报告与八分圆走向的点积的示例性过程。从各种正交输入的有符号组合中形成整数结果。八分圆走向选择要使用哪个组合。注意,如果输入运动报告位于输入八分圆中,则结果是每个正交方向的绝对值的和。然而,正交于八分圆结果的运动得到零结果,反平行的运动得到负结果。
图11示出用于对输入报告进行规范化的示例性过程。在该环境中,规范化报告是最小的完整报告,其位于与输入相同的八分圆中。过程首先通过调用先前所述的Quantize()过程,确定输入报告所在的八分圆。所返回的八分圆选择正确的0与±1对。
图12示出了用于找到与另一个八分圆有着特定旋转关联的八分圆的示例性过程。FindRelated()过程的第一参数是对其寻找相关八分圆的八分圆。第二参数是所期望的旋转关联,其表示为整数个八分圆。正旋转关联指定逆时针旋转,而负旋转关联指定顺时针旋转。试验性结果是通过将输入八分圆与整数旋转关联求和而形成的。如果该结果大于最大可能的八分圆表示,则减去8。如果该结果小于最小可能的八分圆表示,则加上8。
图13是用于确定两个八分圆之间旋转距离的示例性过程。该距离是在八分圆中测量的并且是有符号的。试验性结果是通过减去两个源八分圆形成的。将小于负4的距离加8,并将大于4的距离减去8。其效果是,返回两个可能的旋转距离中的较短者。
图14是用于将运动报告添加到表示多个运动的总和的持久状态变量的示例性过程。首先将输入报告的每个坐标加到各自的和中。如果两个和都为0,则用报告代替该和。由于走向必须具有至少一个非0坐标以便被正确量化,因此其效果是避免随后的不正确量化。
图15是用于将一个八分圆放宽到另一个八分圆的示例性过程。仅仅如果八分圆之间的旋转距离等于2时执行所述放宽。将第一参数所指定的八分圆放宽到第二参数所指定的八分圆。通过两个八分圆之间的旋转距离减半,找到与第一八分圆相关的八分圆,从而实现放宽。旋转距离是采用Distance()过程测量的,相关八分圆是采用FindRelated()过程找到的。
图16是用于确定第一被量化走向是否与其他两个一致的示例性过程。一致性意味这第二与第三八分圆中任意一个表示在从第一八分圆方向上的颠倒,或者第二与第三八分圆两者都表示相对于第一八分圆转动相同的方向。在较为正式的术语中,如果第二与第三八分圆中每一个都远离第一八分圆2个八分圆以上,或者两者都在第一八分圆的同一侧并远离第一八分圆2个或者2个以上八分圆,则表示一致性。通过获得第一与第二八分圆和第一与第三八分圆之间的距离进行计算。这些距离除以3,并将商进行比较。如果相除后的距离不同,则表示不一致性。如果相同,则将两个距离的符号进行比较。如果它们相同,则表示一致性。否则,将两个距离量相加。大于4的和表示一致性,小于或等于4的和表示不一致性。
图17是用于确定在候选八分圆的方向上是否已经累加了足够的运动以将当前八分圆前进到候选八分圆的示例性过程。过程的结果是候选八分圆,其在进展要发生时保持不变,或者没有发生时,重新设置为当前八分圆。该过程首先比较比较当前八分圆与候选八分圆。如果这些八分圆相同,或者如果它们不一致,则从当前运动报告中获得新候选走向。作为副效果,八分圆活动性累加器被清零。继而,将改变或者未改变的候选八分圆再次与当前八分圆进行比较。如果两者相同,则在结束过程之前,采用当前活动阈值或者当前瞬间速度中较大的一个来更新八分圆活动阈值。该阈值更新过程也从所有其他过程结束路径中进行调用。
如果在先前的比较中,当前八分圆和候选八分圆不同,则更新八分圆活动累加器,并且缩放该结果,并将其与随着设备种类指定增益参数放大的活动阈值进行比较。如果累加器小于该阈值,则在结束过程之前将候选八分圆设为当前八分圆。否则,保留候选八分圆。在返回所保留的八分圆之前,规范化所累加的增量,将活动阈值设为活动累加器的值,然后将活动累加器清零。由于活动比较采用了缩放的活动值,因此用活动累加器的值替代活动阈值的效果是将活动阈值向0放宽。
图18示出了用于将手征与符号相关联的示例性步骤。每次八分圆走向改变时,以当前八分圆和候选八分圆作为参数调用Associate()过程。该过程的副作用是使得与当前手征相反的单一八分圆方向变化无效。该过程首先计算这两个八分圆之间的旋转距离。如果绝对距离比3大,则表示未决颠倒,将手征关联计数器复位并且将当前手征设定为外消旋。返回距离结果,如同所有结束路径的情况一样。
如果绝对旋转路径等于1,则确定当前手征状态。如果当前手征状态为外消旋,则手征关联计数器增加,并且如果其值为3或者更大,则将当前手征设定为手征关联计数器的符号。如果当前手征不是外消旋并且当前手征与八分圆距离的符号不同,则通过用当前八分圆替代候选八分圆,来使得所提议八分圆进展无效。在结束之前将结果距离归零。
图19示出了采用运动报告更新当前被量化走向的示例性过程。首先从运动报告中更新运动的和。从运动的和中获得候选八分圆,并从运动报告中获得最新的八分圆。为了足量八分圆活动而对候选八分圆进行过滤,并随后将其放宽。最后,为了适当的手征关联而对候选进行过滤,并且用候选替代当前走向。注意,活动与关联过滤器能够造成候选被当前八分圆替代。在该情况下,当前被量化走向保持不变。
图20示出了用于从初始运动方向和初始手征来初始化与方向相关的持久简约状态的示例性过程。将运动和清零,并获得初始被量化走向。随后,将活动累加器、活动阈值和手征关联计数器清零。最后,用所提供的初始手征替代当前手征。
图21示出了用于从所提供的运动报告、符号和八分圆走向中更新一维小数输出累加器的示例性过程。采用运动报告和八分圆走向的点积乘以符号和取决于环境的增益参数,来增大累加器。返回获得的累加器值。
图22示出了用于提取小数输出累加器的整数部分的示例性过程。通过累加器除以其基数并将其结果向0舍入,获得该整数部分。然后通过减去所提取的整数部分乘以其基数的值,更新小数。
图23示出了用于从所提供的所提取整数输出中读出初始符号的示例性过程。作为副作用,对所提供的输出符号、输出小数累加器和转换状态进行更新。如果所提供的整数输出为0,则过程不执行任何动作而结束。否则,将所提供的转换状态变量更新到手征状态。接下来,将所提供的符号与所提供的整数输出进行比较。如果这两个值的符号相同,则将所提供的运动报告用于采用外消旋手征初始化与方向相关的持久简约状态。否则,在对持久状态初始化之前,使得所提供的符号和小数累加器无效。
图24示出了用于在维度上减小所提供的运动报告以生成一维结果的示例性过程。所提供的轴参数用于初始化与方向相关的持久状态。所提供的模态描述符表示何时应该对简约状态初始化。如果描述符为真,则采用所提供的运动报告将与方向相关的状态初始化为外消旋,对于垂直轴将输出符号初始化为负值,对于水平轴初始化为正值,将输出累加器清零,并将内部转换状态变量设为I。随后对小数输出进行累加并提取出整数输出。如果转换状态变量在I状态,则随后进行符号读出。如果在先前的提取中生成非零整数输出,则符号读出具有将转换状态变量变为C状态的副作用。其具有的效果是,中止符号读出直到所提供的模态描述符强行进行简约状态初始化。在每个过程调用中执行累加、提取和符号读出。
如果所提供的模态描述符为假,并且将转换状态变量设为C,则更新当前八分圆走向。如果该更新生成了大于或等于3个八分圆的旋转量,则将输出符号颠倒。注意,只要将转换状态变量设为I,就不执行方向更新。这就将所累加的输出限制在由轴对准的输入运动所生成的值上,直到生成初始化整数输出并且读出初始符号的时刻。
图25示出了对采用扩展模态信息放大的设备报告流进行监测并且分派所述数据以用于定位或者用于两个不同的一维GUI任务的示例性过程。如果扩展模态信息指定要执行垂直取向的GUI任务,则报告被分派是用于垂直取向降低并且该结果用于执行该任务。如果扩展模态信息指定要执行水平取向的GUI任务,则报告被分派是用于水平取向降低并且该结果用于执行该任务。否则,报告被分派是用于定位。如果报告被分派是用于降低,则将内部状态变量保持为在定位报告之后的第一简约报告上为真。该状态变量用于初始化内部简约状态。
图9-图25的方法用于与能够相对运动操作的任何定位设备一同使用。该方法的几个参数对于不同类型的设备的最佳操作来说是可调的。表格11列出了适合于鼠标使用的这些参数。表格12示出了适合于Synaptics公司生产的触摸板使用的值。
表格11 两者设备之间的不同主要涉及增益。触摸板比鼠标具有更高的敏感度,因此小数累加器基数较大,以提供类似的感觉。八分圆活动增益参数也相应地较大。由于触摸板典型地比鼠标具有更大的噪声,因此非零的触摸板活动噪声参数取消了八分圆活动,并使得更加难以为进展累加足够的活动。
表格12 输出小数累加增益是用于两个设备的一个值,但是能够对其进行改变以处理简约模式的整体敏感度。典型地,通过配置界面,能够基于每个用户对该参数进行定制。
状态进展表 图26-图29示出了将上述简约过程用于几个示例性二维路径的结果。每个图包含示例路径和状态进展表,状态进展表示出了当处理该路径时的简约状态进展。状态进展表的最左边列对应于路径的第一段,最右边列对应于最后一段。所示的持久状态值是相关路径段处理之后所假设的那些值。
图26示出了两个垂直取向路径的初始符号发现,一个主要向上行进(北),另一个主要向下(南)。在两种情况下,采用初始朝南的方向和初始负符号对简约过程进行初始化。转换状态变量初始设置为I,表示没有手征存在,直到发现初始符号。
对于朝南的路径,在初始正极性改变之后,小数输出累加值很快增长为负值。这是由于初始在南方的八分圆与朝南的运动的正点积被初始负符号取反。通过第5个路径段,已经累加了足够的小数输出来生成整数输出。在该点上,转换状态变为手征,允许旋转进展。然而,由于初始走向和输入路径一致,因此被量化走向不变。整数输出为负,从而输出符号也不变。
对于朝北的路径,在初始负极性改变之后,小数输出累加值很快增长为正值。这是由于初始在南方的八分圆与主要朝北的运动的负点积与初始负符号相乘而得到正极性。通过第5个路径段,已经累加了足够的小数输出来生成正整数输出。由于向北的行进生成整数输出,手征量化走向设置为N。整数输出为正的,因此符号状态变量也变换为正。
图27示出了包括线性方向颠倒的示例输出路径。在相关状态进展表格中,该方向改变所产生的输出符号改变用实线区分。从该表格中要注意的第一件事情是在行3和4中局部累加的增量几乎始终是规范的。这是由于在一个八分圆进展中和在最新八分圆与候选八分圆不一致的任何时候,发生规范化。第二个要注意的普通特征在于当前八分圆趋于轻微地对最新八分圆进行延迟。这是由于导致八分圆进展所必需的运动的量可以超过在单一报告中的可获得的量。例如,段3将要到SE,但是直到随后进展到处理段4也就是SE时,量化走向才从S调节到SE。仅仅这样,八分圆活动才能足以超过进展阈值。线性颠倒符号改变发生在段16,在该处八分圆走向颠倒。注意直到段18才发生正整数输出。
图28示出了与路径的略超过一次的行进相对应的8个输入路径和状态进展表格的图。引发了两次旋转符号颠倒,在路径的每个朝北的段中都有一次。注意,建立手征需要三个八分圆的变化。在每次手征关联之后,当前走向保持为旋转颠倒,并且其对着所建立的手征。一旦行进方向旋转了另外3个八分圆,就进行反转。因此,总的来说,旋转每6个八分圆,就发生颠倒,或者在该图的每次横穿时发生两次颠倒。注意,如果图被横穿超过1次,则颠倒会持续用起始位置进行注册。
图29示出了由与速度相关的进展掩盖所导致的线性颠倒。初始的高速旋转之后是更高速度的线性运动,然后是连续的进一步紧缩,较低的速度旋转。高速旋转增加了足够的八分圆活动阈值,从而使得随后的较低的旋转生成不足以导致八分圆进展的活动。当路径从N旋转到NW,再到W,再到SW时,当前量化走向保持在N。仅仅随后的持续不变的朝南运动足以克服所增加的活动阈值,但是到该时刻,N与S之间的4个八分圆的差导致线性颠倒。
图29的颠倒应该不同于图28所示的旋转所导致的颠倒。图29的颠倒类似于图27所示。对于人来说,很难进行完美的轨迹颠倒,因此大多数都包含至少少量的垂直旋转运动。在图29中的快速降低留下相对高的活动阈值,并且增加了在线颠倒过程中所允许的垂直运动的量。
可选择特征 先前所述的相对运动简约模式的一个潜在缺点在于运动的两个方向中的任意一个或者旋转的两个方向中的任意一个有时能够依赖于两个输出符号中的任意一个。对于连续运动来说,这不是特别显著,因为正在执行的一维GUI任务所提供的视觉反馈能够产生连续的感觉。即,连续的用户动作产生在相同的方向上的运动,并在颠倒产生在相反方向上的运动。然而,当对定位设备进行非连续的突然移动时,该连续性就丢失了,使得记住哪个运动方向产生所期望的结果变得更加困难。因此,一些用户可能期望在定位设备不活动一段时期后,将简约模式重新设置为初始状态。该时期的长度取决于个人偏好并且是非常可变的。
此外,更加简单但是更加低级的性能选择采用了无符号简约模式。或者通过扩展模态信息,或者通过行进的原始方向,根据项目建立符号。在每一种情况下,对于模式的每次调用,符号都是固定的。输出量仍然与行进的输入距离成比例,从而允许无界输出。
能够进行很多其他修改和改进,以拓宽在此所述的概念。此外,在此所述的技术能够用于广大范围的计算环境和用于广大范围的输入设备。
虽然在先前的详细描述中已经至少说明的一个示例性实施例,但是应该理解的,存在庞大数量的等价变化。应该理解的是示例性实施例仅仅是示例,其目的并不是为了以任何方式限制本发明的范围、应用或者配置。正相反的是,先前的详细描述为本领域技术人员提供了实现示例性实施例的便利的路径,应该理解的是,在不脱离附带的权利要求及其法律等价物的范围的情况下,可以对所述元件的功能和排列进行各种修改。
权利要求
1、一种基于输入设备所检测到的运动来指示所期望的用户界面导航任务的方法,其中所述运动包括具有第一方向的第一部分和具有与所述第一方向相对的第二方向的第二部分,所述方法包括步骤
接收二维信号序列,其中所述第一多个二维信号对应于所述运动的第一方向,第二多个二维信号对应于所述运动的第二方向;
处理所述二维信号序列的至少一部分,以确定距离测量数据;和
提供多个一维输出信号,从而指示所述所期望的用户界面导航任务,其中所述多个一维输出信号的每一个
是响应于所述二维信号中的至少一个而被提供;
具有取决于所述距离测量数据的至少一部分的量;以及
具有公共极性。
2、如权利要求1所述的方法,其中输入设备是鼠标。
3、如权利要求1所述的方法,其中输入设备是轨迹球。
4、如权利要求1所述的方法,其中输入设备是操纵杆。
5、如权利要求1所述的方法,其中输入设备是惯性定位设备。
6、如权利要求1所述的方法,其中输入设备是视频游戏控制器。
7、如权利要求1所述的方法,其中所述用户界面导航任务是滚动的。
8、如权利要求1所述的方法,其中所述用户界面导航任务是从列表中选择一项。
9、如权利要求1所述的方法,还包括确定所述公共极性的步骤。
10、如权利要求9所述的方法,其中所述公共极性是从所述第一多个二维信号中至少一个的方向中确定的。
11、如权利要求9所述的方法,其中所述公共极性是预定的常量。
12、如权利要求9所述的方法,其中所述公共极性是从用户界面的配置中确定的。
13、如权利要求9所述的方法,其中所述公共极性对于用户是可选择的。
14、如权利要求9所述的方法,还包括响应于所述输入设备的所观察到的暂停动作时期,而重复所述确定步骤的步骤。
15、如权利要求1所述的方法,其中所述接收步骤还包括,接收与所述运动的第三部分相对应的第三多个二维信号,并且响应于该第三多个二维信号而生成第二多个一维信号,其具有与公共极性相反的极性。
16、如权利要求15所述的方法,其中所述运动的第三部分对应于所述运动的第二部分的基本颠倒。
17、如权利要求16所述的方法,其中所述颠倒是突然颠倒。
18、如权利要求16所述的方法,其中所述颠倒包括逐渐远离所述运动的已建立转动方向。
19、如权利要求18所述的方法,其中所述远离从所述已建立转动方向开始超过了90度。
20、如权利要求18所述的方法,其中所述已建立转动方向是至少部分地从运动的所述第一和第二部分中的充分转动中确定的。
21、如权利要求20所述的方法,其中充分的转动量基本上等于远离转动量。
22、如权利要求1所述的方法,其中所述处理部分包括确定所述距离测量数据,所述距离测量数据作为所述二维信号中至少一个的数学函数。
23、如权利要求22所述的方法,其中所述距离测量数据是从所述二维信号的量中确定的。
24、如权利要求23所述的方法,其中所述一维信号中的每一个的量基本上和所述距离测量数据中的至少一个成比例。
25、如权利要求1所述的方法,其中对所述一维信号的量的确定包括数学函数,所述数学函数包含所述距离测量数据中的至少一个。
26、如权利要求25所述的方法,其中所述数学函数包含至少一个线性部分。
27、如权利要求25所述的方法,其中所述数学函数包含至少一个非线性部分。
28、如权利要求27所述的方法,其中所述非线性部分为多项式函数。
29、如权利要求27所述的方法,其中所述非线性部分为指数函数。
30、如权利要求16所述的方法,还包括确定与所述二维信号中至少一个相关联的当前走向的步骤。
31、如权利要求30所述的方法,其中所述当前走向与多个潜在走向之一相关联。
32、如权利要求31所述的方法,其中所述多个潜在走向包括八分圆。
33、如权利要求32所述的方法,还包括确定候选走向。
34、如权利要求33所述的方法,还包括用所述候选走向更新所述当前走向的步骤。
35、如权利要求34所述的方法,其中所述更新步骤包括在所述候选走向的方向上累加一致的运动直到已经发生足够的运动为止。
36、如权利要求35所述的方法,还包括根据与所述候选走向不一致的运动来建立修正候选走向的步骤。
37、如权利要求36所述的方法,其中在所述当前走向的方向上的运动在所述当前走向方向上的候选走向一致。
38、如权利要求37所述的方法,其中与所述当前走向相对的三个八分圆中任意一个中的运动,其是和与所述当前走向相对的三个八分圆中任意一个中的候选走向相一致。
39、如权利要求38所述的方法,其中在所述当前走向中的运动或者在所述当前走向的右侧的八分圆和与所述当前走向最接近的八分圆两者的任意一个中的运动,其是与在所述当前走向的右侧的两个八分圆中的任意一个中的候选走向相一致。
40、如权利要求39所述的方法,其中在所述当前走向中的运动或者在所述当前走向的左侧的八分圆和与所述当前走向最接近的八分圆两者的任意一个中的运动,其是与在所述当前走向的左侧的两个八分圆中的任意一个中的候选走向相一致。
41、如权利要求40所述的方法,其中当所述当前走向更新到与所述当前走向相对的三个八分圆中任意一个中的候选走向时,所述公共极性改变。
42、如权利要求41所述的方法,还包括确定所述运动的预期转动方向的步骤。
43、如权利要求42所述的方法,其中从由所述当前走向、与所述当前走向相对的三个八分圆、以及在预期转动方向上与所述当前走向最接近的两个八分圆所组成的组中选择候选走向。
44、一种用于根据输入设备所检测到的运动来指示所期望的用户界面导航任务的方法,所述方法包括步骤
接收对应于所述运动的多个递增的二维信号序列,其中所述二维信号的量的和基本上大于所述二维信号的和的量;
从所述多个递增的二维信号中确定多个距离测量数据;以及
输出具有源自所述距离测量数据的公共极性的多个递增的一维信号,从而指示所述所期望的用户界面导航任务。
45、如权利要求44所述的方法,其中所述量的和至少是所述递增的二维信号的和的量的2倍。
46、一种使用输入设备输出用于指示所期望用户界面导航任务的信号的方法,所述方法包括
提供第一运动输入到所述输入设备,以生成二维输出信号;
将所述输入设备置于维度降低模式中;以及
提供第二运动输入,以生成具有公共极性的多个一维输出信号,其中所述第二运动输入包括
在第一方向上的第一移动,用于生成所述多个一维输出信号的第一子集,所述第一子集中的每一个都与所述第一运动的基本不同的部分的量有关;以及
在与所述第一方向基本相对的第二方向上的第二移动,用于生成所述多个一维输出信号的第二子集,所述第二子集中的每一个都与所述第二运动的基本不同的部分的量有关。
47、一种用于从二维定位设备的运动中指示用户界面导航任务的方法,所述方法包括步骤
获得所述运动的多个递增的二维测量数据,其中所述二维测量数据的量的和基本上大于所述二维测量数据的和的量;
从所述二维测量数据的量中获得多个递增的一维信号;以及
提供具有公共极性的所述多个递增的一维信号,从而指示所述用户界面导航任务。
48、一种具有存储在其中的计算机可执行指令的数据存储介质,所述指令用于响应于输入设备所检测到的二维运动,指示一维用户界面函数,所述计算机可执行指令包括
第一模块,其用于接收对应于所述二维运动的多个二维信号;
第二模块,其用于处理所述二维信号,以确定至少一个距离测量数据和所述二维运动的已建立转动方向;以及
第三模块,其用于生成所述用户界面功能的一维指示,其中所述一维指示包括量和极性,所述量作为所述至少一个距离测试数据的函数而确定,所述极性作为所述二维运动的已建立转动方向的函数而确定。
49、一种数据处理系统,包括
输入设备,其用于接收用户所施加的二维运动,并且用于生成对应于所述二维运动的多个递增的二维信号;
显示器,用于为用户显示一维用户界面功能;以及
处理器,其连接到所述输入设备以及连接到所述显示器,其中所述处理器用于从所述输入设备接收所述多个二维信号,并处理所述二维信号以确定至少一个距离测量数据,并且在所述显示器上生成所述用户界面功能的一维指示,其中所述一维指示包括作为所述至少一个距离测量数据和恒定极性的函数而确定的量。
50、如权利要求49所述的数据处理系统,其中输入设备为鼠标。
51、如权利要求49所述的数据处理系统,其中输入设备是轨迹球。
52、如权利要求49所述的数据处理系统,其中输入设备是操纵杆。
53、如权利要求49所述的数据处理系统,其中输入设备是惯性定位设备。
54、如权利要求49所述的数据处理系统,其中输入设备是视频游戏控制器。
55、如权利要求49所述的数据处理系统,其中所述用户界面功能是滚动的。
56、如权利要求49所述的数据处理系统,其中所述用户界面功能是从列表中选择项。
57、如权利要求49所述的数据处理系统,其中所述处理器还用于建立转动方向。
58、如权利要求57所述的数据处理系统,其中
所述输入设备还用于接收用户所施加的第二二维运动,以生成对应于所述二维运动的第二多个递增的二维信号;以及
所述处理器还用于从所述输入设备接收所述第二多个递增的二维信号,并处理所述第二多个二维信号以确定至少一个额外的距离测量数据,并确定与所述第二多个二维信号相关联的转动方向是与已建立转动方向相对的,并且在所述显示器上生成所述用户界面功能的第二多个一维指示,其中所述第二多个一维指示包括量和极性,所述量作为所述额外距离测量数据中的至少一个的函数而确定,所述极性与所述恒定极性相反。
59、一种用于响应于用户所提供的二维运动而指示一维用户界面功能的输入设备,所述输入设备包括
输入模块,其用于生成对应于所述二维运动的多个递增的二维信号;
处理模块,其用于处理所述二维信号以确定至少一个距离测量数据;以及
输出模块,其用于生成所述用户界面功能的一维指示,其中所述一维指示包括作为所述至少一个距离测量数据的函数而确定的量和恒定的极性。
60、如权利要求59所述的输入设备,还包括与所述处理模块通信的用户启动模式控制器开关,以在一维模式与二维模式之间对所述输入设备进行切换。
61、如权利要求59所述的数据处理系统,其中所述处理器还用于建立转动方向。
62、如权利要求61所述的数据处理系统,其中
所述输入模块还用于生成对应于所述用户提供的第二二维运动的第二多个递增的二维信号;以及
所述处理模块还用于从所述输入设备接收所述第二多个递增的二维信号,并处理所述第二多个二维信号以确定至少一个额外的距离测量数据,并且确定与所述第二多个二维信号相关联的转动方向是与已建立转动方向相对的;以及
所述输出模块用于在所述显示器上生成所述用户界面功能的第二多个一维指示,其中所述第二一维指示包括量和极性,所述量作为所述额外距离测量数据中的至少一个的函数而确定,所述极性与所述恒定极性相反。
63、一种用于从相对运动的定位设备的二维运动中生成一维用户界面信号的方法,所述方法包括
接收二维运动测量数据的序列作为输入,其中所述输入运动的第一部分具有基本上与所述输入运动的第二部分相对的方向;以及
生成一维信号的序列作为输出,其中每个输出信号都基本上在接收到所述二维运动测量数据中至少一个的同时生成,以及
每个输出信号都具有公共极性。
64、如权利要求63所述的方法,其中每个输出信号具有基本上从所述同时接收到的运动测量数据中确定的量。
65、一种用于从相对运动的定位设备的二维运动中生成一维用户界面信号的方法,所述方法包括
接收二维运动测量数据的序列作为输入,并生成一维输出信号的序列作为输出,其中每个输出信号都基本上与所述二维运动测量数据中至少一个同时生成,以及
每个输出信号具有基本上从由最近接收到的二维运动测量数据所指示的旋转方向中确定的符号。
66、如权利要求65所述的方法,其中每个输出信号具有基本上从所述同时接收到的运动测量数据中确定的量。
全文摘要
描述了用于从二维鼠标移动中生成一维GUI信号的各种方法。所述方法可以是模态的,允许鼠标用于二维任务和一维任务。在单一一维模态调用中,能够生成两个极性中任意一个的无界信号,同时保持在有界二维区域中并且不离开定位表面。所生成的一维信号的量和鼠标所经过的二维距离成比例。
文档编号G09G5/08GK101390034SQ200580010356
公开日2009年3月18日 申请日期2005年1月25日 优先权日2004年1月29日
发明者P·J·小奥斯贝克 申请人:辛纳普蒂克斯有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1