CN102197377B - 多触摸对象惯性模拟 - Google Patents

多触摸对象惯性模拟 Download PDF

Info

Publication number
CN102197377B
CN102197377B CN200980143575.6A CN200980143575A CN102197377B CN 102197377 B CN102197377 B CN 102197377B CN 200980143575 A CN200980143575 A CN 200980143575A CN 102197377 B CN102197377 B CN 102197377B
Authority
CN
China
Prior art keywords
inertia
application program
simulation
user
application
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN200980143575.6A
Other languages
English (en)
Other versions
CN102197377A (zh
Inventor
R·L·汤森
X·屠
B·D·斯格特
T·A·托尔塞特
K·W·赛克斯
S·S·普拉丹
J·A·蒂德
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of CN102197377A publication Critical patent/CN102197377A/zh
Application granted granted Critical
Publication of CN102197377B publication Critical patent/CN102197377B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • G06F3/04883Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures for inputting data by handwriting, e.g. gesture or text
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/041Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/041Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means
    • G06F3/0412Digitisers structurally integrated in a display
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/04812Interaction techniques based on cursor appearance or behaviour, e.g. being affected by the presence of displayed objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04845Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range for image manipulation, e.g. dragging, rotation, expansion or change of colour
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04847Interaction techniques to control parameter settings, e.g. interaction with sliders or dials
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/0486Drag-and-drop
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/041Indexing scheme relating to G06F3/041 - G06F3/045
    • G06F2203/04104Multi-touch detection in digitiser, i.e. details about the simultaneous detection of a plurality of touching locations, e.g. multiple fingers or pen and finger
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/048Indexing scheme relating to G06F3/048
    • G06F2203/04806Zoom, i.e. interaction techniques or interactors for controlling the zooming operation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/048Indexing scheme relating to G06F3/048
    • G06F2203/04808Several contacts: gestures triggering a specific function, e.g. scrolling, zooming, right-click, when the user establishes several contacts with the surface simultaneously; e.g. using several fingers or a combination of fingers and pen

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • User Interface Of Digital Computer (AREA)
  • Position Input By Displaying (AREA)
  • Manipulator (AREA)
  • Processing Or Creating Images (AREA)

Abstract

惯性***为应用程序提供一种公用的平台以及应用程序编程接口(API),以延伸从各种多触摸硬件设备接收到的输入,以模拟应用程序对象的现实世界的行为。为自然地移动,应用程序对象应该表现出诸如弹性和减速之类的物理特性。当用户从对象提起所有接触时,惯性***向应用程序提供额外的操纵事件,以便该应用程序可以处理事件,好像用户仍在利用触摸移动对象。惯性***基于对对象的行为的模拟,生成事件。如果用户将一个对象移动到到另一对象,则惯性***模拟对象的边界特征。如此,惯性***提供用户使用多触摸硬件操纵应用程序对象的更加逼真的移动,API提供跨多个应用程序之间的操纵的一致的感觉。

Description

多触摸对象惯性模拟
背景技术
平板PC或笔输式计算机,是配备有触摸屏或图形输入板/屏幕混合技术的笔记本或板式(slate shaped)移动计算机,这种技术可使用户利用指示笔、数字笔或指尖而不是键盘或鼠标来操作计算机。平板PC提供更自然的输入形式,因为勾画和手写是比键盘和鼠标熟悉得多的输入形式,特别是对于对计算机不熟悉的新人来说。平板PC也可以更容易访问,因为在物理上不能输入的那些人可以使用平板PC的附加特征能够与电子世界进行交互。
多触摸表示可使计算机用户使用多个手指或输入设备(例如,指示笔)控制图形应用程序的一组交互技术。多触摸实现通常包括识别多个同时的触摸点的触摸硬件(例如,屏幕、平板、墙壁(wall)等等)和软件。多触摸是相对于一次只识别一个触摸点的传统的触摸屏(例如,计算机触摸板、ATM、购物自助服务终端)而言的。多触摸硬件可以使用热量、手指压力、高俘获率照像机、红外光、光学捕捉、调谐的电磁感应、超声波接收器、传感麦克风、激光测距仪、阴影捕捉,及其他机制,来感应触摸。存在许多多触摸接口的应用程序,应用程序设计人员和用户正在提出更多。某些用途是专用的(例如,Microsoft Surface、Apple iPhone、HTC Diamond)。作为新的输入方法,多触摸提供了新用户体验的范例的潜力。
若没有供应用程序软件从多触摸硬件接收信息的接口,应用程序就不能使用多触摸硬件。令人遗憾的是,每一个多触摸硬件设备都包括其自己的专有的接口,应用程序作者必须具有硬件设备的特定知识来编写同该设备一道工作的软件。例如,多触摸硬件提供商可以提供内核模式驱动程序和用户模式应用程序接口,用户模式软件应用程序可以通过该接口与多触摸硬件进行通信,以接收触摸信息。应用程序作者编写与用户模式应用程序接口进行通信的软件,但是,应用程序作者的软件只与该多触摸硬件一道工作。带有不同的多触摸硬件设备的计算机用户不能使用该应用程序作者的软件,除非应用程序作者编制了正确地与计算机用户的设备一起操作的软件的不同的版本。这会为应用程序作者产生非常有限的潜在市场,降低了编写支持多触摸交互的应用程序的动机,并使具有最大数量的可用应用程序的最流行的设备的成本非常高。
另一问题是应用程序难以基于从多触摸硬件接收到的触摸输入来确定用户的意图。触摸输入可以作为坐标列表来接收,其中,硬件在任何给定时间感应触摸输入。每一应用程序都必须包括解释坐标并确定用户的意图的软件。另外,用户的意图可以延伸到接收到的实际触摸输入之外。用户可以预期虚拟对象表现得如它们在物理世界中那样。例如,用户可以预期能够通过快速轻弹(flick)他/她的手指,将文件从桌面的一侧“抛”(toss)到另一侧。这种类型移动不受预期用户将他/她的手指从屏幕的一侧一直拖到另一侧的当前多触摸应用程序的支持。即使一个应用程序为此类型的移动提供支持,其他应用程序也不能从它那里得到好处,如此应用程序作者必须重复第一应用程序作者的工作以在他们的应用程序中提供相同功能。
发明内容
惯性***为应用程序提供一种公用的平台以及应用程序编程接口(API),以延伸从各种多触摸硬件设备接收到的输入,以模拟对象的现实世界的行为。由应用程序接收到的操纵只基于与多触摸硬件的接触的移动,来描述对象的移动。然而,为了自然地移动,对象也应该表现出诸如弹性和减速之类的物理特性。当用户从对象提起所有接触时,惯性***向应用程序提供额外的操纵事件,以便该应用程序可以处理事件,好像用户仍在利用触摸移动对象。然而,惯性***基于对对象的行为的模拟,实际生成事件。如果用户将一个对象移动入另一对象,则惯性***基于对象的边界特性来发送操纵事件。如此,惯性***提供用户使用多触摸硬件操纵的应用程序对象的更加逼真的移动,API提供跨多个应用程序之间的操纵的一致的感觉。
提供本概述是为了以精简的形式介绍将在以下详细描述中进一步描述的一些概念。本概述并不旨在标识出所要求保护的主题的关键特征或必要特征,也不旨在用于限定所要求保护的主题的范围。
附图说明
图1是示出了一个实施例中的惯性***的组件的框图。
图2是示出了一个实施例中的惯性***的典型的操作环境和组件之间的数据的流动的数据流程图。
图3是示出了一个实施例中的通过用户触摸操纵的应用程序对象的显示图。
图4是示出了一个实施例中的使用惯性***处理操纵事件的多触摸应用程序的输入循环处理的流程图。
图5是示出了一个实施例中的当***接收到触摸输入时惯性***的处理的流程图。
图6是示出了一个实施例中的使用惯性***处理惯性事件的多触摸应用程序的处理的流程图。
图7是示出了一个实施例中的惯性处理***的模拟组件的处理的流程图。
具体实施方式
惯性***为应用程序提供一种公用的平台以及API,以延伸从各种多触摸硬件设备接收到的输入,以模拟对象的现实世界的行为。例如,当用户停止推现实世界的对象时,这些对象通常不会立即停止移动,而是表现出某种惯性,并继续移动,直到摩擦力使它们减慢,最后停止。在某些实施例中,触摸输入首先经历将一个或多个接触的移动解释为操纵的过程。操纵比单个触摸输入更加直接地映射到用户意图,并为使用多个触摸接触的对对象的基本变换添加了支持。应用程序可以使用操纵来同时支持旋转、缩放,以及平移多个对象(例如,照片)。可以将操纵描述为包含旋转、缩放(放大或缩小),以及平移(例如,平移)信息的二维(2D)仿射变换。
对多触摸硬件的每一个触摸都叫做接触。例如,当用户将他/她的手指置于多触摸硬件上,四处移动他/她的手指,以及提起他/她的手指时,该系列事件是单个接触。例如,如果用户将两个接触移动得更靠近到一起或彼此更远离,则***可以判断用户正在缩放(例如放大或缩小)一个对象。作为另一个示例,如果用户以圆周运动方式移动多个接触,那么,***可以将移动解释为对象的旋转。每一应用程序都可以以不同的方式定义相关的对象,如此,该由应用程序将***的实例(叫做操纵处理器)附加到用户可以使用应用程序内的触摸输入来操纵的每一对象。例如,照片浏览应用程序可以将操纵处理器附加到每一个显示的照片,以便用户可以四处移动照片,缩放照片,旋转照片等等。
由应用程序处理的操纵只基于接触的移动,来描述对象的移动。然而,为自然地移动,对象也应该表现出诸如弹性和减速之类的物理特性。当用户从对象提起所有接触时,惯性***向应用程序提供额外的操纵事件,以便该应用程序可以处理事件,好像用户仍在利用触摸移动对象。然而,惯性***基于对对象的行为的模拟,实际生成事件。例如,如果用户在对象在特定方向上具有速度时提起接触,那么,惯性***持续发送指示该对象正在在该方向移动的事件,随时间当对象减速而减慢。如果用户将一个对象移动入另一对象,如屏幕的边缘,则惯性***基于对象的边界特性来发送操纵事件。例如,如果应用程序作者将两个对象定义为弹性的,那么,当用户向彼此移动两个对象时,这两个对象会从彼此弹回。如此,惯性***提供用户使用多触摸硬件操纵的应用程序对象的更加逼真的移动,API提供跨多个应用程序之间的操纵的一致的感觉。
图1是示出了一个实施例中的惯性***的组件的框图。惯性***100包括硬件接口110、一个或多个操纵处理器120、输入变换组件130、模拟组件140,以及应用程序接口150。此处更详细地描述了这些组件中的每一个。
硬件接口110与硬件进行通信,以接收触摸接触和移动。硬件接口110可包括一起协作以提供触摸输入信息的多个子组件。例如,操作***可以为多触摸硬件制造商提供共同的驱动程序模型,以为他们的特定硬件提供触摸信息。操作***可以将通过此模型接收到的触摸信息转换为窗口消息(例如,此处所描述的WM TOUCH),并将这些消息传递到应用程序。如此,硬件接口110可以涉及硬件、硬件驱动程序、以及操作***层的协调。结果是发往惯性***的标识特定接触(例如,手指的触摸)以及随时间的接触的坐标的一系列消息。例如,当在多触摸硬件上有新的接触时,操作***可以提供消息,每当接触移动时,提供消息,以及当接触离开多触摸硬件时,提供消息。
一个或多个操纵处理器120使用输入变换组件130来解释与特定应用程序对象相关联的每一接触的移动。操纵处理器120可以判断用户正在使用多个触点以执行单一动作。例如,用户可以利用一只手的全部五个手指触摸照片,并扭曲他/她的手以指出旋转照片的意图。操纵处理器120接收五个单独的接触(每一个手指,一个接触),并随着用户旋转他/她的手,改变每一接触的坐标。操纵处理器120判断每一接触正在抓取同一个对象,并执行同一旋转。***将通知应用程序,用户旋转了对象,但是,应用程序可以忽略用户是使用两个、五个或任何特定数量的手指或其他接触来执行旋转。这大大地简化了对应用程序的创作,因为应用程序作者可以处理与应用程序有关的那些类型的操纵,并将其留给惯性***来解释从多触摸硬件接收到的每一个低级别的触摸输入的含义。
操纵处理器120使用输入变换组件130来独自或协调地进行关于接收到的各种接触的移动的含义的判断。例如,如果用户正在利用两根手指操纵照片从而产生两个对应的输入接触,那么,操纵处理器120使用输入变换组件130来确定两个接触之间的相对移动的含义。如果两个接触移动离开,那么,输入变换组件130可以判断用户正在缩放对象,以改变对象的大小。如果两个接触旋转,那么,输入变换组件130可以判断用户正在旋转对象。如果两个接触都在一个特定方向滑动,那么,输入变换组件130可以判断用户正在将对象平移到一个新的位置。虽然单独地讨论了每一种类型的移动,但是,注意,用户可以同时进行所有三种类型的移动,并且输入变换处理器可以将总的变换报告到应用程序。例如,用户可以在一个运动中旋转、缩放,和平移一个对象。
在用户基于为对象定义的初始化参数和约束停止触摸对象之后,模拟组件140模拟应用程序对象的持续的移动。应用程序可以利用与对象相关联的操纵处理器120的最终状态初始化模拟组件140。应用程序还可定义对象的各种特性,诸如对象的边界应该如何表现。模拟组件140使用基于物理学的技术来在用户释放了对象之后的时段模拟对象的行为。例如,模拟组件140可以如同在用户移动对象时以由应用程序接收到的操纵事件那样同样的形式向应用程序继续引发通知。然后,应用程序可以专注于对对象的移动作出反应而不关心什么动作(用户或物理)导致对象移动。本领域技术人员将认识到,用于以软件模拟虚拟对象的等效物理行为的很多已知的技术。
应用程序接口150与应用程序进行通信,以接收信息并将操纵变换提供到应用程序。应用程序接口150从应用程序接收初始化信息。初始化信息可以指定对于特定对象,应用程序对象支持哪些类型的变换,以及相关联的操纵处理器,以及当用户不再移动对象时用于模拟组件140的初始化数据。例如,某些应用程序对象可以支持水平缩放,但不支持旋转。初始化信息还可指定对象的枢轴点。惯性***通过应用程序接口将操纵变换提供到应用程序。例如,当惯性***接收***解释为识别的变换(例如,旋转)低级别的触摸输入时,***引发将有关操纵的信息通知给应用程序的事件。应用程序处理操纵变换以基于变换来修改对象。例如,如果用户旋转对象,那么,应用程序可以存储对象的新的朝向,以在应用程序下一次显示对象时使用。作为另一个示例,如果基于模拟组件140的计算,在用户释放对象之后对象继续旋转,那么,应用程序可以存储对象的新的朝向。
在其上面实现了***的计算设备可包括中央处理单元、存储器、输入设备(例如,键盘和指示设备)、输出设备(例如,显示设备),以及存储设备(例如,磁盘驱动器)。存储器和存储设备是可以用实现***的计算机可执行指令来编码的计算机可读介质,意味着包含指令的计算机可读介质。另外,数据结构和消息结构可以被存储或通过诸如通信链路上的信号之类的数据传输介质传输。可以使用各种通信链路,如因特网、局域网、广域网、点对点拨号连接、蜂窝电话网络等等。
***的各实施例可以在各种操作环境中实现,操作环境包括个人计算机、服务器计算机、手持式或膝上型设备、多处理器***、基于微处理器的***、可编程消费电子产品、数码相机、网络PC、小型计算机、大型计算机、包括上述***或设备中的任一个的分布式计算机环境等。计算机***可以是蜂窝电话、个人数字助理、智能电话、个人计算机、可编程消费电子产品、数码相机等等。
可以在由一台或多台计算机或其他设备执行的诸如程序模块之类的计算机可执行的指令的一般上下文中来描述本***。一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。通常,程序模块的功能可以按需在各个实施例中进行组合或分布。
图2是示出了一个实施例中的惯性***的典型的操作环境和组件之间的数据的流动的数据流程图。多触摸硬件设备通过硬件接口产生输入210。例如,硬件可以通过由硬件制造商所提供的软件驱动程序向操作***发送输入210。硬件接口向应用程序230提供输入事件220。例如,应用程序可以通知操作***,应用程序230支持多触摸用户输入,并注册以接收与多触摸用户输入相关的消息。应用程序230作为输入变化240接收低级别的触摸输入信息,并将输入变化240转发到操纵***250。例如,输入变化240可以使用指示每一个接触的当前位置及其他移动特性的一组坐标,描述与硬件的一个或多个触摸接触的每一个移动。操纵***250解释输入变化240,并将一个或多个操纵事件260通知给应用程序230,操纵事件260指示用户正在对显示的对象执行的较高级别的操纵。例如,如果接触的移动指示用户打算旋转对象,则操纵事件260指示旋转的程度。
当用户完成移动对象(例如,当应用程序接收到已经从触摸硬件中移除了触摸对象的每一个接触的通知时),应用程序230向惯性***280发送初始化信息270。惯性***280确定对象的下一位置,并提供类似于当用户移动对象时操纵***250所提供的操纵事件260的惯性事件290。应用程序230还提供驱动计时器,以周期性地调用惯性***280,以通过惯性事件290提供对象的下一位置。应用程序230以类似于操纵事件的方式处理惯性事件。
虽然图示出了应用程序首先接收触摸输入并将触摸输入传递到操纵***和惯性***,但是,在某些实施例中,这些***直接从硬件接口接收触摸输入,解释触摸输入,并将解释的操纵事件提供到应用程序。同样,应用程序可能不知道,在用户停止利用触摸移动对象之后,单独的惯性***280提供惯性事件,而是可能在用户移动对象过程中并且然后当对象基于惯性而移动时从一个接口接收到事件。这表示提供类似的结果功能但是给予应用程序对于对输入的处理的较少的控制的替换的体系结构。例如,应用程序可能不能定义***将单个操纵处理器附加到其中的单个应用程序对象。此处所描述的RTS插件是该***的此替换的体系结构的一个示例。
图3是示出了一个实施例中的通过用户触摸操纵的应用程序对象的显示图。应用程序可以同时显示并接收对于许多这样的对象的触摸输入。例如,操作***外壳应用程序可以显示存储在用户的计算机桌面上的一个或多个文档对象。在显示器310中,文档对象320表示用户的桌面上的用户希望使用触摸拖到回收站330中的文档。用户对文档对象320执行快速轻弹,导致***处理第一操纵位置340、第二操纵位置350,以及第三操纵位置360。当用户最初利用一个或多个手指(即,接触)触摸文档对象320时,应用程序接收第一操纵位置340。当用户在屏幕上滑动他/她的手指时,应用程序接收第二操纵位置350。当用户从屏幕上提起他/她的手指时,应用程序接收第三操纵位置。箭头365表示文档对象320的移动的矢量。
若没有惯性,文档对象320将停止在第三操纵位置360,这很可能不是用户想要的位置。基于当用户释放文档对象320时文档对象320的速度,惯性***向应用程序提供额外的操纵位置,就好像用户仍在触摸和移动文档对象320。当应用程序初始化惯性***并第一次调用惯性***的处理功能时,应用程序接收第一基于惯性的操纵位置370。当应用程序继续调用惯性***的处理功能时,应用程序接收第二基于惯性的操纵位置380。因为文档对象320的最后的操纵位置380在回收站330上方,因此,应用程序处理两个对象之间的接触(例如,通过将文档对象320放在回收站330中)。在所示出的示例中,尽管惯性***使文档对象320的移动减速,基于开始时用户移动文档对象320的高初始速度,文档对象320仍能在显示器310上移动相当的距离。
图4是示出了一个实施例中的使用惯性***处理操纵事件的多触摸应用程序的输入循环处理的流程图。在框410中,应用程序接收低级别的触摸输入。例如,操作***或惯性***的实例从多触摸硬件接收触摸接触信息,并将触摸接触信息转发到应用程序。在框420中,应用程序标识输入应用到的对象。例如,应用程序可以通过将接收到的输入的坐标与由应用程序显示的每一应用程序对象的坐标进行比较,来点击测试(hit test)接收到的输入的坐标。如果触摸输入在显示的应用程序对象的边界内,那么,应用程序判断触摸输入应用于该对象。在框430中,应用程序将接收到的触摸输入和有关标识的应用程序对象的信息发送到用于调用惯性***的操纵API(参见图5)。例如,应用程序可以为每一个应用程序对象创建数字标识符,并在每当触摸输入与该对象相对应时将该数字标识符传递到惯性***。
在框440中,应用程序从惯性***接收描述对已标识的应用程序对象的一个或多个操纵的操纵事件。例如,应用程序可以接收描述对应用程序对象的2D仿射变换的事件。注意,为简化说明,在框430之后按顺序地示出了框440。在实践中,在惯性***利用操纵事件通知应用程序之前,应用程序可以接收许多触摸输入事件。在触摸输入事件与操纵事件之间不需要有一对一映射。因为操纵事件表示对低级别的触摸输入的较高级别的解释,因此,多个触摸输入可以构成单个操纵事件。在框450中,应用程序处理接收到的操纵事件。例如,如果接收到的操纵事件是旋转,那么,应用程序可以在屏幕上旋转应用程序对象,并给应用程序对象存储新的位置,供当应用程序对象再次被显示时使用。惯性***免除应用程序执行特定多触摸硬件设备所特定的步骤,或者甚至不必知道哪一个硬件设备正在提供多触摸输入。另外,惯性***免除应用程序处理单个接触移动,并允许应用程序专注于处理应用程序对象级别的变换。
在框460中,应用程序等待下一触摸输入。例如,应用程序可以调用操作***所提供的消息API,如Microsoft Windows上的GetMessage,等待要被传送给应用程序的消息队列的下一消息。在判断框470,如果应用程序接收到下一触摸输入,那么,应用程序循环到框410,以处理输入,否则,应用程序循环到框460,以继续等待进一步的输入。当应用程序关闭时,应用程序退出输入循环(未示出)。
图5是示出了一个实施例中的当***接收到触摸输入时惯性***的处理的流程图。在框505中,***接收触摸输入以及标识与触摸输入相关联的应用程序对象的信息。例如,触摸输入可包括一个或多个触摸接触的坐标或其他位置信息,而应用程序对象信息可包括应用程序给多触摸硬件上的触摸输入所在的特定显示的对象指定的标识符。在框510中,***标识与应用程序对象相关联的操纵处理器。在判断框520,如果***没有预先将操纵处理器与应用程序对象相关联,那么,***继续执行框530,否则,***继续执行框540。在框530中,***创建操纵处理器,并将它与应用程序对象相关联,然后,继续执行框540。
在判断框540,如果接收到的触摸输入指示应用程序接收到了新的接触(例如,touch down事件),那么,***继续执行框550,否则***继续执行框560。例如,用户可以用手指与屏幕上的对象进行初次接触,或在以前触摸的对象上放另一手指(即,接触)。在框550中,***向与操纵处理器相关联的接触的列表添加新的接触,然后继续执行框560。在判断框560,如果接收到的触摸输入指示应用程序接收到了触摸接触被移除的通知(例如,触摸提起(touch up)事件),那么,***继续执行框570,否则***继续执行框580。例如,用户可以从以前触摸的对象提起一个或多个手指。在框570中,***从与操纵处理器相关联的接触的列表中移除接触,然后继续执行框580。在框580中,***处理触摸输入以确定由触摸输入所表示的任何操纵。例如,触摸移动可以指示旋转或平移操纵,而触摸接触移除可以指示操纵完成。在框590中,***引发向应用程序发送描述操纵的变换信息的操纵事件。例如,***可以向所述应用程序提供所述对象的角旋转程度。在框590之后,这些步骤结束。
图6是示出了一个实施例中的使用惯性***处理惯性事件的多触摸应用程序的处理的流程图。在框610中,应用程序判断用户已经释放了对象。例如,在对图4的框450中的操纵事件进行处理之后,应用程序可以接收操纵已完成的指示或用户已经提起触摸应用程序对象的所有接触的指示。在框620中,应用程序初始化惯性***。例如,应用程序可以将引用传递给处理对象的移动及其他初始化信息的操纵处理器。在框630中,应用程序设置将驱动惯性***的惯性处理周期的计时器。例如,应用程序可以设置每隔100毫秒将引发以处理对象的下一移动增量的计时器。在框640中,应用程序调用惯性***的处理功能(参见图7)。例如,惯性***可以提供“处理”函数(Process function),应用程序调用该函数来通知惯性***:是从自最后的模拟时段以来的周期内执行模拟的时候了。
在框650中,应用程序接收基于模拟的惯性来描述对对象的操纵的一个或多个惯性事件(例如,旋转、平移,和/或缩放)。例如,如果对象在特定方向移动,则应用程序可以接收描述在该方向的平移操纵的惯性事件。作为另一个示例,如果当用户释放对象时该对象正在放大,则应用程序可以接收描述缩放操纵的惯性事件。注意,为简化说明,在框640之后按顺序地示出了框650。在实践中,在惯性***利用惯性事件通知应用程序之前,应用程序可以多次调用惯性处理函数。在对处理函数和惯性事件的调用之间不需要有一对一映射。另一方面,在对处理函数的单一调用之后,惯性***可以将多个惯性事件通知给应用程序。
在框660中,在特定应用程序的上下文中,应用程序基于操纵的含义(例如,效果),来处理接收到的惯性事件。例如,如果接收到的惯性事件是旋转,那么,应用程序可以在屏幕上旋转应用程序对象,并给应用程序对象存储新的位置,以供当应用程序再次显示应用程序对象时使用。在判断框670,如果惯性事件已完成,那么,这些步骤结束,否则,***继续执行框680。惯性***可以作为来自处理函数的返回值或通过提供到应用程序的通知(例如,通过组件对象模型(COM)事件接口),来通知应用程序:特定模拟的操纵已完成。在框680中,应用程序等待计时器的下一次引发,然后,循环到框640,以调用惯性***处理函数。
图7是示出了一个实施例中的惯性处理***的模拟组件的处理的流程图。在框710中,组件接收初始模拟参数。例如,当用户停止触摸对象时,应用程序或操纵处理器可以提供应用程序对象的最终状态。在框720中,组件初始化基于物理学执行计算的模拟引擎以基于参数确定对象的行为的。例如,模拟引擎可以提供通过用户触摸输入启动的应用程序对象的逼真减速或弹性行为。在框730中,组件从应用程序接收处理调用。应用程序或其他组件通过每隔一定的时间间隔反复地调用处理函数以推进模拟,来驱动模拟过程。模拟组件还可在内部生成计时器。
在框740中,组件基于初始参数,任何前面的处理,以及自最后的处理调用经过的事件,来模拟对象的移动。处理调用还可提供指示应用程序希望模拟使用的时间的时间戳。这允许应用程序非实时地(例如,用于应用程序测试或调试)模拟应用程序行为。在判断框750,如果移动完成,那么,组件继续执行框760,否则,组件继续执行框770。组件可以基于诸如对象是否仍正在移动或者对象移动是否已经低于某一阈值之类的因素,判断移动已完成。在框760中,组件在下一惯性事件上设置完成标志。在框770中,组件引发惯性事件以向应用程序发送描述当前移动(例如,作为操纵)的变换信息。例如,***可以向所述应用程序提供所述对象的角旋转程度。在框770之后,这些步骤结束。
在某些实施例中,惯性***从应用程序接收对象约束。例如,应用程序可以定义对象的弹性、摩擦系数(来确定对象如何减速),对象的边界特性,等等。例如,应用程序作者可以定义用户可以移动的刚性对象以及有弹性的应用程序窗口边缘,以便当用户释放对象时,移入窗口边缘的对象从窗口边缘弹回。
在某些实施例中,当用户利用触摸输入来操纵对象时,惯性***从跟踪对象的移动的操纵***接收初始对象状态信息。例如,操纵***可以跟踪每一对象的当前位置,对象的历史移动,对象的线速度和角速度等等。应用程序作者可以向惯性***提供操纵的输出,以初始化惯性***,以便惯性***可以基于适当的物理学和对象的特征,平滑地继续对象的经过移动,并使其减慢。
在某些实施例中,惯性***从应用程序接收对对象的移动的限制。例如,应用程序作者可以对一旦用户释放了对象之后对象可以移动的距离定义上限。作为另一个示例,应用程序作者可以对一旦用户释放了对象之后对象可以移动多长时间定义上限。这些及其他限制允许应用程序作者调整惯性***以适合由应用程序操纵的对象的类型,并增强用户使用应用程序的体验。
在某些实施例中,惯性***不为具有低于预定义的阈值的移动的对象提供额外的移动。阈值可以是可由应用程序配置的。例如,惯性***可以具有特定对象线性速度或角速度,低于该速度,***在用户释放对象之后将不会继续对象的移动。如果对象在用户释放它时没有移动得非常快,则用户可能希望对象将原位不动,不继续移动。该阈值允许应用程序或惯性***的作者确定提供好的用户体验的操纵之后的移动级别。
在某些实施例中,惯性***从应用程序接收递增模拟移动的指令。例如,惯性***可以提供“处理”(Process)或“工作”(DoWork)函数,应用程序调用这些函数来命令惯性***执行总的模拟的一部分。惯性***可以预期应用程序设置计时器或周期性地调用该函数,以使惯性***根据自然的时间线来模拟某时间段内的移动。应用程序可以通过改变应用程序调用函数的频率来影响由惯性***所提供的操纵事件的特性。在其他实施例中,惯性***使用内部计时器来以定期的调度表方式提供操纵事件,直到每一对象都已经停止移动(例如,由于减速或其他模拟的力)。
在某些实施例中,惯性***是基于消息的操作***的一部分,该***接收与操作***从硬件接收到的触摸输入相关的消息。例如,使用类似于对于鼠标消息的WM_MOUSEMOVE的范例,Microsoft Windows的未来版本可以提供WM_TOUCH消息,该消息包含从多触摸硬件接收到的低级别的触摸移动信息。操作***还可提供更精细粒度的消息,如WM_TOUCHDOWN(当用多触摸硬件作出新的接触时)、WM_TOUCHMOVE(当现有的接触移动时),以及WM_TOUCHUP(当从多触摸硬件提起接触时)。接收与WM_TOUCH相关的消息的应用程序可以调用惯性***,并将消息传递到惯性***供解释和处理。然后,应用程序接收较高级别的事件,这些事件表示惯性***基于接收到的低级别的触摸移动信息,对由用户打算的操纵的解释。
在某些实施例中,惯性***从诸如实时指示笔之类的专门硬件接收低级别的触摸移动信息。例如,Microsoft平板PC软件开发工具包(SDK)提供了应用程序作者可以利用挂钩扩展的实时指示笔(RTS)组件。RTS挂钩接收来自RTS硬件的输入,并可以对接收到的输入执行处理。惯性***可以提供应用程序可以***到RTS组件中的挂钩,以自动处理RTS及其他输入,以操纵应用程序对象,如此处所描述的。RTS挂钩提供了惯性***接收输入的不同的方式,但是,惯性***解释输入并向应用程序引发描述由输入所暗示的操纵的事件,如前所述。用户可以使用指示笔和触摸输入的组合。例如,用户可以利用指示笔画一个对象,然后,使用他/她的手指旋转对象。
在某些实施例中,惯性***是应用程序可以调用以提供公用用户界面的公用控件的一部分。Microsoft Windows提供用于显示列表、树、按钮等等的公用控件。同样,惯性***可以提供用于以此处所描述的方式操纵应用程序对象的基于多触摸的控件。例如,***可以提供允许用户显示一个或多个对象并操纵对象的分散(scatter)控件。分散控件负责低级别的触摸输入的处理并将输入与特定应用程序对象相关联,应用程序从该控件接收事件以处理对应用程序对象的操纵。例如,如果该控件指示用户缩放了对象,那么,应用程序可以存储对象的新大小。
在某些实施例中,惯性***在三维空间执行此处所描述的处理。虽然此处描述了二维多触摸硬件,但是,本领域技术人员将认识到,此处所描述的***的处理可以同样应用于三维(3D)操纵,如果有硬件可用来在三维空间中提供坐标移动。例如,检测压力或使用照像机来检测用户的手指的3D移动的硬件可以向惯性***提供三维空间中的移动的坐标,然后,惯性***可以产生描述在多个3D方向对对象的操纵(例如,旋转、缩放,以及平移)的3D变换。
下表定义了一个API,惯性***将其提供到应用程序,用于在对象的基于用户触摸的移动之后,将基于惯性的移动提供到应用程序对象。
在上面的表中,惯性***可以在相同接口(在该接口上,应用程序以前接收基于用户移动的事件)上提供列出的事件。
从前面的描述中可以看出,可以理解,此处描述的惯性***的特定实施例只是为了说明,但是,在不偏离本发明的精神和范围的情况下,可以进行各种修改。例如,虽然在多触摸操纵的上下文中描述了***,但是,***提供了可以在诸如游戏之类的其他上下文及通常使用模拟的其他领域中使用的惯性的模拟。相应地,本发明不受限制,只受所附的权利要求书的限制。

Claims (13)

1.一种用于提供使用多触摸输入操纵的对象的逼真移动的计算机实现的方法,所述方法包括:
确定(610)用户已经通过从所述计算机的多触摸输入设备移除一个或多个接触,释放了在所述计算机上执行的应用程序对象,所述应用程序对象被显示在所述计算机的显示器上;
在所述确定之后,调用(640)惯性***的处理功能以在当前惯性处理周期内处理所述应用程序对象的移动的模拟,其中所述惯性***提供一种应用程序独立的平台以及惯性API,所述惯性API独立于所述应用程序对象的类型来模拟惯性对象的移动;
由所述应用程序接收(650)在所述确定之后由所述惯性API生成的惯性事件,其中所述惯性事件基于模拟的惯性来描述所述对象的操纵;以及
通过修改所述应用程序对象,基于所述对象的操纵在所述应用程序的上下文中的影响,处理(660)所述接收到的惯性事件并在所述显示器上相应地显示所述应用程序对象。
2.如权利要求1所述的方法,其特征在于,还包括,在判断所述用户释放了所述对象之后,通过传递描述当所述用户释放所述对象时所述对象的状态的一个或多个参数,初始化所述惯性***。
3.如权利要求1所述的方法,其特征在于,接收所述惯性事件包括接收描述所述应用程序对象的2D仿射变换的信息。
4.如权利要求1所述的方法,其特征在于,通过所述惯性事件所描述的所述操纵包括旋转操纵、平移操纵,以及缩放操纵中的至少一个。
5.如权利要求1所述的方法,其特征在于,所述接收到的惯性事件是旋转,其中处理所述接收到的惯性事件包括在显示器上旋转所述应用程序对象。
6.如权利要求1所述的方法,其特征在于,还包括设置确定惯性处理周期长度的计时器,其中所述应用程序在所述计时器的每一个引发时调用所述惯性API。
7.如权利要求6所述的方法,其特征在于,从所述惯性API接收所述模拟已完成的指示,当接收到所述指示时,使所述计时器过期。
8.如权利要求1所述的方法,其特征在于,接收所述惯性事件包括通过COM事件接口,接收通知。
9.一种用于控制计算机***模拟应用程序对象的移动的方法,所述应用程序对象通过多触摸输入预先移动,所述方法包括:
接收(710)一个或多个初始模拟参数,所述初始模拟参数提供与用户通过停止与所述计算机***的触摸输入设备的接触来释放所述应用程序对象时对应的所述应用程序对象的状态;
初始化(720)模拟引擎,所述模拟引擎基于所述初始模拟参数来执行计算以模拟所述应用程序对象的惯性;
接收(730)当前模拟周期的指示;
基于所述初始参数、任何前面的模拟引擎的惯性模拟以及自任何前面的模拟周期以来过去的时间,来模拟(740)所述应用程序对象的惯性移动;以及
引发(770)惯性事件以向所述应用程序发送描述所述应用程序对象的当前移动的变换信息,根据所述变换信息将所述应用程序对象显示在计算机***的显示器上。
10.如权利要求9所述的方法,其特征在于,所述模拟引擎在它通过所述用户触摸所述对象而启动之后模拟所述应用程序对象的逼真减速行为。
11.如权利要求9所述的方法,其特征在于,当所述应用程序对象与显示器上的另一元素重叠时,所述模拟引擎模拟所述应用程序对象的逼真弹性行为。
12.如权利要求9所述的方法,其特征在于,所述接收当前模拟周期到了推进模拟的时候的指示包括从所述应用程序接收对模拟处理函数的调用。
13.如权利要求9所述的方法,其特征在于,还包括判断所述模拟是否完成,如果所述模拟完成,通知所述应用程序,所述模拟完成。
CN200980143575.6A 2008-10-26 2009-10-16 多触摸对象惯性模拟 Active CN102197377B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/258,439 2008-10-26
US12/258,439 US8477103B2 (en) 2008-10-26 2008-10-26 Multi-touch object inertia simulation
PCT/US2009/060977 WO2010048051A2 (en) 2008-10-26 2009-10-16 Multi-touch object inertia simulation

Publications (2)

Publication Number Publication Date
CN102197377A CN102197377A (zh) 2011-09-21
CN102197377B true CN102197377B (zh) 2014-10-22

Family

ID=42117010

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200980143575.6A Active CN102197377B (zh) 2008-10-26 2009-10-16 多触摸对象惯性模拟

Country Status (11)

Country Link
US (5) US8477103B2 (zh)
EP (1) EP2342638B1 (zh)
JP (1) JP5475792B2 (zh)
KR (1) KR101597383B1 (zh)
CN (1) CN102197377B (zh)
AR (1) AR073981A1 (zh)
BR (1) BRPI0919074A2 (zh)
ES (1) ES2771356T3 (zh)
RU (1) RU2534486C2 (zh)
TW (1) TWI494795B (zh)
WO (1) WO2010048051A2 (zh)

Families Citing this family (98)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8225231B2 (en) 2005-08-30 2012-07-17 Microsoft Corporation Aggregation of PC settings
US8411046B2 (en) 2008-10-23 2013-04-02 Microsoft Corporation Column organization of content
US8086275B2 (en) 2008-10-23 2011-12-27 Microsoft Corporation Alternative inputs of a mobile communications device
US8477103B2 (en) * 2008-10-26 2013-07-02 Microsoft Corporation Multi-touch object inertia simulation
US8466879B2 (en) 2008-10-26 2013-06-18 Microsoft Corporation Multi-touch manipulation of application objects
KR101513019B1 (ko) * 2008-10-27 2015-04-17 엘지전자 주식회사 휴대 단말기 및 그 동작방법
US8238876B2 (en) 2009-03-30 2012-08-07 Microsoft Corporation Notifications
US8175653B2 (en) 2009-03-30 2012-05-08 Microsoft Corporation Chromeless user interface
US8836648B2 (en) 2009-05-27 2014-09-16 Microsoft Corporation Touch pull-in gesture
US8514188B2 (en) * 2009-12-30 2013-08-20 Microsoft Corporation Hand posture mode constraints on touch input
WO2011152224A1 (ja) * 2010-06-01 2011-12-08 日本電気株式会社 端末、処理選択方法、制御プログラムおよび記録媒体
JP2012003508A (ja) * 2010-06-16 2012-01-05 Toshiba Corp 情報処理装置、方法及びプログラム
CN102314297B (zh) * 2010-07-07 2016-04-13 腾讯科技(深圳)有限公司 一种窗口对象惯性移动方法及实现装置
KR101780020B1 (ko) * 2010-09-02 2017-09-19 삼성전자주식회사 인터페이스 방법 및 장치
US9110564B2 (en) * 2010-11-05 2015-08-18 Lg Electronics Inc. Mobile terminal, method for controlling mobile terminal, and method for displaying image of mobile terminal
KR101189630B1 (ko) 2010-12-03 2012-10-12 한국기술교육대학교 산학협력단 멀티터치를 이용한 오브젝트 제어장치 및 그 방법
US8982045B2 (en) 2010-12-17 2015-03-17 Microsoft Corporation Using movement of a computing device to enhance interpretation of input events produced when interacting with the computing device
US8988398B2 (en) 2011-02-11 2015-03-24 Microsoft Corporation Multi-touch input device with orientation sensing
US8994646B2 (en) 2010-12-17 2015-03-31 Microsoft Corporation Detecting gestures involving intentional movement of a computing device
US8660978B2 (en) 2010-12-17 2014-02-25 Microsoft Corporation Detecting and responding to unintentional contact with a computing device
US9244545B2 (en) 2010-12-17 2016-01-26 Microsoft Technology Licensing, Llc Touch and stylus discrimination and rejection for contact sensitive computing devices
US20120159383A1 (en) 2010-12-20 2012-06-21 Microsoft Corporation Customization of an immersive environment
US20120159395A1 (en) 2010-12-20 2012-06-21 Microsoft Corporation Application-launching interface for multiple modes
US8612874B2 (en) 2010-12-23 2013-12-17 Microsoft Corporation Presenting an application change through a tile
US8689123B2 (en) 2010-12-23 2014-04-01 Microsoft Corporation Application reporting in an application-selectable user interface
US9423951B2 (en) * 2010-12-31 2016-08-23 Microsoft Technology Licensing, Llc Content-based snap point
US8988087B2 (en) 2011-01-24 2015-03-24 Microsoft Technology Licensing, Llc Touchscreen testing
US8725443B2 (en) 2011-01-24 2014-05-13 Microsoft Corporation Latency measurement
US9201520B2 (en) 2011-02-11 2015-12-01 Microsoft Technology Licensing, Llc Motion and context sharing for pen-based computing inputs
US8982061B2 (en) 2011-02-12 2015-03-17 Microsoft Technology Licensing, Llc Angular contact geometry
US9542092B2 (en) 2011-02-12 2017-01-10 Microsoft Technology Licensing, Llc Prediction-based touch contact tracking
US8773377B2 (en) 2011-03-04 2014-07-08 Microsoft Corporation Multi-pass touch contact tracking
TWI483171B (zh) * 2011-03-10 2015-05-01 Chi Mei Comm Systems Inc 檔案管理系統及方法
US9383917B2 (en) 2011-03-28 2016-07-05 Microsoft Technology Licensing, Llc Predictive tiling
JP5743198B2 (ja) 2011-04-28 2015-07-01 株式会社ワコム マルチタッチ・マルチユーザ検出装置
US9104440B2 (en) 2011-05-27 2015-08-11 Microsoft Technology Licensing, Llc Multi-application environment
US9158445B2 (en) 2011-05-27 2015-10-13 Microsoft Technology Licensing, Llc Managing an immersive interface in a multi-application immersive environment
US9658766B2 (en) 2011-05-27 2017-05-23 Microsoft Technology Licensing, Llc Edge gesture
US9104307B2 (en) 2011-05-27 2015-08-11 Microsoft Technology Licensing, Llc Multi-application environment
US20120304132A1 (en) 2011-05-27 2012-11-29 Chaitanya Dev Sareen Switching back to a previously-interacted-with application
US8893033B2 (en) 2011-05-27 2014-11-18 Microsoft Corporation Application notifications
US8913019B2 (en) 2011-07-14 2014-12-16 Microsoft Corporation Multi-finger detection and component resolution
US8687023B2 (en) 2011-08-02 2014-04-01 Microsoft Corporation Cross-slide gesture to select and rearrange
US20130057587A1 (en) 2011-09-01 2013-03-07 Microsoft Corporation Arranging tiles
US9378389B2 (en) 2011-09-09 2016-06-28 Microsoft Technology Licensing, Llc Shared item account selection
US8922575B2 (en) 2011-09-09 2014-12-30 Microsoft Corporation Tile cache
US10353566B2 (en) 2011-09-09 2019-07-16 Microsoft Technology Licensing, Llc Semantic zoom animations
US9557909B2 (en) 2011-09-09 2017-01-31 Microsoft Technology Licensing, Llc Semantic zoom linguistic helpers
US9244802B2 (en) 2011-09-10 2016-01-26 Microsoft Technology Licensing, Llc Resource user interface
US9146670B2 (en) 2011-09-10 2015-09-29 Microsoft Technology Licensing, Llc Progressively indicating new content in an application-selectable user interface
US8933952B2 (en) 2011-09-10 2015-01-13 Microsoft Corporation Pre-rendering new content for an application-selectable user interface
TWI456449B (zh) * 2011-10-14 2014-10-11 Acer Inc 具有多個觸控介面的電子裝置以及利用多個觸控介面操控三維影像之方法
US9274642B2 (en) 2011-10-20 2016-03-01 Microsoft Technology Licensing, Llc Acceleration-based interaction for multi-pointer indirect input devices
US9658715B2 (en) 2011-10-20 2017-05-23 Microsoft Technology Licensing, Llc Display mapping modes for multi-pointer indirect input devices
KR101858608B1 (ko) * 2011-10-28 2018-05-17 엘지전자 주식회사 이동 단말기 및 이동 단말기의 제어 방법
JP5833906B2 (ja) * 2011-12-13 2015-12-16 任天堂株式会社 情報処理プログラム、情報処理装置、情報処理システムおよび情報処理方法
US9372612B2 (en) 2011-10-31 2016-06-21 Microsoft Technology Licensing, Llc Exposing inertial snap points
US9785281B2 (en) 2011-11-09 2017-10-10 Microsoft Technology Licensing, Llc. Acoustic touch sensitive testing
JP2013105395A (ja) * 2011-11-15 2013-05-30 Sony Corp 情報処理装置及び方法、並びにプログラム
US9389679B2 (en) 2011-11-30 2016-07-12 Microsoft Technology Licensing, Llc Application programming interface for a multi-pointer indirect touch input device
US9223472B2 (en) 2011-12-22 2015-12-29 Microsoft Technology Licensing, Llc Closing applications
US10872454B2 (en) 2012-01-06 2020-12-22 Microsoft Technology Licensing, Llc Panning animations
US8914254B2 (en) 2012-01-31 2014-12-16 Microsoft Corporation Latency measurement
US8902181B2 (en) 2012-02-07 2014-12-02 Microsoft Corporation Multi-touch-movement gestures for tablet computing devices
US9128605B2 (en) 2012-02-16 2015-09-08 Microsoft Technology Licensing, Llc Thumbnail-image selection of applications
US9977876B2 (en) 2012-02-24 2018-05-22 Perkinelmer Informatics, Inc. Systems, methods, and apparatus for drawing chemical structures using touch and gestures
CA2865004C (en) * 2012-02-24 2020-11-03 Cambridgesoft Corporation Systems, methods, and apparatus for drawing chemical structures using touch and gestures
CN105159562A (zh) * 2012-03-31 2015-12-16 北京奇虎科技有限公司 一种基于用户界面的操作触发方法、装置及终端设备
TWI476706B (zh) * 2012-04-30 2015-03-11 Pixart Imaging Inc 偵測物件移動輸出命令的方法及其系統
CN106201065B (zh) * 2012-05-08 2020-03-31 原相科技股份有限公司 侦测物件移动输出命令的方法及其***
US9317147B2 (en) 2012-10-24 2016-04-19 Microsoft Technology Licensing, Llc. Input testing tool
DE102013000272A1 (de) * 2013-01-09 2014-07-10 Daimler Ag Verfahren zum Bewegen eines auf einer Anzeigevorrichtung eines Fahrzeugs dargestellten Bildinhalts, Bedien- und Anzeigevorrichtung für ein Fahrzeug und Computerprogrammprodukt
US20140282279A1 (en) * 2013-03-14 2014-09-18 Cirque Corporation Input interaction on a touch sensor combining touch and hover actions
JP5983499B2 (ja) * 2013-03-29 2016-08-31 ソニー株式会社 表示制御装置、表示制御方法、およびプログラム
US9450952B2 (en) 2013-05-29 2016-09-20 Microsoft Technology Licensing, Llc Live tiles without application-code execution
FI20135508L (fi) * 2013-05-14 2014-11-15 Rovio Entertainment Ltd Kehittynyt kosketuskäyttöliittymä
CN104182116A (zh) * 2013-05-23 2014-12-03 中兴通讯股份有限公司 视图处理方法和视图处理终端
CN104346083A (zh) * 2013-07-25 2015-02-11 富泰华工业(深圳)有限公司 滑动触摸操作的显示控制***及方法
US9575639B2 (en) * 2014-02-27 2017-02-21 Ab Initio Technology Llc Compound controls
WO2015149347A1 (en) 2014-04-04 2015-10-08 Microsoft Technology Licensing, Llc Expandable application representation
CN105378582B (zh) 2014-04-10 2019-07-23 微软技术许可有限责任公司 计算设备的可折叠壳盖
CN105359055A (zh) 2014-04-10 2016-02-24 微软技术许可有限责任公司 计算设备的滑盖
US9727161B2 (en) 2014-06-12 2017-08-08 Microsoft Technology Licensing, Llc Sensor correlation for pen and touch-sensitive computing device interaction
US9870083B2 (en) 2014-06-12 2018-01-16 Microsoft Technology Licensing, Llc Multi-device multi-user sensor correlation for pen and computing device interaction
US9977566B2 (en) * 2014-06-24 2018-05-22 Google Llc Computerized systems and methods for rendering an animation of an object in response to user input
US10254942B2 (en) 2014-07-31 2019-04-09 Microsoft Technology Licensing, Llc Adaptive sizing and positioning of application windows
US10678412B2 (en) 2014-07-31 2020-06-09 Microsoft Technology Licensing, Llc Dynamic joint dividers for application windows
US10592080B2 (en) 2014-07-31 2020-03-17 Microsoft Technology Licensing, Llc Assisted presentation of application windows
US10642365B2 (en) * 2014-09-09 2020-05-05 Microsoft Technology Licensing, Llc Parametric inertia and APIs
US9674335B2 (en) 2014-10-30 2017-06-06 Microsoft Technology Licensing, Llc Multi-configuration input device
US10089291B2 (en) 2015-02-27 2018-10-02 Microsoft Technology Licensing, Llc Ink stroke editing and manipulation
US9950542B2 (en) 2015-03-12 2018-04-24 Microsoft Technology Licensing, Llc Processing digital ink input subject to monitoring and intervention by an application program
US10514803B2 (en) 2016-03-06 2019-12-24 Microsoft Technology Licensing, Llc Pen in field force sensing calibration
US10254857B2 (en) 2016-03-06 2019-04-09 Microsoft Technology Licensing, Llc Soft touch detection of a stylus
CN117435094A (zh) * 2016-03-28 2024-01-23 苹果公司 对另一电子设备的多功能设备控制
US11150798B2 (en) 2016-03-28 2021-10-19 Apple Inc. Multifunction device control of another electronic device
CN108803926A (zh) * 2018-05-29 2018-11-13 广东工业大学 一种基于触摸点的位移矢量和方向矢量的控制方法
CN111344658A (zh) * 2018-06-29 2020-06-26 深圳市汇顶科技股份有限公司 触摸屏调整方法、触控芯片及电子终端

Family Cites Families (150)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5153577A (en) * 1986-04-28 1992-10-06 Xerox Corporation Mapping character color attributes into grey pixel patterns
US5261098A (en) 1991-08-28 1993-11-09 Sun Microsystems, Inc. Method and apparatus for deriving object type and obtaining object type attribute values
US7345675B1 (en) 1991-10-07 2008-03-18 Fujitsu Limited Apparatus for manipulating an object displayed on a display device by using a touch screen
JP2827612B2 (ja) * 1991-10-07 1998-11-25 富士通株式会社 タッチパネル装置およびタッチパネル装置におけるオブジェクトの表示方法。
US6850252B1 (en) * 1999-10-05 2005-02-01 Steven M. Hoffberg Intelligent electronic appliance system and method
US5875108A (en) 1991-12-23 1999-02-23 Hoffberg; Steven M. Ergonomic man-machine interface incorporating adaptive pattern recognition based control system
US5475803A (en) 1992-07-10 1995-12-12 Lsi Logic Corporation Method for 2-D affine transformation of images
JP3244798B2 (ja) 1992-09-08 2002-01-07 株式会社東芝 動画像処理装置
US5563632A (en) 1993-04-30 1996-10-08 Microtouch Systems, Inc. Method of and apparatus for the elimination of the effects of internal interference in force measurement systems, including touch - input computer and related displays employing touch force location measurement techniques
US5553224A (en) 1993-08-04 1996-09-03 Xerox Corporation Method for dynamically maintaining multiple structural interpretations in graphics system
US5621434A (en) 1993-08-11 1997-04-15 Object Technology Licensing Corp. Cursor manipulation system and method
US5650941A (en) * 1994-09-07 1997-07-22 Intel Corporation Computer architecture for creating and manipulating displayable objects
US5495566A (en) 1994-11-22 1996-02-27 Microsoft Corporation Scrolling contents of a window
US5692143A (en) 1994-12-30 1997-11-25 International Business Machines Corporation Method and system for recalling desktop states in a data processing system
DE59509004D1 (de) 1995-03-10 2001-03-08 Heidenhain Gmbh Dr Johannes Mehrkoordinaten-Tastkopf mit gleichen Auslenkungen
US5691898A (en) 1995-09-27 1997-11-25 Immersion Human Interface Corp. Safe and low cost computer peripherals with force feedback for consumer applications
US5798769A (en) 1996-08-15 1998-08-25 Xerox Corporation Method and apparatus for maintaining links between graphic objects in a free-form graphics display system
US5790114A (en) 1996-10-04 1998-08-04 Microtouch Systems, Inc. Electronic whiteboard with multi-functional user interface
US6636197B1 (en) * 1996-11-26 2003-10-21 Immersion Corporation Haptic feedback effects for control, knobs and other interface devices
US6195628B1 (en) * 1997-03-13 2001-02-27 International Business Machines Corporation Waveform manipulation in time warp simulation
US6005551A (en) * 1997-04-25 1999-12-21 Microsoft Corporation Offline force effect rendering
US6052735A (en) * 1997-10-24 2000-04-18 Microsoft Corporation Electronic mail object synchronization between a desktop computer and mobile device
US8479122B2 (en) 2004-07-30 2013-07-02 Apple Inc. Gestures for touch sensitive input devices
US7840912B2 (en) 2006-01-30 2010-11-23 Apple Inc. Multi-touch gesture dictionary
US20070177804A1 (en) * 2006-01-30 2007-08-02 Apple Computer, Inc. Multi-touch gesture dictionary
EP2256605B1 (en) * 1998-01-26 2017-12-06 Apple Inc. Method and apparatus for integrating manual input
US6529210B1 (en) 1998-04-08 2003-03-04 Altor Systems, Inc. Indirect object manipulation in a simulation
JP2000089913A (ja) 1998-09-08 2000-03-31 Gunze Ltd タッチパネル入力座標変換装置
US6154210A (en) 1998-11-25 2000-11-28 Flashpoint Technology, Inc. Method and system for implementing button interface compatibility in touch-screen equipped digital imaging device
US7469381B2 (en) * 2007-01-07 2008-12-23 Apple Inc. List scrolling and document translation, scaling, and rotation on a touch-screen display
US6597378B1 (en) * 2000-01-18 2003-07-22 Seiko Epson Corporation Display device, portable information processing apparatus, information storage medium, and electronic apparatus
US6822635B2 (en) 2000-01-19 2004-11-23 Immersion Corporation Haptic interface for laptop computers and other portable devices
GB0008537D0 (en) 2000-04-06 2000-05-24 Ananova Ltd Character animation
US6590568B1 (en) 2000-11-20 2003-07-08 Nokia Corporation Touch screen drag and drop input technique
US7039234B2 (en) 2001-07-19 2006-05-02 Microsoft Corporation Electronic ink as a software object
US7038670B2 (en) 2002-08-16 2006-05-02 Sipix Imaging, Inc. Electrophoretic display with dual mode switching
US20030225890A1 (en) 2002-06-03 2003-12-04 Dunstan Robert A. State token for thin client devices
US11275405B2 (en) * 2005-03-04 2022-03-15 Apple Inc. Multi-functional hand-held device
US7027054B1 (en) * 2002-08-14 2006-04-11 Avaworks, Incorporated Do-it-yourself photo realistic talking head creation system and method
US7103852B2 (en) 2003-03-10 2006-09-05 International Business Machines Corporation Dynamic resizing of clickable areas of touch screen applications
US7884804B2 (en) * 2003-04-30 2011-02-08 Microsoft Corporation Keyboard with input-sensitive display device
US7324121B2 (en) * 2003-07-21 2008-01-29 Autodesk, Inc. Adaptive manipulators
JP3968717B2 (ja) 2003-09-25 2007-08-29 松下電工株式会社 照明器具
US7302650B1 (en) 2003-10-31 2007-11-27 Microsoft Corporation Intuitive tools for manipulating objects in a display
US7495659B2 (en) 2003-11-25 2009-02-24 Apple Inc. Touch pad for handheld device
US7167162B2 (en) 2003-12-12 2007-01-23 Avago Technologies Ecbu Ip (Singapore) Pte. Ltd. Apparatus and method for controlling a screen pointer
US7826641B2 (en) * 2004-01-30 2010-11-02 Electronic Scripting Products, Inc. Apparatus and method for determining an absolute pose of a manipulated object in a real three-dimensional environment with invariant features
US7961909B2 (en) * 2006-03-08 2011-06-14 Electronic Scripting Products, Inc. Computer interface employing a manipulated object with absolute pose detection component and a display
US7345681B2 (en) * 2004-02-17 2008-03-18 Microsoft Corporation Pen data capture and injection
FR2866726B1 (fr) 2004-02-23 2006-05-26 Jazzmutant Controleur par manipulation d'objets virtuels sur un ecran tactile multi-contact
CN101156322B (zh) 2004-06-22 2013-11-20 苹果公司 用于在无线通信网络中实现反馈的方法和***
US7519223B2 (en) 2004-06-28 2009-04-14 Microsoft Corporation Recognizing gestures and using gestures for interacting with software applications
US8381135B2 (en) 2004-07-30 2013-02-19 Apple Inc. Proximity detector in handheld device
US7653883B2 (en) * 2004-07-30 2010-01-26 Apple Inc. Proximity detector in handheld device
WO2006020305A2 (en) 2004-07-30 2006-02-23 Apple Computer, Inc. Gestures for touch sensitive input devices
US7728821B2 (en) 2004-08-06 2010-06-01 Touchtable, Inc. Touch detecting interactive display
US7724242B2 (en) * 2004-08-06 2010-05-25 Touchtable, Inc. Touch driven method and apparatus to integrate and display multiple image layers forming alternate depictions of same subject matter
US7434173B2 (en) 2004-08-30 2008-10-07 Microsoft Corporation Scrolling web pages using direct interaction
US20060077183A1 (en) * 2004-10-08 2006-04-13 Studt Peter C Methods and systems for converting touchscreen events into application formatted data
US7208730B2 (en) 2004-10-14 2007-04-24 International Business Machines Corporation Programmable molecular manipulating devices
US7683883B2 (en) * 2004-11-02 2010-03-23 Pierre Touma 3D mouse and game controller based on spherical coordinates system and system for use
US7711681B2 (en) 2004-11-05 2010-05-04 Accenture Global Services Gmbh System for distributed information presentation and interaction
US7574593B2 (en) 2004-12-03 2009-08-11 Hewlett-Packard Development Company, L.P. Persistent memory manipulation using EFI
DE102004060405A1 (de) 2004-12-14 2006-07-06 Voith Paper Patent Gmbh Verfahren und Vorrichtung zum Beladen von in einer Suspension enthaltenen Fasern oder enthaltenem Zellstoff mit einem Füllstoff
CN100374998C (zh) * 2005-03-01 2008-03-12 联想(北京)有限公司 一种触控式信息输入装置及方法
US7499058B2 (en) 2005-04-22 2009-03-03 Microsoft Corporation Programmatical access to handwritten electronic ink in a tree-based rendering environment
US7928959B1 (en) * 2005-05-05 2011-04-19 Imi Innovations Inc. System and method for multiple independent computer inputs using unique device and source identification systems
US20060250352A1 (en) 2005-05-05 2006-11-09 Mice Technoligies, Inc. System and method for improved cursor functionality
KR100811160B1 (ko) * 2005-06-02 2008-03-07 삼성전자주식회사 사용자명령을 3차원적으로 입력가능한 전자장치
US8085318B2 (en) 2005-10-11 2011-12-27 Apple Inc. Real-time image capture and manipulation based on streaming data
US20060292531A1 (en) 2005-06-22 2006-12-28 Gibson Kenneth H Method for developing cognitive skills
US7463263B2 (en) 2005-07-15 2008-12-09 Sap Portals Israel Ltd. Declarative specification of model visualizations
US20110157196A1 (en) * 2005-08-16 2011-06-30 Exent Technologies, Ltd. Remote gaming features
US8098885B2 (en) * 2005-11-02 2012-01-17 Microsoft Corporation Robust online face tracking
US8355410B2 (en) * 2007-08-17 2013-01-15 At&T Intellectual Property I, L.P. Location-based mobile gaming application and method for implementing the same using a scalable tiered geocast protocol
US7958456B2 (en) 2005-12-23 2011-06-07 Apple Inc. Scrolling list with floating adjacent index symbols
US7509588B2 (en) 2005-12-30 2009-03-24 Apple Inc. Portable electronic device with interface reconfiguration mode
US7812826B2 (en) * 2005-12-30 2010-10-12 Apple Inc. Portable electronic device with multi-touch input
WO2007087251A2 (en) 2006-01-25 2007-08-02 Greystripe, Inc. System and methods for managing content in pre-existing mobile applications
US8681098B2 (en) 2008-04-24 2014-03-25 Oblong Industries, Inc. Detecting, representing, and interpreting three-space input: gestural continuum subsuming freespace, proximal, and surface-contact modes
US8334841B2 (en) 2006-03-13 2012-12-18 Navisense Virtual user interface method and system thereof
US9395905B2 (en) 2006-04-05 2016-07-19 Synaptics Incorporated Graphical scroll wheel
US9063647B2 (en) 2006-05-12 2015-06-23 Microsoft Technology Licensing, Llc Multi-touch uses, gestures, and implementation
WO2008005102A2 (en) 2006-05-13 2008-01-10 Sap Ag Consistent set of interfaces derived from a business object model
KR100866484B1 (ko) 2006-05-17 2008-11-03 삼성전자주식회사 다접점 터치 센서를 이용한 손가락의 이동 감지 장치 및방법
US8169421B2 (en) * 2006-06-19 2012-05-01 Cypress Semiconductor Corporation Apparatus and method for detecting a touch-sensor pad gesture
US8269725B2 (en) * 2006-06-28 2012-09-18 Microsoft Corporation Input simulation system for touch based devices
US9007299B2 (en) * 2006-07-14 2015-04-14 Ailive Inc. Motion control used as controlling device
US20120208639A1 (en) * 2006-07-14 2012-08-16 Ailive Inc. Remote control with motion sensitive devices
US20080030486A1 (en) 2006-08-04 2008-02-07 Quiteso Technologies, Llc Multi-functional pen input device
US8564544B2 (en) 2006-09-06 2013-10-22 Apple Inc. Touch screen device, method, and graphical user interface for customizing display of content category icons
US8106856B2 (en) 2006-09-06 2012-01-31 Apple Inc. Portable electronic device for photo management
KR100774927B1 (ko) * 2006-09-27 2007-11-09 엘지전자 주식회사 이동통신 단말기, 메뉴 및 아이템 선택방법
US8147316B2 (en) * 2006-10-10 2012-04-03 Wms Gaming, Inc. Multi-player, multi-touch table for use in wagering game systems
US20080122878A1 (en) 2006-11-24 2008-05-29 Keefe Gary W Apparatus and method for publishing computer-readable media
US9311528B2 (en) * 2007-01-03 2016-04-12 Apple Inc. Gesture learning
US8970501B2 (en) 2007-01-03 2015-03-03 Apple Inc. Proximity and multi-touch sensor detection and demodulation
US7924271B2 (en) 2007-01-05 2011-04-12 Apple Inc. Detecting gestures on multi-event sensitive devices
US7907125B2 (en) 2007-01-05 2011-03-15 Microsoft Corporation Recognizing multiple input point gestures
US7956847B2 (en) * 2007-01-05 2011-06-07 Apple Inc. Gestures for controlling, manipulating, and editing of media files using touch sensitive devices
US8970503B2 (en) * 2007-01-05 2015-03-03 Apple Inc. Gestures for devices having one or more touch sensitive surfaces
US7877707B2 (en) * 2007-01-06 2011-01-25 Apple Inc. Detecting and interpreting real-world and security gestures on touch and hover sensitive devices
US20080168478A1 (en) 2007-01-07 2008-07-10 Andrew Platzer Application Programming Interfaces for Scrolling
US8656311B1 (en) 2007-01-07 2014-02-18 Apple Inc. Method and apparatus for compositing various types of content
US7844915B2 (en) 2007-01-07 2010-11-30 Apple Inc. Application programming interfaces for scrolling operations
US7872652B2 (en) 2007-01-07 2011-01-18 Apple Inc. Application programming interfaces for synchronization
US7903115B2 (en) 2007-01-07 2011-03-08 Apple Inc. Animations
US20080168402A1 (en) * 2007-01-07 2008-07-10 Christopher Blumenberg Application Programming Interfaces for Gesture Operations
WO2008095132A2 (en) * 2007-01-31 2008-08-07 Perceptive Pixel, Inc. Methods of interfacing with multi-point input devices and multi-point input systems employing interfacing techniques
KR101426718B1 (ko) 2007-02-15 2014-08-05 삼성전자주식회사 휴대단말기에서 터치 이벤트에 따른 정보 표시 장치 및방법
US8436815B2 (en) 2007-05-25 2013-05-07 Microsoft Corporation Selective enabling of multi-input controls
US8059101B2 (en) 2007-06-22 2011-11-15 Apple Inc. Swipe gestures for touch screen keyboards
US8194117B2 (en) * 2007-08-08 2012-06-05 Qnx Software Systems Limited Video phone system
US20110210931A1 (en) 2007-08-19 2011-09-01 Ringbow Ltd. Finger-worn device and interaction methods and communication methods
US20090079745A1 (en) * 2007-09-24 2009-03-26 Wey Fun System and method for intuitive interactive navigational control in virtual environments
US20090125811A1 (en) 2007-11-12 2009-05-14 Microsoft Corporation User interface providing auditory feedback
US9857872B2 (en) 2007-12-31 2018-01-02 Apple Inc. Multi-touch display screen with localized tactile feedback
EP2243072A2 (en) * 2008-01-23 2010-10-27 N-Trig Ltd. Graphical object manipulation with a touch sensitive screen
US20090273560A1 (en) * 2008-02-04 2009-11-05 Massachusetts Institute Of Technology Sensor-based distributed tangible user interface
US20090207175A1 (en) * 2008-02-15 2009-08-20 Apple Inc. Animation Using Animation Effect and Trigger Element
US20090213083A1 (en) * 2008-02-26 2009-08-27 Apple Inc. Simulation of multi-point gestures with a single pointing device
US8797271B2 (en) 2008-02-27 2014-08-05 Microsoft Corporation Input aggregation for a multi-touch device
US8766925B2 (en) * 2008-02-28 2014-07-01 New York University Method and apparatus for providing input to a processor, and a sensor pad
US8717305B2 (en) * 2008-03-04 2014-05-06 Apple Inc. Touch event model for web pages
US8416196B2 (en) 2008-03-04 2013-04-09 Apple Inc. Touch event model programming interface
EP2255378B1 (en) * 2008-03-05 2015-08-05 The Board of Trustees of the University of Illinois Stretchable and foldable electronic devices
US20100149073A1 (en) * 2008-11-02 2010-06-17 David Chaum Near to Eye Display System and Appliance
RU2008113045A (ru) * 2008-04-07 2008-08-20 Александр Виль мович Казакевич (RU) Способ ввода информации с компактной сенсорной панели (варианты)
US8375336B2 (en) 2008-05-23 2013-02-12 Microsoft Corporation Panning content utilizing a drag operation
US8154524B2 (en) * 2008-06-24 2012-04-10 Microsoft Corporation Physics simulation-based interaction for surface computing
US8333655B2 (en) * 2008-07-11 2012-12-18 Wms Gaming Inc. Methods of receiving electronic wagers in a wagering game via a handheld electronic wager input device
US20100214243A1 (en) * 2008-07-15 2010-08-26 Immersion Corporation Systems and Methods For Interpreting Physical Interactions With A Graphical User Interface
US8390577B2 (en) 2008-07-25 2013-03-05 Intuilab Continuous recognition of multi-touch gestures
US8142283B2 (en) 2008-08-20 2012-03-27 Cfph, Llc Game of chance processing apparatus
US8749495B2 (en) 2008-09-24 2014-06-10 Immersion Corporation Multiple actuation handheld device
US8810522B2 (en) * 2008-09-29 2014-08-19 Smart Technologies Ulc Method for selecting and manipulating a graphical object in an interactive input system, and interactive input system executing the method
US8466879B2 (en) 2008-10-26 2013-06-18 Microsoft Corporation Multi-touch manipulation of application objects
US8477103B2 (en) * 2008-10-26 2013-07-02 Microsoft Corporation Multi-touch object inertia simulation
WO2010062479A1 (en) * 2008-11-02 2010-06-03 David Chaum System and apparatus for eyeglass appliance platform
US8419661B2 (en) * 2008-11-14 2013-04-16 University Of Southern California Upper limb measurement and rehabilitation method and system
US8866699B2 (en) * 2008-12-02 2014-10-21 Fuji Xerox Co., Ltd. Systems and methods for interacting with mobile devices using external displays
US8416206B2 (en) * 2009-07-08 2013-04-09 Smart Technologies Ulc Method for manipulating a graphic widget in a three-dimensional environment displayed on a touch panel of an interactive input system
US8819591B2 (en) * 2009-10-30 2014-08-26 Accuray Incorporated Treatment planning in a virtual environment
US8957918B2 (en) * 2009-11-03 2015-02-17 Qualcomm Incorporated Methods for implementing multi-touch gestures on a single-touch touch surface
US8232990B2 (en) 2010-01-05 2012-07-31 Apple Inc. Working with 3D objects
US8878787B2 (en) * 2010-08-13 2014-11-04 Fujitsu Limited Multi-touch user input based on multiple quick-point controllers
US20140096092A1 (en) * 2011-03-20 2014-04-03 William J. Johnson System and Method for Indirect Manipulation of User Interface Object(s)
US20130162519A1 (en) * 2011-12-23 2013-06-27 Sap Ag Cross-platform human input customization
US9311750B2 (en) * 2012-06-05 2016-04-12 Apple Inc. Rotation operations in a mapping application
US9189907B2 (en) 2013-08-28 2015-11-17 Chiu-Ming Chen Adjusting device for coin counting machine

Also Published As

Publication number Publication date
US9189096B2 (en) 2015-11-17
ES2771356T3 (es) 2020-07-06
US8477103B2 (en) 2013-07-02
US20160034136A1 (en) 2016-02-04
RU2534486C2 (ru) 2014-11-27
JP2012507077A (ja) 2012-03-22
US10503395B2 (en) 2019-12-10
JP5475792B2 (ja) 2014-04-16
US20100103118A1 (en) 2010-04-29
WO2010048051A3 (en) 2010-07-22
US9582140B2 (en) 2017-02-28
EP2342638B1 (en) 2020-01-01
CN102197377A (zh) 2011-09-21
BRPI0919074A2 (pt) 2015-12-15
KR20110074990A (ko) 2011-07-05
US20180129410A1 (en) 2018-05-10
RU2011116315A (ru) 2012-10-27
EP2342638A4 (en) 2017-03-15
TW201019176A (en) 2010-05-16
EP2342638A2 (en) 2011-07-13
US20170168708A1 (en) 2017-06-15
US20130285961A1 (en) 2013-10-31
WO2010048051A2 (en) 2010-04-29
TWI494795B (zh) 2015-08-01
KR101597383B1 (ko) 2016-02-24
US9898190B2 (en) 2018-02-20
AR073981A1 (es) 2010-12-15

Similar Documents

Publication Publication Date Title
CN102197377B (zh) 多触摸对象惯性模拟
CN102197359B (zh) 对应用对象的多点触摸操纵
CN101730874B (zh) 基于免接触的手势的输入
US8502795B2 (en) Physics simulation-based interaction for surface computing
US9285907B2 (en) Recognizing multiple input point gestures
CN102096548A (zh) 采用触控式显示器复制对象的方法和***
CN102645986A (zh) 一种具有三维对象的手持电子装置
US10496237B2 (en) Computer-implemented method for designing a three-dimensional modeled object
Salomoni et al. Hacking Nintendo Wii to paint virtual graffiti

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150423

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150423

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.