首页> 中国专利> 用于使用非线性指针移动来对准对象的系统和方法

用于使用非线性指针移动来对准对象的系统和方法

摘要

本发明提供了一种系统、方法和计算机可读介质,其当输入设备使得指针贯穿一个或多个对准区域时调整指针移动。将指针移动调整在对准区域中以允许用户容易地对准GUI对象。所调整的指针移动与从输入设备接收到的输入不成比例。与计算机显示的其它区域相比,将在该指针中具有“冲突”的对准区域取而代之的是,更少地响应于输入。

著录项

  • 公开/公告号CN1782965A

    专利类型发明专利

  • 公开/公告日2006-06-07

    原文格式PDF

  • 申请/专利权人 微软公司;

    申请/专利号CN200510083790.5

  • 申请日2005-04-20

  • 分类号G06F3/033(20060101);

  • 代理机构31100 上海专利商标事务所有限公司;

  • 代理人张政权

  • 地址 美国华盛顿州

  • 入库时间 2023-12-17 17:20:52

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2016-06-15

    未缴年费专利权终止 IPC(主分类):G06F3/033 授权公告日:20091111 终止日期:20150420 申请日:20050420

    专利权的终止

  • 2015-05-13

    专利权的转移 IPC(主分类):G06F3/033 变更前: 变更后: 登记生效日:20150423 申请日:20050420

    专利申请权、专利权的转移

  • 2009-11-11

    授权

    授权

  • 2007-06-13

    实质审查的生效

    实质审查的生效

  • 2006-06-07

    公开

    公开

说明书

技术领域

本发明通常涉及改善的图形用户界面。更确切地说,本发明涉及一种在图形用户界面中对准对象的改善的系统和方法。

背景技术

大量的计算机设备(例如,个人计算机、个人数字助理(“PDA”)、蜂窝电话、等等)采用图形用户界面(下文中称作“GUI”)与用户交互。GUI是以使用在计算机显示器上的图形来与计算机用户通信为特点的输入/输出(I/O)系统。用户通常采用诸如鼠标或轨迹球的输入设备来操纵并重定位在计算机显示器上的指针。当指针在显示器上的指定位置上且用户激活或“单击”输入设备时,信息输入到计算机设备中。因此,用户不需要记忆命令或具备键盘打字的知识来提供向计算机设备提供输入。

GUI通常将图形显示元素(下文中称作“GUI对象”)呈现为计算机显示器上的像素的二维图像。常常,用户希望对准GUI对象以便执行想要的功能或创建带有特定特征的文档。例如,为了创建带有专业外表的文档,用户可以希望在相同的垂直或水平位置上对准GUI对象。一个特别普通的对准任务是“堆叠”GUI对象以便在计算机显示器上连续地对准它们。

通常地,用户使用“单击及拖动”技术来对准GUI对象,其中诸如按钮单击的单个指针事件来选择GUI对象。一旦选择了GUI对象,指针移动GUI对象到新的位置,其中第二指针事件放置该GUI对象。使用拖动,通常难以完成对准两个或更多GUI对象,导致无效和较低的效率。在一些实例中,视力或体能减退、或缺乏锻炼的用户难以正确地定位所拖动的对象。在其它实例中,指针定位困难可能是归因于计算机设备的。

由于不能轻易地执行所希望的功能,因而无法将对象放置在计算机显示器上的特定位置将会导致问题。反之,用户可以需要反复地重调整指针以执行所希望的功能。已开发了对用于对准GUI对象的“单击及拖动”技术进行了改善的系统。例如,一些系统支持“快照(snapping)”选项,其中当定位时,GUI对象被自动移动到对准坐标位置的预定距离内。这种方法的缺陷是不能将GUI对象定位在距离对准坐标位置比预先确定的距离还短的位置。换句话说,如果没有将对象“快照”到对准的坐标位置上,那么用户不能将GUI对象放置在接近但并不在对准坐标位置的位置上。该方法另一个缺陷是用户必须通过例如,从下拉式的菜单选择菜单项来激活快照选项。一些用户可能不知道诸如“快照”的选项是可使用的,因而继续使用“单击及拖动”技术。如上所述,由于常常需要用户重复地再调整指针的位置以便精确地放置被拖动的对象,因而该方法导致失效。

需要用于对准GUI对象的系统和方法,其允许将GUI对象放置在计算机显示器上的任一位置。令人想望的是,所述系统和方法应当易于使用并不需要部分用户的知识或训练。本发明致力于这些需求和当前存在的其它缺点。

发明内容

按照惯例,在计算机显示器上的指针移动是与从输入设备(即,轨迹球、鼠标、等等)所接收的输入成比例的。本发明通常致力于将GUI对象与指针移动对准,所述指针移动与从输入设备接收的输入不成比例。更确切地说,本发明的实施方式提供当带有所选择的GUI对象的指针贯穿对准区域时调整指针移动的系统、方法和计算机可读介质。由在GUI对象中特定位置诸如连接点或外形顶点导出对准区域。由于每个GUI对象具有不同的位置,其指定对准的坐标位置,因而对准区域根据正进行校准的GUI对象进行变化。当对准区域被贯穿时,调整指针移动以便将请求输入的成比例放大的量来作用于指针的移动。例如,请求输入设备移动的较大的量来将指针在计算机显示器上移动一个增量距离。从用户的观点看,当与计算机显示器的其它区域相比较时,在该指针中具有“冲突”(friction)的对准区域是更不易做出响应的。

本发明一个实施方式是一种当输入使得指针贯穿一个或多个对准区域时调整指针移动的方法。该方法通过确定所计划的指针移动是否将贯穿对准区域的一组事件驱动例行程序来实现。如果所计划的指针移动将不贯穿对准区域,那么已经实现的指针定位软件计算指针的坐标位置。相反地,如果所计划的指针移动将要贯穿对准区域,该方法为指针计算所调整的坐标位置。计算调整指针移动以便请求成比例放大的输入量来作用于在对准区域中指针的移动。

在本发明另一实施方式中描述了计算机设备,其当输入使得指针贯穿一个或多个对准区域时来调整指针移动。计算机设备包括与包括输入设备、计算机显示器、移动调整模块、以及一个或多个应用程序的各种组件通信的操作系统。将移动调整模块配置为当指针贯穿一个或多个对准区域时调整指针的坐标位置。

在另一个实施方式中,提供了一种具有该内容的计算机可读介质,即,使得计算机设备根据在此描述的本发明进行操作的程序。

附图说明

对照附图,参考以下详细描述,本发明前述方面和许多附随优点将变得更加显而易见和易于理解,其中:

图1是计算机设备组件框图,包括用于根据本发明来调整指针移动的移动调整模块;

图2是部分计算机显示器的图画描绘,举例说明根据现有技术的指针移动;

图3是在图2中举例说明的计算机显示器部分的图画描绘,其中根据本发明将计算机显示器的一个像素指定为对准区域;

图4是在图2中举例说明的计算机显示器部分的可替换图画描述,其中根据本发明将计算机显示器的一个像素指定为对准区域;

图5是滑尺的图画描述,其举例说明了根据本现有技术的GUI对象的对准;

图6是图5的滑尺的图画描述,其中根据本发明滑尺包括对准区域;

图7是GUI对象的图画描述,根据现有技术举例说明GUI对象的对准;

图8是图7中举例说明的GUI对象的图画描述,其中根据本发明一个GUI对象包括对准区域;

图9是流程图,根据本发明举例说明确定如何调整指针移动的指针定位方法的一个示意性实施方式;

图10是流程图,举例说明适于在图9中使用的、当指针贯穿对准区域时计算调整的指针位置的计算方法的一个示意性实施方式;

图11是代表有方向的冲突曲线的图画描述,根据本发明举例说明指针移动的阻力的计算;

图12是代表有方向的冲突曲线的图画描述,根据本发明举例说明指针移动的阻力的计算;

图13是在图11中举例说明的有方向的冲突曲线的图画描述,根据本发明举例说明指针移动的阻力的计算;以及

图14是部分计算机显示器的图画描述,根据本发明举例说明在对准区域中的指针移动。

具体实施方式

本发明的实施方式提供了一种系统、方法和计算机可读介质,其当输入设备使得指针贯穿一个或多个对准区域时调整指针移动。正如本领域和其它领域的技术人员所知的,指针是用于将信息输入到计算机设备中的图示描述并通常表示为箭头。然而,可以用任一能够在计算机显示器上标识“热点(hot spot)”的图示描述来表示指针。根据本发明,调整指针移动以帮助用户对准GUI对象。当指针贯穿对准区域时,需要成比例放大量的输入(即,大量的指针输入设备移动)来作用于指针的移动。因而,无意的,输入设备的微小移动不会导致指针离开对准区域。

以下描述首先提供其中可以实现本发明的系统的概况。然后描述参考附图示出的方法,其当输入使得指针贯穿一个或多个对准区域时调整指针移动。在此描述的示意性实施例并非意图是排它行的,或者意图将本发明限制在所公开的确切的形式。类似地,在此描述的任何步骤是可以用其它步骤或步骤的组合来互换的,以便达到相同的结果。

图1提供可以在其中实现本发明实施方式的计算机设备100的示意性的概观。计算机设备100包括计算机显示器102、操作系统104、移动调整模块106、应用程序108、和输入设备110。计算机设备100可以是包括,但不局限于,个人计算机设备、基于服务器的计算机设备、个人数字助理、蜂窝电话、具有存储器的某种类型的其它电子设备、等等的各种设备的任意一种。为了便于举例说明并且由于它们对于理解本发明并不重要,因而图1未示出许多计算机设备的典型的部件,诸如存储器、键盘、中央处理单元、等等。

操作系统104可以是通用操作系统,诸如微软操作系统,UNIX操作系统,或者Linux操作系统。正如本领域或其它领域技术人员所公知的,操作系统104控制计算机设备100的总体操作并对担负硬件和基本系统操作,以及运行应用程序的管理。更具体地说,操作系统104确保诸如应用程序108的计算机程序能够使用硬件资源。正如在图1中所举例的,操作系统104与计算机显示器102通信,计算机显示器102可以包括典型的显示设备,诸如监视器(例如,CRT或LCD屏幕)、电视机、等等。计算机显示器102适于显示指针和其它GUI对象。

配置计算机设备100以执行诸如应用程序108的计算机程序,所述应用程序108使得GUI对象显示在计算机显示器102上。应用程序108可以是显示GUI对象的任一种计算机程序,所述GUI对象包括但不局限于,编辑器、字处理器、电子制表软件、浏览器、计算机辅助设计等等。

输入设备110与用户和操作系统104交互以指定事件驱动的例行程序来执行。正如本领域或其它领域技术人员所公知的,输入设备110可以是能够在计算机显示器102上控制指针的设备中任一种包括鼠标、轨迹球、触摸板等等。在一些计算机设备中,输入设备110可以包含在与计算机设备100相同的壳体中。这种布置常见于其计算机设备是笔记本计算机。用户可以操作输入设备110来操纵和重定位指针并在计算机显示器102上指定的位置激活指针。操作系统104监视指针移动和其它指针事件并提供用于诸如应用程序108的计算机程序的机制,以响应于这些事件而执行动作。

正如将从以下描述中更好地理解的,通过位于移动调整模块106中的一组事件驱动例行程序来实现本发明实施方式。正如在图1中所举例的,移动调整模块106与操作系统104互联并能够与之通信。正如以下更详细地描述的,当输入设备110生成指针移动时操作系统104通知移动调整模块106。移动调整模块106确定所计划的移动是否将贯穿对准区域,该对准区域可以是网格点、手柄(handle)、连接点、外形顶点、外形延伸、或能够对准GUI对象的计算机显示器的任何其它区域。如果所计划的移动不贯穿对准区域,那么移动调整模块106调整指针移动以便可以轻易地对准GUI对象。操作系统104从移动调整模块106接收调整的坐标位置并使得计算机显示器102在调整的坐标上显示指针。

当在计算机设备中实现根据本发明形成的软件时,例如在图1中举例说明的类型,计算机设备提供用于用户轻易对准GUI对象的途径。通过使得计算机程序更易于使用来允许用户轻易地对准GUI对象,提高了计算机技巧。

为了举例说明,在图2中描述了计算机显示器的表示部。正如本领域技术人员所知,计算机显示器是由像素组成的,像素是用于表示图像的基本单元。由于像素微小并且数目巨大,因而当显示时它们将合并成一个单一平滑的图像。将在计算机显示器上表示的像素的数目称作象素分辨率。典型地,像素分辨率被表达为一对数字诸如640×480其表明计算机显示器是由640个像素水平地、以及480个像素垂直地(或者总共640×480=307,200个像素)组成。图2是包含一组高度放大的像素的计算机显示器200的采样部分的图示描述。更确切的说,计算机显示器200的采样部分包含像素202、204、206、指针208、和表示指针208移动的路径210。如图2中所示,使用输入设备诸如输入设备110的用户用于重定位指针208穿过像素202、204、206。在图2中举例说明的指针208的移动与由用户生成的输入成比例。

图3举例说明了图2中所描述的计算机显示器200的采样部分,其中根据本发明将像素204指定为对准域。类似于图2,使用诸如输入设备110的输入设备的用户用于重定位指针208穿过像素202。然而,当指针208交叉像素204时,本发明实施方式调整指针的移动以便需要输入的成比例放大量(即,鼠标移动距离)以达到指针移动的预先确定量。换句话说,鼠标移动距离与指针移动距离的比率改变。如图所示,鼠标或其它输入设备需要穿越像素204移动距离的量比需要穿越计算机显示器200的其它区域的量要大三倍。因而,在图3中由指针208生成的路径300是图2中由路径210所描述的输入的相同量(即,鼠标移动)的表示。从用户的观点看,在指针移动中具有“冲突”的像素204,相比较计算机显示器200的其它区域而言请求更多的输入(即,鼠标距离移动)穿过像素204。

图4是图2-3中所描述的计算机显示器200的采样部分的可替换示图,其中像素204被指定为对准区域。与图3相似,用户使用输入设备以穿过计算机显示器200的部分。然而,在本发明的示意性实施方式中,调整指针位置以使请求穿越像素204的输入比请求穿越计算机显示器200的其它区域的输入大六倍。在图4中由指针208生成的路径400是由图2中路径210和图3中路径300所描述的输入(即,鼠标距离移动)的相同量的表示。

从图3和4的前述描述中易于理解,可以根据本发明的用途来变化对准区域阻力指针移动(此后称为“冲突因素”)的程度。例如,如果GUI是专门为视力或体能减退的用户设计的,那么可以使用高冲突因素来实现对准区域以便弥补用户减退的能力。

现在参考图5-8,将描述本发明的其它示意性方面。方便起见,在此的大部分描述都是在特定GUI对象的环境下描述的,但是应当理解,本发明也适用于其它GUI对象。因而,在此特定GUI对象的标记仅仅是举例说明的而不应当用于限制本发明。

图5举例说明了由许多计算机程序实现的机制通常称作滑尺。滑尺500包括不止一个GUI对象,包括控制按钮502、比例尺504、以及一个或多个包括比例指示器506的比例指示器。正如本领域技术人员公知的,由用户操作滑尺500来使用指针208选择控制按钮502并沿着比例尺504移动控制按钮502。典型地,滑尺500控制变量的值,所述变量诸如由连接到个人计算机的扬声器所播放的声音的音量层。由于用户可能不能轻易地决定指针208的位置在由比例指示器(诸如指示器506)所表示的值上,因而已经开发系统以协助用户对准控制按钮502。通常在图5中所举例说明的一个系统称作快照(snapping)。当位于至比例指示器506在预先确定的距离508内时,使用快照来自动地移动控制按钮502(即,快照)。快照的缺点就是不能将控制按钮502定位在预先确定的距离508内。因而,比例尺504的部分是不能被访问的无效空间。

图6举例说明位于根据本发明所创建的校准区域中的、在图5中所描述的滑尺500。与图5相似,用户能够通过指针208来选择控制按钮502并沿着比例尺504移动控制按钮502。与图5相反,为了协助用户将控制按钮502对准在接近比例指示器506的值上,因而调整指针208的移动。对于恒量的输入设备移动而言,当达到由比例指示器506所表示的值时,指针208移动减慢。将接近与比例指示器506的区域指定为校准区域,这可以允许用户轻易地将控制按钮502定位在接近控制按钮506的位置而无需快照比例指示器位置。以这种方式的控制按钮502的对准使得用户可以沿着比例尺504来访问另外的位置。

图6以一维环境来举例说明本发明的一个方面,其中校准两个GUI对象的垂直位置。图7和8以二维环境来举例说明本发明的一个方面。更确切地说,图7和8举例说明在计算机程序中执行的动作,通常称作堆叠。在图7中,所示的GUI对象700位于GUI对象702、704和706的三层堆栈以下的校准的位置中。以上所描述的快照的技术,也可以应用于二维环境中。然而,当快照发生在二维环境中时,至少二个预先确定的区域变为GUI对象的定位不可用的无效空间。在图7中所举例说明的实例中,对于GUI对象700的定位而言,垂直方向预先确定的距离708和水平方向预先确定的距离710都是达不到的。

图8举例说明在图7中所描述的GUI对象,如此定位以便GUI对象702位于由垂直轴预先确定的距离708和水平轴预先确定的距离710所统一定义的区域中。在对准区域连接点800中调整指针移动以便当达到连接点的坐标位置时指针208减速。在本发明一个实施方式中,当指针208位于连接点800的精确坐标位置时,将视觉、听觉或视觉反馈提供给用户。反馈向用户指示正确地对准了GUI对象700。

在堆叠GUI对象的情况中,图8举例说明本发明一个示意性方面。在图8所举例说明的示意性方面中,将连接点800指代为允许更容易地对准GUI对象的对准区域。然而,应当理解,可以以其它方式来对准GUI对象。例如,可以在不接触地情况下仅仅垂直地或水平地校准GUI对象,以便GUI对象分别具有相同的x坐标或y坐标。同样,变化对准区域的大小、形状、和位置来允许更容易地将GUI对象以相对的特定角度彼此对准。

可以结合获得帮助来实现本发明的方面,所述获得帮助引导指针指向对准区域。可在于此并发提交的、共同转让、共同未决的US专利申请NO______、标题为“System and Method For Acquiring Target With Intelligent PointerMovement”中找到引导指针指向计算机显示器上的特定区域的方法、系统和计算机可读介质的更详细的解释,其全文在此引入以供参考。

图9是流程图,举例说明根据本发明所形成的指针定位方法900的一个示意性实施方式。概括地说,指针定位方法900接收输入设备正生成指针移动的通知。方法900确定是否指针所计划的移动将贯穿对准区域。如果所计划的移动不贯穿对准区域,已经实现的(即,先前开发的)指针控制软件计算指针新的位置。相反地,如果所计划的移动贯穿对准区域,本发明的方面为指针计算调整的位置。继续参考图1-8及其附图描述,将描述在图9中举例说明的示意性指针定位方法900。

指针定位方法900在块902开始,其中该方法等待来自输入设备的指针移动事件。例如,当用户移动输入设备110时,它将生成指针移动事件并将该时间传送给操作系统104。如上所述,现有系统允许事件驱动应用程序来接收指针移动事件的通知并执行响应于该事件的动作。在示意性实施方式中,将本发明的事件驱动例行程序实现为回调函数。当操作系统104接收指针移动事件时,由操作系统104来启动指针定位方法900的执行。

当接收指针移动事件时,指针定位方法900进行到块904,其中方法900获得指针的当前位置和计划的位置。正如本领域技术人员所知,通常将指针的坐标位置表示成包括x坐标和y坐标的2元组。在计算机显示器上的一个位置被指定为2元组值为(0,0)的原点。当输入设备生成指针移动事件时,实现本发明的例行程序从操作系统104接收指针当前位置和计划的位置。

在指针定位方法900获得指针当前坐标位置和计划的坐标位置之后,计算指针的计划的速度。在块906,方法900获得在块902所接收的用于指针移动事件的时间间隔,并使用本领域公知的算术函数和计算机实现的例行程序来计算指针移动速度。

一旦指针移动速度是已知的,指针定位方法900前进到决定块908,其中方法900确定在块906所计算的指针移动速度是否高于预先确定的阈值。在本发明一个实施方式中,当指针所计划的速度高于预先确定的阈值时,在对准区域中不调整指针移动。在该实施方式中,方法900假设生成快速指针移动的用户不企图对准GUI对象。如果所计划的指针速度高于预先确定的阈值要,那么方法900前进到以下所描述的块918。相反的,如果计划的指针速度低于或等于预先确定的阈值时,方法900前进到决定块910。

在块910,方法900在计算机显示的校准区域计算坐标位置。如上所述,由GUI对象中的特定位置,诸如连接点或者外形顶点导出校准区域。由于每个GUI对象具有确定对准坐标位置的特性,因而对准区域根据正对准的GUI对象而变化。同样,对准区域的坐标位置(即,计算机显示器上的位置,其中指针移动是非线性的)取决于关于所选择的GUI对象的指针的位置。因而,计算指针的偏移量以允许方法900确定对准区域的位置。

在决定块912,方法900确定在902所接收的指针移动事件是否导致指针贯穿对准区域。本发明保留允许诸如应用程序108的计算机程序定义并使用对准区域的接口。本发明的方面追踪在计算机显示器上的所有对准区域的外形、位置、和大小。通过将所计划的指针移动与对准区域所占有的坐标位置相比较,方法900能够确定在块902所接收的指针移动是否使得指针贯穿对准区域。如果所计划的指针移动不贯穿对准区域,那么方法900前进到以下所描述的块920。相反地,如果所计划的指针移动贯穿对准区域,那方法900前进到块914。

由于指针所计划的移动贯穿对准区域,因而本发明的一个方面为指针计算调整的坐标位置。在块914,计算调整的坐标位置。以下参考图10一12来描述根据本发明用于计算所调整的指针位置的方法的一个实施方式。

在块916,指针定位方法900,用在块914所计算的调整的坐标位置来替代指针所计划的坐标位置。在块916,方法利用本领域公知的软件工程技术将所调整的坐标位置传送给操作系统104。在块916,方法900也将信息传递给操作系统104,所述信息表明指针是否贯穿对准区域以便实现本发明的计算机程序能够当对准GUI对象时向用户提供视觉、听觉、或触觉反馈。

在决定块918,进行测试以确定在块902所接收的事件是否导致指针贯穿另一对准区域。如在块912所述,通过将所计划的指针移动与现有对准区域的外形、位置、和大小进行比较,方法900确定事件是否导致指针贯穿校准区域。因此,当指针事件导致指针贯穿多个对准区域时,为贯穿而进行调整量的计算。如果所计划的指针移动贯穿另一个对准区域,那么方法900继续返回到块914,并且重复块914至块918直到在所有的对准区域中都调整了指针移动。相反地,如果所计划的指针移动没有贯穿另一个对准区域,那么方法900继续到块920。

在块920,提供指针以便浏览在块914所计算的坐标位置。由于用于提供浏览计算机显示器的指针的现有系统对于本领域技术人员是公知的,因而在此不描述指针表示过程。于是在块922,指针定位方法900终止。

应当理解,本发明实施方式并不局限于在图9中所示的方法。一些实施方式可以包括在图9中所示的另外的动作或删去其中的一些动作。例如,可以调整指针移动除了指针的速度。在该实施例中,可以删去块908,其确定所计划的指针移动是否在速度阈值的范围内。

图10是流程图,举例说明了根据本发明形成的计算方法1000的一个示意性实施方式。继续参考图1-9及其附图描述,现在将描述在图10中所示出的示意性计算方法1000。计算方法1000在块1002开始,其中方法1000确定指针贯穿对准区域的坐标位置。如上所述,本发明的方面接收指针当前坐标位置的和所计划的坐标位置并追踪对准区域的大小、外形、和位置。使用该信息,计算方法1000能够使用本领域公知的算术函数和计算机实现的例行程序来计算其中指针贯穿对准区域的坐标位置。

在块1004将所计划的指针移动分解成方向分量。诸如指针的任何实体的移动能够被算术地表示为向量。正如本领域及其它领域的技术人员所知,向量是即具有大小又具有方向的量。在两维环境中,可以将指针移动分解为水平分量和垂直分量,这允许分别计算在指针位置的垂直和水平方向上的变化。

在块1006,计算方法1000选择指针移动的方法分量。对于每个所选择的方向分量,计算方法1000在分量方向上调整所计划的指针移动。为了方便起见,在此的多数描述在两维环境中提供的,其中调整发生在垂直方向和水平方向。然而,应当理解到,本发明也可以应用于其它环境中,诸如三位环境中。在此对两维环境的参考标记和实施例仅仅用于举例说明并非构成本发明应用的限制。

在块1008,计算方法1000获得有方向性的冲突曲线,该冲突曲线量化在指针所计划贯穿的对准区域中的指针移动的阻力。根据三个变量来调整指针移动的量;(1)冲突因素,(2)对准区域大小,以及(3)冲突曲线的外形。正如参考图3-4所描述的,冲突因素是量化指针移动的每个像素阻力的变量。像素阻力指针移动的程度(即,冲突因素)可以根据GUI的目的来变化。同样,冲突因素可以根据指针移动的属性来变化。例如,用户生成快速指针移动不太可能是试图将指针放置在目标上。指针移动的阻力可以取决于另一个变量诸如指针速度。对准区域大小(即,在分量方向内的像素数目)作用于在更大的对准区域中指针移动的调整导致比在较小对准区域中指针移动的更大的总阻力。在图11-13中举例说明、并在下文中更详细地讨论了示意性冲突曲线。总之,冲突曲线画出对准区域大小对分配给对准区域的冲突因素的曲线以便可以轻易地计算指针移动所需的调整。

为了举例说明,在图11-13中举例说明了各个有方向性的冲突曲线。在图11中所举例说明的实施例中,在x轴上画出对准区域大小(即,在分量方向上像素的数目)在y轴上画出冲突因素。图11举例说明恒量有方向性的冲突曲线1100,即,指针移动有方向性的冲突曲线的恒量阻力。如以上参考图9所述,本发明允许计算机程序,诸如应用程序108来定义不同大小、外形和位置的对准区域。同样,如以上参考图4所述,可以使用分配给其冲突因素的不同值来定义对准区域,这允许开发者自定义用户区域满足计算机程序的需要。在本发明的可替换实施例中,在对准区域中增加指针的速度。在该实施方式中,分配给对准区域的冲突因素比分配给生成线性指针移动的计算机显示的区域的冲突因素要小。典型地,将(1)的冲突因素分配给生成线性指针移动的计算机显示的区域。因而,大于值(1)的冲突因素将造成指针移动的阻力,而小于值(1)的值将导致指针速度增加。本发明方面追踪对准区域的属性并生成冲突曲线,诸如有方向的冲突曲线1100。

图12举例说明冲突曲线1200,其在对准区域中的阻力指针移动中是非线性的,根据在对准区域中指针的位置来改变。类似于图11,将对准区域的大小(即,在分量方向上像素的数目)标示在x轴上而将分配给对准区域的冲突因素标示在y轴上。在本发明一个实施方式中,计算机程序可以使用非线性冲突因素来定义对准区域。此外,本发明的方面追踪分配非对准区域的属性并生成适当的有方向的冲突曲线。

返至图10,计算方法1000,在块1010,计算在块1008获得的有方向的冲突曲线下的总共区域。正如在下文中将更详细的描述的,有方向的冲突曲线下的区域是在对准区域中的一个分量方向上的指针移动的总共阻力的测量。在其他实例中,将通过有方向的冲突曲线来调整指针移动。在其它实例中,在有方向的冲突曲线下的部分区域被用于计算调整量。

在决定块1012,进行测试以确定在块1010所计算的在有方向的冲突曲线下的区域是否大于指针的移动的所选择的方向分量。如果在有方向的冲突曲线下的区域大于指针移动的所选择的方向分量,那么在指针移动的调整之后指针将保留在对准区域中。在该实例中,在有方向的冲突曲线下的部分区域被用于计算调整量。相反地,如果在有方向的冲突曲线下的区域不大于指针移动的所选择的方向分量,那么指针将将移动到对准区域以外。在该实例中,在有方向的冲突曲线下的总共区域,其代表指针移动总共阻力,是调整量。如果在有方向的冲突曲线下的区域大于指针移动的所选择的方向分量,那么计算方法1000前进到以下描述的块1016。相反地,如果在有方向的冲突曲线下的区域不大于指针移动的所选择的方向分量,那么方法1000前进到块1014。

在块1014,计算方法1000将在所选择地分量方向上的指针移动减小有方向的冲突曲线下的总共区域。例如,如果在贯穿长度为十个(10)像素的对准区域之后所计划的指针移动为五十(50)个像素并且在有方向的冲突曲线下的区域为三十个(30)单元,那么在分量方向上的最终指针移动是二十(20)个像素(50个像素-30个像素=20个像素)加上对准区域的长度。由于对准区域为十个(10)像素,因而总共指针移动为三十个(30)像素(20个像素+10个像素=30个像素)。于是方法1000前进到以下详细描述的块1018。

如果计算方法1000到达块1016,那么在有方向的冲突曲线下的区域大于在所选择的分量方向上的指针移动。在这种情形下,有方向的冲突曲线下的仅仅部分区域被用于计算调整量。正如参考图11-12所描述的,对准区域的大小(即,在分量方向上的像素的数目)标示在有方向的冲突曲线的x轴上。在块1016,计算方法1000确定x轴上的点,其中在有方向的冲突曲线下的区域等于在所选择的分量方向上所计划的指针移动。在该点之前的在有方向的冲突曲线下的区域被用于计算调整量。

最好参考该实例来描述在块1016的调整量的计算。图13是在图11中所描述的有方向的冲突曲线1100的说明。如上文所述,有方向的冲突曲线1100将对准区域的大小(即,在分量方向上的像素的数目)标示在x轴上并将冲突因素标示在y轴上。这些变量一起形成有方向的冲突曲线1100,其中生成在一个分量方向上的指针移动的恒定阻力。正如在图13中所举例说明的,在有方向的冲突曲线1100之下的总共区域1300等于50个单元(5个冲突因素×10个像素=50个单元)。如果在贯穿对准区域之后所计划的指针移动为四十个(40)像素,那么调整量等于三十二个(32)像素。正如以上所述,计算方法1000确定有方向的冲突曲线1100的x轴上的点1302,其中在曲线下的区域等于所计划的指针移动。在图13中所举例的实例中,其中有方向的曲线下的区域等于在所选的分离方向上的所计划的移动的x轴上的点1302为8个象素。从所计划的移动中减去其中有方向的冲突曲线下的区域等于所计划的移动的x轴上的点1302以获取调整量。在图13所举例的实例中,调整量等于三十二个(32)像素(40个像素-8个像素=32个像素)并且在所选择的分量方向上的最后指针移动为8个像素(40个像素-32个像素=8个像素)。

返至图10,在决定块1018,进行测试以确定是否指针移动的所有的方向分量都已经调整过了。如果指针移动的方向分量还没有经调整,那么计算方法1000前进返回到块1008并且重复1008至块1018直至在每个分量方向上都进行了调整。相反地,如果已经进行了所有所需的调整,那么方法1000前进到块1020其中方法终止。

应当理解,本发明的实施并不限于图10中所示的方法。其它实施方式可以包括另外的动作或替换图10中所示的一些动作。例如,本发明的一个实施方式增加了在对准区域中指针的速度。在该实施方式中,分配给对准区域的冲突因素小于分配给生成线性指针移动的计算机显示的区域的冲突因素。可以改变计算方法1000来说明增加在对准区域中指针速度的值。

为了举例说明,在图14中描述了计算机显示器1400的代表部,其包含一系列高倍放大的像素。更确切地说,计算机显示器1400的采样部包含像素1402、1404、1406、1408、1410,指针208、代表指针208移动的路径1412。在图14中也示出,用户采用输入设备,诸如输入设备110,来重定位指针208穿过像素1402、1404和1406。穿过像素1404和1406的指针208移动与有用户生成的输入不成比例,因为像素1404和1406是3×3像素对准区域1414的一部分。正如以上参考图9-10所描述的,当指针208贯穿对准区域,诸如对准区域1414时,指针调整方法900(图9)和计算方法1000(图10)调整指针208的移动以帮助用户对准GUI对象。为了确定调整量,计算方法1000获得有方向的冲突曲线,其量化在指针208所计划移动的每个方向的指针移动的阻力。在图14所举例的实例中,指针208计划在水平(即x方向分量)和垂直方向(即y方向分量)上都移动。由于在每个分量方向上指针移动的阻力是恒量,因而由计算方法1000所获得的有方向的冲突曲线是线性的。

在图14中,路径1412代表由单个指针208移动事件所生成的指针208移动。如在图14中所举例说明的,指针208最终的位置在对准区域1414之内。正如以上参考图10(块1012-1016)所描述的,当指针208的最终位置是在对准区域之内的,那么在有方向的冲突曲线之下的区域大于在每个分量方向上所计划的指针208的移动。在这种情形下,仅仅在每个有方向的冲突曲线之下的部分区域被用于计算调整量。相反地,如果指针208的最终位置是在对准区域1412之外的,那么在有方向的冲突曲线之下的总共区域都将用作调整量。

尽管目前已经举例说明并描述了本发明的优选实施方式,但是应当理解到,在所附权利要求的范围内,可以以其它方式而不仅仅是在此特别描述的这些方式来实现本发明。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号