对应用对象的多点触摸操纵的制作方法

xiaoxiao2020-7-22  5

专利名称:对应用对象的多点触摸操纵的制作方法
背景技术
平板PC或笔输入计算机是装备有触摸屏或图形输入板/屏幕混合技术的笔记本或平板形状的移动计算机,该技术允许用户用指示笔、数字笔、或手指尖来代替键盘或鼠标来操作计算机。平板PC提供了更加自然的输入形式,因为尤其是对于那些新使用计算机的人而言,草绘和手写是比键盘和鼠标熟悉得多的输入形式。平板PC还可以更容易访问,因为那些在身体上无法打字的人能够使用平板PC的附加特征来与电子世界交互。
多点触摸是指允许计算机用户使用多个手指或输入设备(例如指示笔)控制图形应用的交互技术的集合。多点触摸实施方式常常包括识别多个同时触点的触摸硬件(例如屏幕、桌、壁等等)和软件。多点触摸与一次仅识别一个触点的传统的触摸屏(例如计算机触摸板、ATM、购物自助服务终端)不同。多点触摸硬件可以感测使用热、手指压力、高捕获率相机、红外光、光学捕获、调谐电磁感应、超声接收机、换能器麦克风、激光测距仪、阴影捕获、以及其他机制的接触。存在多点触摸界面的许多应用,并且应用设计者和用户正在提出更多的应用。一些使用是个别化的(例如微软Surface、苹果iPhone、HTC Diamond) 0作为新的输入方法,多点触摸提供新的用户体验范例的潜力。
应用在没有应用软件从多点触摸硬件接收信息的接口的情况下不能使用多点触摸硬件。遗憾的是,每个多点触摸硬件设备都包括其自己的专有接口,并且应用创作者必须具有硬件设备的特定知识来编写与该设备一起工作的软件。例如,多点触摸硬件提供商可以提供内核模式驱动器和用户模式应用接口,通过该用户模式应用接口,用户模式软件应用可以与多点触摸硬件交互以接收触摸信息。应用创作者编写与用户模式应用接口通信的软件,但是应用创作者的软件仅仅与该多点触摸硬件一起工作。具有不同的多点触摸硬件设备的计算机用户不能使用该应用创作者的软件,除非该应用创作者制作该软件的与该计算机用户的设备一起正确运行的不同版本。这导致了应用创作者的非常有限的潜在市场, 减少了编写支持多点触摸交互的应用的动机,并且将最大数目的应用可用于的最流行设备的成本保持得高。
另一问题是,应用难以基于从多点触摸硬件所接收的触摸输入来确定用户的意图。触摸输入可以作为硬件在任何给定时刻感测到触摸输入之处的坐标的列表被接收。每个应用都必须包括用于解释坐标以及确定用户意图的软件。例如,如果应用接收关于两个不同触摸的信息,即第一位置处的第一触摸、然后稍后是新位置处的第二触摸,则由应用来确定用户是否针对第一触摸使用了一个手指并且针对第二触摸使用了另一手指,或者用户是否将同一手指从一个位置滑动到另一位置以产生第一触摸和第二触摸。根据应用的目的,对用户输入的这两种不同的解释可能具有大不相同的含义。

发明内容
在此所述的操纵系统为应用提供通用的平台和应用编程接口(API)以与各种多点触摸硬件设备通信,并且使得易于将多点触摸输入解释成一个或多个操纵。操纵与进行个别化的触摸输入相比更直接地映射到用户意图,并且添加对使用多点触摸接触对对象进行基本变换的支持。应用可以使用操纵来支持旋转、调整大小、以及同时平移多个对象。操纵系统输出包含旋转、比例和平移信息的二维OD)仿射变换。因此,使用该操纵系统,应用创作者可以更加专注于建立具有触摸能力的应用并且让操纵系统来处理底层变换和与多点触摸硬件的通信。
提供本发明内容以便以简化形式介绍将在以下的具体实施方式
中进一步描述的一些概念。本发明内容并不旨在标识出所要求保护的主题的关键特征或必要特征,也不旨在用于限定所要求保护的主题的范围。


图1是示出了一个实施例中的操纵系统的组件的框图。
图2是示出了一个实施例中的操纵的典型操作环境和组件之间的数据流的数据流图。
图3是示出了一个实施例中的通过触摸输入被操纵的应用对象的显示图。
图4是示出了一个实施例中的多点触摸应用使用该操纵系统进行的输入循环处理的流程图。
图5是示出了一个实施例中的操纵系统在该系统接收触摸输入时的处理的流程图。
具体实施例方式该操纵系统为应用提供公共平台和API以与各种多点触摸硬件设备通信,并且使得易于将多点触摸输入解释成一种或多种操纵。操纵与进行个别化的触摸输入相比更直接地映射到用户意图,并且添加对使用多个触摸接触对对象进行基本变换的支持。例如,从操纵系统接收操纵的应用创作者可以在不对输入执行附加解释的情况下将用户把手指从一个位置滑动到另一位置与用户放下两个不同手指区分开。操纵提供对多个同时交互的支持。应用可以使用操纵来支持旋转、调整大小、以及同时平移多个对象(例如照片)。与典型的基于窗口的用户界面不同,不存在每次将用户束缚于单个输入的焦点或激活的概念。 另外,应用可以检索操纵信息。操纵系统输出2D仿射变换,该2D仿射变换包含旋转、比例 (例如缩放)以及平移(例如水平移动)信息。
接触是对多点触摸硬件的个别化的触摸。例如,当用户将其手指放置在多点触摸硬件上,将其手指在周围移动并且提起其手指时,该事件序列是单个接触。该系统用接触标识符来标识每个接触。接触在其存在的时间内保留相同的标识符。当用户在周围移动各种接触时,系统将该运动解释成一个或多个操纵。例如,如果用户将两个接触移动得彼此更近或分开更远,则该系统可以确定该用户正在对对象进行缩放比例(例如对其进行放大或缩小)。作为另一例子,如果用户以圆周运动移动多个接触,则该系统可以将该移动解释成对象的旋转。每个应用都可以定义相关度不同的对象,因此由应用将系统的实例(称为操纵处理器)附加到用户可以在该应用内使用触摸输入进行操纵的每个对象。例如,照片浏览应用可以将操纵处理器附加到所显示的每个照片,使得用户可以在周围移动照片,对照片进行比例缩放,旋转照片等等。因此,应用创作者可以更加专注于建立具有触摸能力的应用并且让操纵系统来处理底层变换和与多点触摸硬件的通信。
图1是示出一个实施例中的操纵系统的组件的框图。操纵系统100包括硬件接口 110、一个或多个操纵处理器120、接触管理器130、输入变换组件140、以及应用接口 150。这些组件中的每一个都在此处进一步详细讨论。
硬件接口 110与硬件通信以接收触摸接触和移动。硬件接口 110可以包括若干子组件,这些子组件一起工作以提供触摸输入信息。例如,操作系统可以为多点触摸硬件制造商提供公共驱动器模型以为他们的特定硬件提供触摸信息。操作系统可以将通过该模型所接收的触摸信息翻译成窗口消息(例如在此所述的WM_T0UCH)并且将这些消息传递给应用。因此,硬件接口 110可以涉及硬件、硬件驱动器以及操作系统层的协调。其结果是到操纵系统的一系列消息,这些消息标识出特定的接触(例如手指的触摸)以及该接触随时间的坐标。例如,操作系统可以在新的接触被向下放置到多点触摸硬件上时提供消息,每当接触移动时提供消息,以及在用户提起接触离开多点触摸硬件时提供消息。
一个或多个操纵处理器120使用输入变换组件140来解释与某一应用对象相关联的每个接触的移动。操纵处理器120可以确定用户正在使用多个接触来执行单个动作。 例如,用户可以用一只手的所有五个手指触摸照片并且扭转其手以指示对照片进行旋转的意图。操纵处理器120接收五个分开的接触(每个手指一个)以及每个接触的坐标在用户旋转其手时的变化。操纵处理器120确定每个接触正在抓取同一对象并且执行同一旋转。 该系统将向应用通知用户旋转了该对象,但是应用可以忽略用户是使用两个、五个还是任意特定数目的手指或其他接触来执行该旋转。这大大简化了应用的创作,因为应用创作者可以处理与应用相关的那些类型的操纵,并且让操纵系统来解释从多点触摸硬件所接收的每个低级触摸输入的含义。
每个操纵处理器120都管理与该操纵处理器相关联的接触的列表,并且在操纵处理器120接收新的低级触摸信息时存储关于这些接触的速度矢量和平移信息。接触管理器 130是系统100的处理操纵处理器120的接触管理的一部分。由应用向操纵系统通知应当将哪些接触与每个操纵处理器相关联。应用可以在该应用接收低级触摸信息时例如通过使用与所接收的低级触摸信息相关联的坐标对应用对象进行命中测试来作出该确定。例如, 如果用户在照片编辑应用中将3个手指放在同一照片上,则应用确定与每个手指相关联的接触是触摸同一对象,并且将这3个接触中的每个与同一操纵处理器相关联。接触管理器 130代表操纵处理器120管理相关联的接触的列表,并且跟踪接触的移动以解释由用户所打算的对相关联的对象的操纵。
操纵处理器120使用输入变换组件140以单独和一齐两种方式作出关于所接收的各个接触的移动的含义的确定。例如,如果用户用两个手指操纵照片,这创建两个相应的输入接触,则操纵处理器120使用输入变换组件140来确定这两个接触之间的相对移动的含义。如果这两个接触移动得分开,则输入变换组件140可以确定用户正在对对象进行比例缩放以改变对象的大小。如果2个接触旋转,则输入变换组件140可以确定用户正在旋转对象。如果这两个接触都在某一方向上滑动,则输入变换组件140可以确定用户正在将对象水平移动到新的位置处。尽管每种类型的移动在此都是分开描述的,但是用户可以同时作出所有三种类型的移动,并且输入变换处理器可以将总体变换报告给应用。例如,用户可以在一个移动中对对象进行旋转、比例缩放和水平移动的全部项目。
应用接口 150与应用通信以接收信息并且将操纵变换提供给该应用。应用接口150从应用接收初始化信息。初始化信息可以规定应用对象针对某一对象和相关联的操纵处理器支持哪些类型的变换。例如,一些应用对象可以支持比例缩放但不支持旋转。初始化信息还可以规定对象的支点。操纵系统通过应用接口向应用提供操纵变换。例如,当操纵系统接收被系统解释成所识别的变换(例如旋转)的低级触摸输入时,该系统激发一事件以向应用通知该操纵。应用处理操纵变换以基于该变换来修改对象。例如,如果用户旋转了对象,则应用可以存储对象的新取向以在应用下次显示该对象时使用。
上面实现该系统的计算设备可包括中央处理单元、存储器、输入设备(例如,键盘和定点设备)、输出设备(例如,显示设备)和存储设备(例如,盘驱动器)。存储器和存储设备是可以用实现该系统的计算机可执行指令来编码的计算机可读介质,这表示包含该指令的计算机可读介质。此外,数据结构和消息结构可被存储或经由诸如通信链路上的信号等数据传送介质发送。可以使用各种通信链路,诸如因特网、局域网、广域网、点对点拨号连接、蜂窝电话网络等。
该系统的各实施例可以在各种操作环境中实现,这些操作环境包括个人计算机、 服务器计算机、手持式或膝上型设备、多处理器系统、基于微处理器的系统、可编程消费电子设备、数码相机、网络PC、小型计算机、大型计算机、包括任何上述系统或设备的分布式计算环境等。计算机系统可以是蜂窝电话、个人数字助理、智能电话、个人计算机、可编程消费电子设备、数码相机等。
该系统可以在由一个或多个计算机或其他设备执行的诸如程序模块等计算机可执行指令的一般上下文下予以描述。一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。通常,程序模块的功能可以在各个实施例中按需进行组合或分布。
图2是示出了一个实施例中的操纵系统的典型操作环境和组件之间的数据流的数据流图。多点触摸硬件设备通过硬件接口产生输入210。例如,该硬件可以通过由硬件制造商所提供的软件驱动器将输入210发送给操作系统。硬件接口向应用230提供输入事件220。例如,应用可以向操作系统通知应用230支持多点触摸用户输入,并注册以接收与多点触摸用户输入相关的消息。应用230接收低级触摸输入信息作为输入变化M0,并且将该输入变化240转发给在此所述的操纵系统250。例如,输入变化240可以使用一组坐标来描述与硬件的一个或多个触摸接触的每个移动,所述一组坐标指示每个接触的当前位置和其他移动特性。操纵系统250解释输入变化240并且向应用230通知一个或多个操纵事件 260,所述操纵事件260指示用户正在对所显示的对象执行的较高级的操纵。例如,如果接触的移动指示用户打算旋转对象,则操纵事件260指示旋转程度。
尽管该图示出了应用首先接收触摸输入并且将触摸输入传递给操纵系统,但是在一些实施例中,操纵系统直接从硬件接口接收触摸输入,解释触摸输入,并且向应用提供所解释的操纵事件。这表示一种替代架构,其提供相似的所产生的功能,但是给应用赋予对输入处理的更少控制。例如,该应用可能不能定义该系统将各个操纵处理器附加到的各个应用对象。在此所述的RTS插件是该系统的该替代架构的一个例子。
图3是示出了一个实施例中的通过触摸输入操纵的应用对象的显示图。应用可以同时显示和接收针对许多这样的对象的触摸输入。例如,这些对象可以代表存储在用户的计算机上的一个或多个照片。对象310具有由应用基于该应用的具体定义域所定义的边界320。例如,照片浏览应用可以具有代表用户照片的对象,并且该应用可以将每个所显示的照片的边缘定义成对象边界320。用户用位置330和340处的两个初始接触来触摸该对象。 例如,用户可以将其拇指放置在位置330处并且将其食指放置在位置340处。然后,用户旋转其手指并且将手指移动分开,使得接触终止于位置350和360。线370和380示出了由用户的移动所执行的近似旋转。线390示出了由用户的移动所执行的近似伸展。操纵系统不是提供触摸接触330-360的各个坐标,而是可以向应用指示由用户所执行的诸如旋转程度和与伸展相关的比例缩放因子之类的变换。
图4是示出了一个实施例中的多点触摸应用使用该操纵系统进行的输入循环处理的流程图。在框410,应用接收低级触摸输入。例如,操作系统或者操纵系统的实例从多点触摸硬件接收触摸接触信息,并且将该触摸接触信息转发给该应用。在框420,该应用标识出该输入所应用于的对象。例如,该应用可以通过将所接收的输入的坐标与由该应用所显示的每个应用对象的坐标相比较来对所接收的输入的坐标进行命中测试。如果触摸输入处于所显示的应用对象的边界内,则该应用确定该触摸输入应用于该对象。在框430,该应用向操纵API发送所接收的触摸输入和关于所标识出的应用对象的信息以用于调用该操纵系统(参见图幻。例如,该应用可以为每个应用对象创建数字标识符并且在每当触摸输入对应于该对象时将该数字标识符传递给操纵系统。
在框440,该应用从操纵系统接收操纵事件,该操纵事件描述对所标识出的应用对象的一个或多个操纵。例如,该应用可以接收描述应用对象的2D仿射变换的事件。为了简化说明,框440被串行地在框430之后示出。在实际中,该应用可以在操纵系统向应用通知操纵事件以前接收许多触摸输入事件。不一定存在触摸输入事件到操纵事件的一对一映射。由于操纵事件代表低级触摸输入的较高级解释,因此多个触摸输入可以组成单个操纵事件。在框450,应用处理所接收的操纵事件。例如,如果所接收的操纵事件是旋转,则应用可以在屏幕上旋转该应用对象并且存储应用对象新位置以供在该应用再次显示该应用对象时使用。操纵系统使应用不必执行特定于某一多点触摸硬件设备的步骤或者甚至不必知道哪个硬件正在提供多点触摸输入。另外,操纵系统使应用不必处理个别化的接触运动,并且允许应用专注于处理应用对象层的变换。
在框460,应用等待下一触摸输入。例如,应用可以调用诸如微软Windows上的 GetMessage之类的操纵系统提供的消息API,该消息API等待将被递送给应用的消息队列的下一消息。在判定框470,如果应用接收到下一触摸输入,则该应用循环到框410以处理该输入,否则该应用循环到框460以继续等待另外的输入。当应用关闭时,该应用退出输入循环(未示出)。
图5是示出了一个实施例中的操纵系统在该系统接收触摸输入时的处理的流程图。在框505,该系统一起接收触摸输入和标识出与该触摸输入相关联的应用对象的信息。 例如,触摸输入可以包括一个或多个触摸接触的坐标或其他位置信息,并且应用对象信息可以包括如下标识符该标识符被该应用分配给多点触摸硬件上该触摸输入所位于的某一显示的对象。在框510,该系统标识出与该应用对象相关联的操纵处理器。在判定框520, 如果该系统之前还未将操纵处理器与应用对象相关联,则该系统在框530继续进行,否则该系统在框540继续进行。在框530,该系统创建操纵处理器并且将其与该应用对象相关联,然后在框540继续进行。
8 在判定框M0,如果所接收的触摸输入指示该应用接收到新的触摸(例如触摸放下事件),则该系统在框550继续进行,否则该系统在框560继续进行。例如,用户可以做出手指与屏幕上对象的初始接触,或者将另一手指放下在(即接触)之前所触摸的对象上。 在框550,该系统将新的接触添加到与操纵处理器相关联的接触的列表,并且然后在框560 继续进行。在判定框560,如果所接收的触摸输入指示该应用接收到表示触摸接触已经被除去(例如触摸抬起事件)的通知,则该系统在框570继续进行,否则该系统在框580继续进行。例如,用户可以从之前所触摸的对象提起一个或多个手指。在框570,该系统从与操纵处理器相关联的接触的列表中除去该接触,并且然后在框580继续进行。在框580,该系统处理触摸输入以确定由该触摸输入所表示的任何操纵。例如,触摸移动可以指示旋转或平移操纵,而触摸接触去除可以指示操纵的完成。在框590,该系统激发操纵事件以将描述该操纵的变换信息发送给该应用。例如,该系统可以向该应用提供该对象的角旋转的程度。 在框590之后,这些步骤结束。
在一些实施例中,操纵系统是基于消息的操作系统的一部分,并且该系统接收与该操作系统从硬件接收的触摸输入相关的消息。例如,使用类似于用于鼠标消息的 WM_M0USEM0VE的范例,未来版本的微软Windows可以提供包含从多点触摸硬件接收的低级触摸移动信息的WMjOUCH消息。操纵系统还可以提供粒度更细的消息,比如WM_ TOUCHDOWN(当用多点触摸硬件作出新接触时)、WM_T0UCHM0VE(当现有接触移动时)、以及 WM_T0UCHUP (当接触被提离多点触摸硬件时)。接收与WM_T0UCH相关的消息的应用可以调用操纵系统并且将该消息传递给操纵系统以用于解释和处理。然后,该应用接收较高级事件,该较高级事件代表操纵系统基于所接收的低级触摸移动信息对用户所打算的操纵作出的解释。
在一些实施例中,操纵系统从诸如实时指示笔之类的专用硬件接收低级触摸移动信息。例如,微软平板PC软件开发包(SDK)提供应用创作者可用挂钩(hook)进行扩展的实时指示笔(RTQ组件。RTS挂钩从RTS硬件接收输入,并且可以对所接收的输入执行处理。 操纵系统可以提供如下的挂钩该挂钩可以被应用插入到RTS组件中以自动处理RTS以及其他输入以便如在此所述那样操纵应用对象。RTS挂钩向操纵系统提供接收输入的不同方式,但是操纵系统如之前所描述的那样解释输入并向应用激发描述该输入所蕴含的操纵的事件。用户可以使用指示笔和触摸输入的组合。例如,用户可以用指示笔绘制对象并且然后使用其手指旋转该对象。
在一些实施例中,操纵系统的操纵处理器从使用该系统的应用接收初始化信息。 例如,应用可以用关于应用对象的中心位置的信息来初始化操纵处理器。这可以允许操纵处理器更好地从所接收的低级触摸输入中解释用户的意图。例如,如果用户绕应用对象的中心以弧形旋转单个触摸接触,则该处理器可以将该运动作为旋转操纵。在没有初始化信息的情况下,该处理器可以将同一移动解释成以触摸接触所移动的圆弧简单地水平移动该应用对象。因此,通过向操纵处理器提供附加的应用上下文信息,应用可以允许操纵系统更好地解释用户操纵。
在一些实施例中,操纵系统允许应用在用户操纵某一对象的全部时间内重新使用相同的操纵处理器。例如,应用可以请求系统在应用启动时为每个应用对象创建操纵处理器并且在应用关闭以前一直使用该操纵处理器。应用也可以延迟每个操纵处理器的创建,直到用户使用触摸与某一对象交互(例如当该应用检测到对一对象的首次接触时)。在操纵处理器的寿命期间,接触可随着用户提离和触摸多点触摸硬件并且执行各种操纵而出现和消失。操纵处理器如在此所述的那样跟踪当前接触的列表和由接触移动所表示的操纵。
在一些实施例中,操纵系统延迟向应用激发事件,直到该系统已经接收到与某一操纵处理器相关联的每个接触的经更新的位置,或者直到已经经过一定时间。如果该系统过快地作出反应,比如在每个所接收的接触更新以后激发事件,则可能出现诸如似动非动 (stuttering)之类的问题。例如,如果用户用两个手指触摸应用对象并且将两个手指同时沿着多点触摸硬件往下拉,则可能的是系统将稍稍在一个接触的更新之前接收另一个接触。如果该系统在该系统一接收更新时就基于接触更新而激发事件,则该系统将报告该对象正在快速地来回旋转。反之,如果该系统在接收针对第二接触的新位置以前一直等待,或者等待一定的时间段(例如100毫秒)来接收针对第二接触的更新,则该系统可以正确区分用户以相同方向移动两个接触并且更新在时间上稍微隔开地被接收的情况和用户实际上通过仅移动所述接触之一来旋转对象的情况。因此,该系统可以执行该附加的处理来提供令人满意的用户体验。
在一些实施例中,操纵系统是应用可调用的公共控制的一部分,以提供公共用户接口。微软Windows提供用于显示列表、树、按钮等等的公共控制。同样,操纵系统可以提供基于多点触摸的控制以用于以在此所述的方式操纵应用对象。例如,该系统可以提供允许用户显示一个或多个对象并操纵这些对象的散布控制。散布控制处理的是对低级触摸输入的处理以及将该输入与某一应用对象相关联,并且该应用从该控制接收事件以处理对应用对象的操纵。例如,如果该控制指示用户调整了对象的大小,则该应用可以存储对象的新大小。
在一些实施例中,操纵系统提供单个触摸接触的增强型解释。例如如前面所述的那样,当该应用用对象的中心或其他参考点(例如角)的位置来初始化操纵处理器时,该系统可以将单个接触绕应用对象的中心的旋转解释成旋转而不是平移。类似地,该系统可以根据预先定义的含义来解释其他单个触摸移动。例如,该系统可以将用户对单个接触进行绕对象的中心的圆周旋转处理成用于对对象进行比例缩放的操纵,而不是由用户的移动字面上所蕴含的旋转。
在一些实施例中,操纵系统以三维形式执行在此所述的处理。尽管在此描述了二维多点触摸硬件,但是本领域的普通技术人员能够认识到,该系统的在此所述的处理可以在硬件可用于以三维形式提供坐标移动的情况下同样良好地应用于三维(3D)操纵。例如, 检测压力或使用相机来检测用户手指的3D移动的硬件可以以三维形式向操纵系统提供移动的坐标,并且该操纵系统然后可以产生以多个3D方向描述对对象的操纵(例如旋转、比例缩放、以及平移)的3D变换。
下面的表定义了由操纵系统提供给应用以用于处理多点触摸用户输入的一个 API。

权利要求
1.一种计算机实现的用于将多点触摸输入变换成一个或多个操纵事件的方法,该方法包括从多点触摸硬件接收410低级触摸输入;标识出420所接收的低级触摸输入应用于的应用对象;向操纵API发送430所接收的低级触摸输入和关于所标识出的应用对象的信息,以用于将所接收的低级触摸输入解释成一个或多个操纵事件,其中该操纵API能够被多个应用调用并且提供应用无关的平台以用于处理多点触摸输入;从该操纵系统接收440描述对所标识出的应用对象的一个或多个操纵的操纵事件;以及通过修改所标识出的应用对象来处理450所接收的操纵事件,使得该应用在不执行特定于特定多点触摸硬件的步骤并且不解释个别化的低级触摸输入的情况下接收一个或多个操纵事件。
2.如权利要求1所述的方法,其特征在于,接收低级触摸输入包括从操作系统接收硬件触摸事件。
3.如权利要求1所述的方法,其特征在于,标识出应用对象包括通过将所接收的低级触摸输入的坐标与由该应用所显示的对象的坐标相比较以确定该触摸输入是否处于某一应用对象的边界内,来对所接收的低级触摸输入的坐标进行命中测试。
4.如权利要求1所述的方法,其特征在于,该应用为所显示的每个应用对象创建数字标识符,并且在每当所接收的低级触摸输入对应于一对象时将该对象的数字标识符传递给该操纵API。
5.如权利要求4所述的方法,其特征在于,接收操纵事件包括接收与所标识出的应用对象相关联的数字标识符。
6.如权利要求1所述的方法,其特征在于,接收操纵事件包括接收描述所标识出的应用对象的2D仿射变换的信息。
7.如权利要求1所述的方法,其特征在于,所接收的操纵事件与发送给该操纵API的多个低级触摸输入相关。
8.如权利要求1所述的方法,其特征在于,所接收的操纵事件是旋转,并且其中处理所接收的操纵事件包括在显示器上旋转该应用对象。
9.如权利要求1所述的方法,其特征在于,该应用在输入循环中执行该方法,以在该应用运行时处理所接收的多点触摸输入。
10.一种用于处理来自多点触摸硬件的触摸输入的计算机系统,该系统包括硬件接口 110,该硬件接口 110被配置为与该多点触摸硬件通信以接收触摸接触信息和所述触摸接触的移动;一个或多个操纵处理器120,所述操纵处理器120被配置为管理对与某一应用对象相关联的每个接触的移动的解释;接触管理器130,该接触管理器130被配置为存储关于与每个操纵处理器相关联的一个或多个接触的信息;输入变换组件140,该输入变换组件140被配置为解释所接收的各个接触的移动的含义以产生对应用对象的操纵;以及应用接口 150,该应用接口 150被配置为与该应用通信以接收接触移动信息并且将操纵变换提供给该应用。
11.如权利要求10所述的系统,其特征在于,该硬件接口协调多点触摸硬件、硬件驱动器、以及操作系统多点触摸层以提供触摸输入信息。
12.如权利要求11所述的系统,其特征在于,该操作系统多点触摸层向多点触摸硬件制造商提供公共驱动器模型,以对他们的特定硬件提供触摸信息。
13.如权利要求11所述的系统,其特征在于,该操作系统多点触摸层将从该多点触摸硬件接收的触摸信息翻译成窗口消息并且将这些消息提供给一个或多个应用。
14.如权利要求13所述的系统,其特征在于,该操作系统多点触摸层在新接触被向下放置在该多点触摸硬件上时、在接触移动时、以及在该接触被提离该多点触摸硬件时提供消息。
15.如权利要求10所述的系统,其特征在于,操纵处理器被进一步配置为确定用户正在使用多个接触来执行单个操纵。
16.如权利要求10所述的系统,其特征在于,该应用接口被进一步配置为从该应用接收初始化信息,该初始化信息规定支点和由该应用的对象所支持的操纵。
17.一种用指令编码的计算机可读存储介质,所述指令用于控制计算机系统通过一种方法将多点触摸输入解释成一个或多个应用对象操纵,该方法包括从应用接收505触摸输入和标识出与该触摸输入相关联的应用对象的信息;标识出510与所标识出的应用对象相关联的操纵处理器,其中操纵处理器将该多点触摸硬件的多个接触的移动解释成对所标识出的应用对象的一个或多个操纵;处理580所接收的触摸输入以解释由该触摸输入所表示的操纵,其中操纵至少包括下列项目中的一个或多个对所标识出的应用对象的旋转、平移和比例缩放;以及激发590将描述所解释的操纵的变换信息发送给该应用的操纵事件。
18.如权利要求17所述的计算机可读介质,其特征在于,进一步包括当所接收的触摸输入指示该应用接收了新接触时,将该新接触添加到与所标识出的操纵处理器相关联的接触的列表。
19.如权利要求17所述的计算机可读介质,其特征在于,进一步包括当所接收的触摸输入指示该应用接收了表示触摸接触被除去的通知时,从与所标识出的操纵处理器相关联的接触的列表中除去该接触。
20.如权利要求17所述的计算机可读介质,其特征在于,该计算机系统提供API,通过该API该应用提供触摸输入和接收与所标识出的应用对象相关的变换信息。
全文摘要
在此所述的操纵系统为应用提供公共平台和应用编程接口(API)以与各种多点触摸硬件设备通信,并且使得易于将多点触摸输入解释成一个或多个操纵。操纵与进行个别化的触摸输入相比更直接地映射到用户意图,并且添加对使用多点触摸接触对对象进行基本变换的支持。应用可以使用操纵来支持旋转、调整大小、以及同时平移多个对象。操纵系统输出包含旋转、比例缩放和平移信息的二维(2D)仿射变换。因此,使用该操纵系统,应用创作者可以将更加专注于建立具有触摸能力的应用并且让操纵系统来处理底层变换和与多点触摸硬件的通信。
文档编号G06F9/06GK102197359SQ200980143597
公开日2011年9月21日 申请日期2009年10月16日 优先权日2008年10月26日
发明者R·L·汤森, T·肖, B·D·斯格特, T·A·托尔塞特, E·M·盖德, S·S·普拉丹, J·A·蒂德 申请人:微软公司

最新回复(0)