CN103842952A - 结合经典运动力学关于显示框移动对象 - Google Patents
结合经典运动力学关于显示框移动对象 Download PDFInfo
- Publication number
- CN103842952A CN103842952A CN201280048343.4A CN201280048343A CN103842952A CN 103842952 A CN103842952 A CN 103842952A CN 201280048343 A CN201280048343 A CN 201280048343A CN 103842952 A CN103842952 A CN 103842952A
- Authority
- CN
- China
- Prior art keywords
- gesture
- animation
- friction
- window
- motion
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/017—Gesture based interaction, e.g. based on a set of recognized hand gestures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0487—Interaction 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/0488—Interaction 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/04883—Interaction 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T13/00—Animation
- G06T13/80—2D [Two Dimensional] animation, e.g. using sprites
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Processing Or Creating Images (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
用于结合经典运动力学使对象比如显示窗口关于显示框移动的方法、***和计算机产品。窗口轻推方法从人机界面设备接收离散用户界面手势,根据离散用户界面手势,将窗口对象瞬间加速到初始速度。一旦窗口处于运动,方法就使用真实运动变化施加第一移动以使窗口对象动画起来。这样的真实运动变化包括摩擦模型,它使滑动摩擦与流体摩擦结合以确定逐帧的速度变化。使滑动摩擦与流体摩擦结合的摩擦模型能够被应用到显示框中的任何对象。一个对象与另一个对象之间或者一个对象与其环境之间的碰撞使用临界阻尼弹簧模型模拟。
Description
技术领域
本公开涉及显示屏的用户界面领域,更特别地,涉及关于显示框移动对象的技术。
版权声明
本专利文件的公开内容的一部分包含受版权保护的材料。版权拥有者不反对任何人复制专利文件或专利公开内容,如同专利商标局的专利文件或记录的形式,但是在其他方面保留一切版权权利。
背景技术
本公开的某些实施例涉及一种通过结合经典运动力学关于显示框移动对象的改善的方案。更特别地,本文公开的是使用真实移动的方法和***。
引人注目的用户界面必须提供一定程度的连续性,并且引人注目的用户界面也必须鼓励互动,不过,提供连续性和鼓励互动的传统努力以牺牲真实性为代价。因而需要改进的方法用于实施真实的图形用户界面,尤其是实施真实动画的用户界面。
更确切地说,上述技术无法实现结合经典运动力学关于显示框移动对象,也无法应对虚拟尺寸大于显示器表面的可显示对象的动画(如旋转木马、地图、照片图库)。
所以需要改进的方案以用于使用真实移动实施关于显示框移动对象。
发明内容
本公开提供在结合经典运动力学关于显示框移动对象的方法、***和计算机程序产品中使用的若干技术的详细说明。
本公开的一个应用被有利地应用在对象动画方法中,用于其显示内容无法在一时刻被方便地全部显示的大对象(比如幻灯片、地图、幻灯片集合等)。示范方法始于接收手势和确定环境变量,手势包括来自人机界面设备的信号,环境变量包括若干数值,比如来自人机界面设备的手势的强度、显示框的高度、显示框的宽度以及窗口对象的质量值等,然后根据质量值向窗口对象施加移动,移动包括结合滑动摩擦项和流体摩擦项,根据质量值计算窗口对象的运动。一个对象与另一个对象之间或者一个对象与其环境之间的碰撞(或其他模拟的互动)通过把临界阻尼弹簧模型加入到所结合的滑动摩擦和流体摩擦模型而得到模拟。
本公开的另一个应用被有利地应用在企业应用***的台式或便携式窗口环境中。这样的部署提供了一种窗口轻推方法,其始于从人机界面设备接收离散用户界面手势(如轻推),比如鼠标点击或击键,并且根据离散用户界面手势,将窗口对象瞬间加速到初始速度。一旦窗口处于运动,就应用第一移动以使用真实运动变化使窗口对象动画化。这样的真实运动变化包括摩擦模型,它结合了滑动摩擦与流体摩擦以确定速度的逐帧变化。结合了滑动摩擦与流体摩擦的摩擦模型能应用到显示框中的任何对象。一个对象与另一个对象之间或者一个对象与其环境之间的碰撞使用临界阻尼弹簧模型来模拟。
根据某些实施例,用于关于显示框移动窗口对象的计算机实施的方法包括:接收手势,手势包括来自人机界面设备的信号;确定环境变量,环境变量至少包括来自人机界面设备的手势的强度以及窗口对象的质量值,其中窗口对象的质量值对应于窗口对象移动的惯性值;向第一窗口对象施加第一移动,第一移动基于第一窗口对象的第一质量值以及手势的至少一个方面;以及向第二窗口对象施加第二移动,第二移动基于第二窗口对象的第二质量值以及手势的相同至少一个方面,其中当第二质量值与第一质量值不同时,第二移动与第一移动不同。
在一个或多个实施例中,第一窗口对象的第一质量值基于第一窗口对象的内容。
在一个或多个实施例中,第二窗口对象的第二质量值基于第二窗口对象的内容。
当第一移动包括运动积分器时可以实现附加的目标和优点。
当第一移动包括环境反馈时可以实现附加的目标和优点。
在一个或多个实施例中,手势的强度从离散手势导出。
在一个或多个实施例中,手势的强度从连续手势导出。
根据某些实施例,一种计算机实施的方法使用离散手势使显示对象在显示框内移动,所述方法包括:接收离散手势,离散手势包括来自人机界面设备的信号;根据离散手势的至少一个方面,将显示对象加速到初始速度;以及至少根据初始速度,对显示对象应用第一动画,其中第一动画包括摩擦模型,摩擦模型结合了滑动摩擦项与流体摩擦项以确定速度变化。
在一个或多个实施例中,初始速度基于显示屏的尺寸。
一个或多个实施例进一步实施:接收第二离散手势,第二离散手势包括来自人机界面设备的第二信号;以及根据第二离散手势的至少一个方面,对显示对象应用第二动画。
在一个或多个实施例中,初始速度赋予显示对象的虚拟能量等于通过施加第一动画失去的虚拟能量。
一个或多个实施例进一步实施:接收事件,事件包括显示对象与显示屏回弹周边之间的碰撞或互动;以及根据事件的至少一个方面,对显示对象施加第三动画。
当第三动画包括摩擦模型时可以实现附加的目标和优点。当摩擦模型结合了滑动摩擦项时可以实现附加的目标和优点。当包括流体摩擦项和阻尼弹簧项时可以实现附加的目标和优点。
当显示对象包括视口(viewport)下的显示内容时可以实现附加的目标和优点。
附图简要说明
图1A描绘了根据某些实施例,用于结合经典运动力学关于显示框移动对象的动画下的运动对象。
图1B描绘了根据某些实施例,用于结合经典运动力学关于显示框移动对象的若干力的状况的表示。
图1C描绘了根据某些实施例,用于结合经典运动力学关于显示框移动对象的若干力的状况的表示。
图2描绘了根据某些实施例,用于结合经典运动力学关于显示框移动对象的***框图。
图3描绘了根据某些实施例,用于结合经典运动力学关于显示框移动对象的***内通过视口的动画。
图4显示了根据某些实施例,曲线图上对象的速度变化,曲线图示出了用于结合经典运动力学关于显示框移动对象的多种机制。
图5描绘了根据某些实施例,用于结合经典运动力学关于显示框移动对象的***内的反馈回路的框图。
图6描绘了根据某些实施例,用于结合经典运动力学关于显示框移动对象的***中使用的动画框架的框图。
图7描绘了根据某些实施例的库的组织。
图8描绘了根据某些实施例,执行计算机***的某些功能的***的框图。
图9描绘了根据某些实施例,执行计算机***的某些功能的***的框图。
图10描绘了适于实施本公开的实施例的计算机***的实例的框图。
具体实施方式
本公开的某些实施例涉及一种改进的方法,用于实施结合经典运动力学关于显示框移动对象。更特别地,本文公开的环境、方法和***用于实施通过结合经典运动力学关于显示框移动对象。
概述
引人注目的用户界面提供了连续性和真实性。同样,引人注目的用户界面鼓励用户互动。然而,连续性、真实性以及鼓励互动(如使用用户将视为真实的运动模型)不能以牺牲功能性为代价。
在现代用户界面中,存在着真实运动的许多机会,比如当有对象或一组对象大到不能在显示面上一次看全时。这样的对象的示例包括旋转木马、大地图、照片图库等。此外,往往更引人注目的是与这些对象直接互动,而不是使用滚动条。换言之,用户偏爱直接与内容互动,而不是伪互动,比如使用与内容本身分离的控制(如滚动条)与对象互动。例如,用户认为更自然和真实的方式为通过滑动内容来使旋转木马左右滑动,而不是使用鼠标或其他指向设备来触摸滚动条。此外,如果用户一“放开”(如鼠标按钮放开动作),正被移动的项就突然停止移动,则加重了真实性的缺乏。再者,随着屏幕尺寸增加,或者随着内容尺寸增加,用户可能希望在内容内“行进”相当大的距离,这使得拖放界面模型变得越来越难以使用。
如上所述,有时候内容大到无法一次看到整个内容。部分地针对这种情况的一种可能技术是使用窗口对象内的视口,使得在任何时刻仅一部分内容在屏幕上可见(比如旋转木马),在旋转木马视口下显示幻灯片上几十幅(或更多)图像当中的仅几幅图像。通过使用传统鼠标或触摸屏技术拖动该对象的内容(如经由视口),能够便于用户与这样的对象互动。
不过,拖动并非在所有情况下都适用。例如,使用(用于示例)只有触控板或橡皮头风格鼠标的便携式计算机时拖动工作并不好,对只有键盘的接口而言它工作也不好(另一个示例)。在这样的情形中,期望某种技术或某些技术使用单次点击(或击键、或触摸事件、或其他类似基本互动)来拖动或移动。然而,实施这样的技术提出了几个问题要解决,比如(1)对象应移动多远?在一种情形中看起来适当的距离在另一种情形中有可能不适当。(2)对象应移动多快?如果对象从A位置立即跳跃到B位置,用户可能找不到原来的位置。然而,如果对象逐渐移动,这必须以节约用户时间且与用户的期待一致的方式实现。在一种情形中看起来适当的距离在另一种情形中有可能不适当还有再另外的情形;例如,与视口相比内容量特别大(与小相对)。
接下来的附图和说明针对以上问题,并且针对传统实施中的至少某些不足。
示范实施例的说明
图1A描绘了用于结合经典运动力学关于显示框移动对象的动画下的运动对象。作为选项,本动画1A00可以在本文介绍的实施例构架和功能的语境中实施。同样,在显示框边界或其中任何方面内的动画1A00(如动画1A001、动画1A002)也可以在任何期望的环境中实施。
如上所述,拖动并非在一切情况下都适用。本文附图和说明提供的用户界面运动模型(以数学形式)回答了若干问题,比如(1)对象应移动多远?(2)对象应移动多快?以及(3)如何以节省用户时间且不转移用户关注的方式移动对象?
图1A示出动画1A00,包括由周边(如边界或界限或回弹边界110)界定的显示框102(如计算机监视器屏幕、触摸屏、帧缓冲器等)。周边内显示的是显示对象112(见显示对象的初始位置1121、显示对象的第二位置1122和显示对象的第三位置1123)。在动画1A00中还显示了脉冲输入时间序列图104以及作为时间函数的速度图106。如图所示,脉冲轻推(nudge)114(如脉冲轻推1141,如图所示)在时间T1被传递给显示对象(如窗口对象),赋予显示对象1121初始速度,使之以初始速度行进到显示对象的第二位置1122。为了说明运动的真实性,初始速度(见在T1脉冲处的图例速度)被赋予给显示对象1121,该速度在阻尼作用下随时间减速,直到(如图所示)在时间T2传递第二脉冲轻推1142。在时间T2传递的脉冲轻推提高了速度(见在T2脉冲处的图例速度),该速度与在时间T1相同(或稍大)。该对象随时间减速,直到在显示对象的第三位置1123静止。
例如,在一个具体实施中,向对象赋予第二脉冲轻推引起该对象的速度回到由先前轻推达到的相同速度值,即使该对象已经在运动。在这样的情况下,达到的最大速度由某恒量确定,而不是使脉冲幅度由某恒量确定。
某些实施例依赖于在输入脉冲轻推后赋予显示对象的初始虚拟能量或初始速度的选择。也就是说,用户会期待真实的运动,无论屏幕是大屏幕还是小屏幕。在某些实施例中,有可能赋予固定能量的脉冲值。不过,可能选择的任何固定能量脉冲值在大屏幕上可能太小(如要求过多附加点击),而在小屏幕上可能太大(如剧烈过冲)。
一种方式是选择特定的能量脉冲(如脉冲轻推114),它将赋予对象足够的虚拟动量,把对象运送到从该对象至回弹边界的距离的85%,计算了阻尼作用下的速度减速(以及停止)。在某些使用情况下,85%的值是最佳值,此时意味着用户能够在动画期间保持上下文。例如,如果用户正在摇移到地图右边,地图的最右15%(如轻推前)在轻推后仍然可见(现在在左边)。这让用户看到大量新内容,然而也提供足够上下文使得该用户没有忘记其在“何处”。
特定的能量脉冲可以计算为视口尺寸、内容尺寸或质量以及可能其他模型驱动的若干因素的函数。
在另一实施例中,用户有可能期望把对象移动很长距离。为了把对象移动很长距离,用户可以重复地点击。每次用户点击时,脉冲能量(如脉冲轻推114)就被传递到内容,该内容根据经由轻推给予的能量改变速度并且衰减以便在回弹周边的边界内停止。只要用户继续轻推(如使用点击或击键),该内容将根据经由轻推给予的能量改变速度。一旦用户停止施加另外的轻推,该对象将迅速但平滑地达到停止。在一种实施中,当对象行进到无限接近边缘的位置时(如1个像素至2个像素),便禁用启动轻推的GUI控制(如灰化或隐藏),以便从当前位置无法启动进一步的轻推。在另一种情况下,轻推将使得对象动作过度,然后使用本文公开的阻尼弹簧范例弹回。
也可以应用其他模型,例如,轻推后立即给予该对象特定计算的所得速度的模型。或者,一个替代实施将使得经由轻推给予的能量(如导致非零惯性值被赋予给对象)精确地为把内容带到特定位置(如到边缘)所需的能量。
在某些实施中,确定轻推能量(或特定计算的所得速度)的计算以及与阻尼有关的计算可以使用包括各种各样的“脉冲”函数的库进行编码,有可能包括把多个脉冲函数结合为库函数工具。严格作为示例,可以把以下技术编码到库函数中并在动画中使用:
●当向对象传递初始脉冲时:该对象移动,然后在涉及质量值、加速度、能量传输和能量损失的经典力学模型下减速(如遵循牛顿力学)。
●当向对象传递初始脉冲时:该对象移动,然后在涉及质量值、加速度、能量和摩擦的经典力学模型下减速。摩擦可以包括静态滑动摩擦力学、运动滑动摩擦和流体摩擦力学等。
●当向对象传递初始脉冲时:该对象移动,然后在涉及质量值、加速度、能量和流体摩擦的经典力学模型下减速。
●当动量存在突然改变(如撞击在回弹周边上或撞击在另一个对象上)时,运动响应与非弹性碰撞或撞击行为一致,这种撞击行为与按击鼠标按钮(点击)类似。同样,来自人机界面设备的手势(如换能器,比如鼠标按钮或键盘上的键)也是突然的(不是逐渐的)。示例包括点击鼠标或击键,或者离散的触摸手势,并且这样的离散事件(如离散手势)产生了类似的运动响应(如突然的脉冲轻推)。
●用于根据屏幕尺寸模拟脉冲轻推幅度的库函数。在一种情况下,脉冲轻推被计算为传递必要的脉冲轻推力,使得行进的总距离(脉冲轻推下、摩擦模型下等)是显示框102宽度(如果是水平运动)或高度(用于垂直运动)的固定百分比(如85%)。
●用于根据从对象到回弹周边的屏幕距离模拟脉冲轻推幅度的库函数。在一种情况下,脉冲轻推被计算为传递必要的脉冲能量,使对象行进与垂直回弹周边(如果是水平运动)的距离的固定百分比(如100%),或者使对象行进与横向回弹周边(用于垂直运动)的距离的固定百分比(如100%)。
图1B描绘了对于结合经典运动力学关于显示框移动对象,若干力的状况的表示。作为选项,本若干力的状况1B00可以在本文介绍的实施例构架和功能的语境中实施。同样,在对象动画或其中任何方面中使用的若干力的状况1B00也可以在任何期望的环境中实施。
某些用户界面模型响应于用户输入赋予对象速度。不过传统模型具有若干缺陷要被应对,比如:
●传统模型可能太迅速地减速至停止(如震动行为)。
●传统模型可能太缓慢地减速至停止(如缓慢行为)。
●传统模型观察固定边界,当超过时使某些屏幕面积被浪费。例如,如果要观看的内容比视口宽,那么过冲(如内容的某些部分超出视口边界)应被调整(如通过调整内容的位置)以便显示尽可能多的内容。本文公开了使用阻尼调整内容位置的若干技术。
●硬停止(震动)或缓慢地赋予速度(缓慢(sluggish))可能是恼人地不真实的。
●回弹(尤其是如“硬”非弹性碰撞环境中的回弹那样)可能使得对象在与用户期望不同的某处结束,而通过回弹应对过冲的传统技术使用户迷惑。
●传统模型在许多其他行为方面可能是不真实的。
所以,在若干力的状况1B00中给出了解决以上(和其他)缺陷并产生美感令人愉悦的运动行为的技术。再次参考经典力学运动,运动中的“对象”(如具有质量值的对象)以不变速度移动直到受到力的作用。所示的力学机制总和1B00包括摩擦模型150(如显示为图表的摩擦模型1501,或显示为代数方程的摩擦模型1502),它计算了与流体摩擦模型的力结合的滑动摩擦模型的力的总和。
根据滑动摩擦模型(如运动学摩擦模型),对象沿表面滑动时由于摩擦而失去动(运动)能。在真实(如地面)设置中,摩擦与垂直于表面的力成正比;例如,由于对象(如虚拟对象)的(虚拟)重量而出现的力。这样的力(见以下Fnormal)被模拟为与对象的质量成正比。从而具有初始滑动速度的对象在对象的动能丧失于滑动摩擦时将停止移动。
示范实施例使用了摩擦模型1502,其包括滑动摩擦项130(如滑动摩擦函数)和流体摩擦项140(如流体摩擦函数)。在某些情况下,摩擦模型可以给出如下:
Fnet=Ffluid+Fsliding (等式1)
或者,以另一种形式:
Ftotal=-(kfluidv+Fnormalkslidingsign(v)) (等式2)
其中:kfluid=作用在对象上的流体摩擦强度。预期为正值,而零值将意味着没有流体摩擦;
ksliding=作用在对象上的滑动摩擦强度。预期为正值,而零值将意味着没有滑动摩擦;
Fnormal=在对象与它沿其滑动的表面之间的垂直力,通常由于重力引起;以及
sign(v)在v>0时为1,在v=0时为0,而在v<0时为-1。
等式1中的项Fsliding可以被展开为:
Fsliding=(Fnormal)*(–Ksliding)*sign(v)
其中:
Fnormal=在对象与它沿其滑动的表面之间的垂直或正交力。在某些模型中,Fnormal力是对象由于重力作用的重量。预期为正值,而零值将使滑动摩擦对量Ftotal的贡献为零。
在许多情况下,Fnormal可以是常数值,在对象速度从某一初始值连续变化到零而不过零的时段,sign(v)也将是常数;所以,在这样的情况下,可以用单一常数Ksliding取代整个流体摩擦项,它合并了真正的常数Ksliding、垂直力Fnormal和符号项sign(v)。
以上等式中的摩擦项(如滑动摩擦项130和流体摩擦项140)来自上述运动力学原理,并且能够被区别如下:
●流体摩擦与速度(见等式1右边的第一项)成正比,因此流体摩擦在高速时起主要作用而在低速时作用不大。所以,仅使用流体摩擦的模型一开始将快速地从初始高速减速,但是在低速时将拖延长得不真实的时间并花费很长时间才能停止。
●静态摩擦是固定常数,并且在低速时起主要作用,而在高速时作用不大。仅使用静态摩擦的模型在初始速度很快时将花费很长时间减速下来。为了应对高速度,滑动摩擦系数可以很高,使得对象停止得非常突然而产生震动和不真实的运动行为。
通过结合流体摩擦项和静态摩擦项,在应对对象以任何速度行进时的初始释放时,可以创建真实体验(因为它与日常地表物理原理一致)。
现在再次参考若干力的状况1B00,将滑动摩擦模型与流体摩擦模型进行对照,滑动摩擦模型对低速(或静止)对象作用最强,流体摩擦模型对高速对象作用最强。把流体摩擦模型的作用与滑动摩擦模型的作用合并,当使对象以任何运动速度关于显示框运动时都产生令人愉悦且看起来真实的运动模型。
状况1B00中的若干力模拟了作为速度的函数,相对于滑动摩擦模型,来自流体摩擦模型的贡献(如力)。例如,参考曲线CS和曲线CF,在速度范围上给出了相对于滑动摩擦模型的贡献百分比(如S%)的流体摩擦模型的贡献百分比(如L%)。如图所示,流体摩擦模型的百分比贡献相对于滑动摩擦模型一开始为低(如在低速),这种关系在速度范围上被逆转,来自流体摩擦模型的力随着速度而增大,最终在更高速度下起主要作用。
正如先前指出的那样,摩擦模型可以给出如下:
Fnet=Ffluid+Fsliding
或者以另一种形式:
Ftotal=S%(Fsliding)+L%(Ffluid)
其中S%+L%=100%。
图1C描绘了对于结合经典运动力学关于显示框移动对象,若干力的状况的曲线表示1C00。所示图表给出了根据若干力把速度绘制为时间的函数的曲线图。如图所示,存在着许多可能的曲线,取决于指数衰减速率和斜率幅度以及其他变量和常数。如图所示,这些曲线符合等式v(t)=v0e-at–bt,其中v0是初始速度,a和b分别是与流体/指数部分和滑动/线性部分相关的常数。正先前表明的那样,本文的改进胜过了传统模型,也就是,仅包括滑动摩擦的传统模型。为了适应这样的模型,即使在中等初始速度(更不用说高初始速度),要使对象以及时形式停止,系数可能需要非常大。不过,这样的摩擦系数导致从更低初始速度不真实地快速和突然的减速。在低速或许有可能实现真实的减速(例如,使用低的滑动摩擦系数),但是当初始速度为高时对象为了减速将花费非常长的时间。
同样,正如先前表明的那样,本文的改进胜过了传统模型,也就是,仅包括流体摩擦的传统模型。因为流体摩擦与速度成正比,所以在更高速度更剧烈。不过,流体摩擦导致对象在低速时拖延不真实的长的时间。并且仅使用流体摩擦,对象在这些低速时发费太长时间几乎不移动。
复合摩擦模型(如使用滑动摩擦和流体摩擦二者)起到很好的作用,因为流体摩擦在高速起主要作用(对减速的前一部分产生真实的减速),而滑动摩擦在慢速起主要作用(对减速的后一部分产生真实的减速)。不仅如此,还可以选择若干系数,模拟流体摩擦和滑动摩擦对对象行为的贡献。
可以按其他方式结合流体摩擦和滑动摩擦。例如,不是把来自流体摩擦模型或滑动摩擦模型的非零贡献求和,而是可以在行为的特定时间窗口期间,来自仅一个模型或另一个模型的贡献为非零的。
图2描绘了用于结合经典运动力学关于显示框移动对象的***的框图。作为选项,本***200可以在本文介绍的实施例构架和功能的语境中实施。同样,***200或其中任何方面也可以在任何期望的环境中实施。
对于在台式计算机应用或网络应用中实施结合经典运动力学的模型而言,方便的是使用积分器模型。图2展示了根据某些实施例的用于运动的积分器模型。严格地作为示例,比如***200中描述的模型之类的模型可以包括多个运动模型、包括多个摩擦模型(如摩擦模型150)、以及多种力学结合方式。如图所示,流体摩擦和滑动摩擦(如静态摩擦或运动摩擦)都能够被结合。
遍历经由***200的流程,用户通过人机界面设备220提供某种用户输入,人机界面设备220提供人机界面设备信号221,它又用于形成手势205。手势可以是离散手势206(如击键、点击或屏幕触摸)或连续手势207(如鼠标移动或多点触摸、轻拂手势等),并且这样的手势被传递给用户输入模型210。用户输入模型接收手势并将该手势与诸如屏幕高度和屏幕宽度(如图所示)的环境变量2081结合,以确定能量(例如,赋予对象的能量)和质量值(如对象被指派的质量值、根据手势的脉冲轻推被指派的质量值等)的数值量形式的输出。
用户输入模型210考虑与手势输入结合的环境变量208(如屏幕尺寸、对象尺寸、信号校准值等),并且确定要向换能器模块212提供的能量“e”和质量值“m”。从而换能器模块把来自用户(如手势)的能量和质量值“m”的形式转换为能量的形式,该能量被施加为关于显示框要移动的对象的速度。如图所示,换能器输出的形式为速度的变化,这种速度变化可以是小的加速度(比如说从每秒100像素到每秒101像素),速度变化也可以是大的加速度(比如说从静止到每秒100像素)。同样如图所示,速度变化(表示为VΔ)可以源自环境反馈(见环境反馈模块214)。
这样的速度变化被提供给运动积分器模块218。并且,运动积分器模块218结合环境变量(如由环境变量模块提供)根据给定的速度变化执行计算。例如,显示对象可能从回弹周边110弹离,回弹周边的特征被提供为一组环境变量2182之一,在这样的回弹中有可能失去某些能量及/或经历速度变化,可能包括运动方向的变化。这种现象有可能又被反馈给换能器模块以说明来自环境(如由于回弹事件)的能量(或能量损失)的形式,并且转换为作为关于显示框移动对象的速度赋予的能量的形式。
除了先前介绍的关于显示框移动的、有可能与其他对象互动或有可能与回弹周边110互动的对象之外,也可能显示对象在视口下移动。
图3描绘了用于结合经典运动力学关于显示框移动对象的***内对象通过视口308的动画。作为选项,本旋转木马300可以在本文介绍的实施例构架和功能的语境中实施。同样,旋转木马300或其中任何方面也可以在任何期望的环境中实施。
如图所示,图3展示了根据某些实施例的带有运动控制的旋转木马类型视口。严格地作为示例,旋转木马使用了结合经典运动力学关于显示框移动对象的若干技术。
正如早先指出的那样,传统方式使用了控制图标310中的点击,以便在视口306中单幅图像地移动幻灯片(如单幅图像3081、单幅图像3082、单幅图像3083等)。同样,某些其他传统方式使用了在这样的控制图标中的点击,以便把幻灯片移动至并非精确等于一幅图像所需距离的某种其他固定距离。并且其他传统方式使用了拖动手势(如按下鼠标按钮的鼠标运动)以便单幅图像地移动幻灯软片,使得通过视口306相继显示下一幅单幅图像。不过,点击控制图标或鼠标拖动技术并非在全部情景中都适用。作为示例,使用(例如)只有触控板或橡皮头风格的鼠标的便携式设备时拖动幻灯软片不适用,对只有键盘的接口它也不适用(再例如)。在这样的情形中,期望使用单次点击(或击键)以拖动或移动的某种和某些技术。
然而,实施这样的技术提出了几个问题要解决,比如(1)使用离散手势206时,为了响应离散手势应当移动多少单幅图像?(2)使用离散手势206时,幻灯片应移动多快?如果幻灯片从A位置立即跳跃到B位置,用户可能找不到原来的位置。然而,如果对象逐渐移动,这必须以节约用户时间且与用户的期待一致的方式实现。
在***200中给出的若干函数包括环境变量,其又可以包括具有初始速度和达到停止所需时间的环境情景,和/或计算要行进的总距离(如要前进的单幅图像的数量,以什么速度,以及什么时候减慢和什么时候停止等)。这样的函数可以包括加速度曲线,比如以下所给出的那样。
图4显示了曲线图上对象速度的变化,曲线图示出了结合经典运动力学关于显示框移动对象的多种机制。作为选项,显示多种机制的本曲线图400可以在本文介绍的实施例构架和功能的语境中实施。同样,能够在若干***或其中任何方面中实施的显示多种状况的曲线图400也可以在任何期望的环境中实施。
诸如***200给出的函数包括若干环境变量,它们又可以包括具有初始速度406、终止速度408以及在距离区间上从初始速度到终止速度408经过的减速曲线(如f1(滑动、流体)、f2(滑动、流体))的环境情景。在距离区间上从初始速度到终止速度408可经过许多路径,显示多种机制的曲线图400只不过描绘了一些。例如,显示多种机制的曲线图400描述了“缓慢”减速曲线,其受到太低的初始速度并且随着对象逼近Xfinal而迅速减速至非常慢的速度(但是可能太迟钝以至于实际上未到达Xfinal)。标注为“震动”的另一条曲线以恒定速度从Xinitial移动到Xfinal,然后突然停止。另一条减速曲线展示了从Xinitial到Xfinal通过线性降低速度的运动,它被视为不真实的。又另外的曲线源自经典运动力学的组合,也就是其中速度根据结合了滑动摩擦与流体摩擦的函数而变化。
诸如***200给出的函数能够包括曲线图,比如在前述段落中介绍的那些。或者,函数可包括在表中表示的减速曲线,还能包括具有初始速度和停止移动所需时间的表,考虑了真实或虚拟的环境因素(如质量值、要行进的总距离、摩擦系数、粘度、表面特征等)。在某些情况下,函数包括x(t)(距离作为时间的函数)的导数(如一阶导数)并能够使用它受到控制,及/或能够在靠近Xfinal的区间中包括运动的导数dx/dt。
通过结合经典运动力学计算其运动的对象被视为提供了舒适且真实的运动。作为进一步示例,如果用户期望把对象移动小距离,那么用户以柔和轻拂方式给予输入。或者,如果用户期望把对象移动大距离,那么用户给予急速拂动。在任一情况下,因为内容平稳地移动,所以用户不会丢失其位置。
上述柔和轻拂只不过是手势的一种可能,并且根据手势的若干方面能够与急速拂动区分开。例如,可以根据鼠标按钮向下与鼠标按钮向上之间的持续时间判定柔和轻拂。或者,能根据键按下按键放开之间的持续时间判定柔和轻拂。
上述手势的若干方面能够被施加到不同特征的窗口对象,并且被施加到不同特征的两个窗口对象的相同手势(或具有相同手势方面的不同手势)在各自窗口对象上产生了两种不同的动画。例如,轻推可引起第一动画被施加到第一窗口对象,第一动画特征是基于第一窗口对象的质量值和手势的某方面(如轻拂)的。具有与第一轻推相同轻推方面(如相同轻拂)的轻推的另一次出现有可能引起向第二窗口对象施加动画,第二窗口对象的动画特征是基于第二窗口对象的质量值和该手势的该方面的。在示范情况下,由于质量值不同(即使确定动画所依据的手势方面相同),第二窗口对象的动画与第一动画不同。
使用这种技术,用户保持了显示的方位,因为窗口对象以真实方式移动。
图5描绘了用于结合经典运动力学关于显示框移动对象的***内的反馈回路的框图。作为选项,本***500可以在本文介绍的实施例构架和功能的语境中实施。同样,***500或其中任何方面也可以在任何期望的环境中实施。
在某些情况下,运动积分器模块218的实施例产生反馈,该反馈能够来源于环境(如经由环境反馈模块214)或来源于用户对屏幕上若干变化的互动(如经由用户反馈模块514)。例如,对象有可能穿过回弹周边(如过冲(overshoot))并且作为响应受到某些特定运动(如弹回到过冲附近的位置)。存在可能遇到和/或仿真的各种各样不同的回弹周边。例如,对象有可能通过碰撞刚性固定(仿真的)对象而经历弹性或非弹性碰撞,导致方向突然逆转,有可能速度降低。作为替代,对象可能碰撞柔软的固定对象,它将吸收某些或全部碰撞能量。作为又一种替代,对象可能遇到可动弹簧似的对象,它将暂时存储某些或全部碰撞能量,然后在另一个方向上将其返回给对象。这样的弹簧似的周边可以经历阻尼也可以不经历阻尼,阻尼意味着某些碰撞能量会消散而不返回到该对象。重要的是注意,这些仅仅是可能的回弹周边的实例,的确存在着其他回弹周边。当然,当用户认为横越“太慢”时,对象有可能受到附加的用户输入。用户可以经由附加的手势输入而添加附加的速度。或者,对象有可能与另一个对象碰撞,或者到达虚拟边界(如虚拟幻灯片的“末端”)。在这些和其他情况下,***500用于处理来自反馈回路的信号。
至于过冲和返回,可以使用结合经典运动力学的模型实现期望的运动。在某些这样的情况下,临界阻尼弹簧模型用于模拟能量是如何从动力学运动的突变或渐变(如由于在回弹周边的碰撞或其他互动)被转换为逆转方向的动力学运动的。这被用户视为“真实的”,因为它模拟了弹簧和减震器的真实世界情形。此外,与上面的摩擦模型150结合时,运动能够被描述为相当平滑连续的函数,即使在碰撞时刻(如与回弹周边的碰撞),以及即使当对象由于碰撞而改变方向时。碰撞作用在滑动对象上仿佛它击中了带有弹簧的减震器。它是平滑运动,运动响应快而不太突然。
使用临界阻尼弹簧意味着尽快返回到中间位置而不过冲。撞击(如与回弹周边)后对象快速地减速并且“自然地”瞬间停止。能够调谐弹簧的硬度和减震器的阻尼系数以调整应当使其多快地停止移动,以及在弹回动作中向对象返回多少能量(如果有的话)。作为另一个实例,当在视口下操纵的幻灯片到达卷末端时(如幻灯片末端处的最后单幅图像),幻灯片将表现为仿佛它遭遇了临界阻尼弹簧以至于尽可能快地返回到幻灯片卷位置的末端,同时保持真实而没有过冲。
模拟在碰撞或其他互动点开始的动画行为的一种可能性是包括来自临界阻尼弹簧项的力:
Fnet=Fsliding+Ffluid+Fspring(等式3)
在涉及碰撞的实施例中(如与回弹周边碰撞等),动画下的显示对象的能量被临界阻尼弹簧消散。在示范情况下,动画下的显示对象的能量完全被临界阻尼弹簧消散。在这样的示范情况下,随着对象过冲并减速,某些初始能量被消散,某些被存储在弹簧中,然后把存储的能量返回到对象,使其在相反方向上加速。在这种示范情况下,阻尼以一速率连续地消散动能,使得恰好在对象返回到回弹周边处的初始碰撞点(或初始互动点)时全部动能已经被消耗,使之平稳滑动至停止。所以,动画下的显示对象经过回弹周边,平稳地逆转方向,并且在非常靠近碰撞点的一点处逐渐停止移动。
在某些情况下,当用户认为横越“太慢”时,对象有可能经受附加的用户输入。用户可以经由附加的手势输入而添加附加的速度,比如附加的轻拂或击键或鼠标点击等。
应认识到,某些手势包括速度概念,并且在某些情况下确定稳定信号(如从信号中去除了噪声)可以通过在某范围的时间步上采样一系列值并且仅选择某些先前样本进行处理(如进行滤波或平均)来实现。
现在考虑以上所示和介绍的***,实现对象跨显示屏幕运动的逼真动画的方法可通过如下步骤来实践:接收来自人机界面设备的手势,然后根据手势的某些方面(如柔和轻拂、急速轻拂、强度等)把显示对象瞬间加速至初始速度,并且对显示对象施加动画,其中动画把滑动摩擦项与流体摩擦项结合起来以确定速度的瞬间变化(如显示框之间移动的距离的变化)。为了产生美感令人愉悦的运动,同时行进量在显示最新内容方面而又保持某些重叠背景方面对用户是有用的,在收到了不具有固有幅度的离散手势(比如点击或按钮按压)之后,计算初始速度以赋予显示对象虚拟能量,使得施加第一动画和支配虚拟能量损失的规则将使对象沿运动方向行进大约等于视口长度的85%的距离后停止。在运动方向上大约等于视口长度的85%以外的其他值作为替代也可以使用。在默认行进距离将导致对象遇到回弹周边的情景下,行进距离和赋予的对应能量可以也可以不减小以避免碰撞。在离散手势内在地包含幅度的情况下,比如来自测量每次击键的力和/或速度的键盘的按键动作,手势的幅度可以考虑也可以不考虑,并且在确定赋予对象的能量时可以起某种作用也可以不起作用。
当然,有可能在通过行进距离的动画过程中,显示对象与另一个显示对象碰撞。在这种和其他情况下,第二动画(如用于碰撞/停止)和第三动画(如用于弹回)被应用,有可能包括来自阻尼弹簧(如临界阻尼弹簧)的力。
这样的动画的复杂度会随着真实程度的提高而增加,从而应当迅速定义编程框架以便缓解实现期望动画的编程负担。
图6描绘了显示在用于结合经典运动力学关于显示框移动对象的***中使用的动画框架的框图。作为选项,本***600可以在本文介绍的实施例构架和功能的语境中实施。同样,***600或其中任何方面也可以在任何期望的环境中实施。
结合经典运动力学关于显示框移动对象的一个便利是提供库,库包括模型(如经典力学模型)、脉冲运动控制和多种实用功能(如显示模型、预构动画等)。
这样的便利变得越来越有利,因为开发人员日益关注创建高度互动并且具有非常流畅的用户界面运动的网页和网络应用。提供丰富的桌面应用的障碍之一是使用在Javascript中可得到的工具实现动画的困难。这样的困难的原因是:
●在Javascript中缺少真正线程支持。
●缺少非忙碌“睡眠”功能。
●要求仅使用本地Javascript和特定版本的CSS(如由于这些语言被大多数或全部浏览器所服务)的代码开发或平台约束。
一种解决方案是开发动画框架(包括库)以用于执行带有本文公开特征的基于框的动画。
图6展示了具有动画库602的这样的框架,动画库602包括模型、脉冲运动控制和多种实用方法。在框架的示范使用中:
●使用库的程序员能够快速容易地定义如何绘制窗口或其他显示对象(如显示对象1121、显示对象1122)。
●程序员应能快速容易地把动画对象与特定显示对象关联起来,并且能够对与动画对象606相关联的特定显示对象调用动画。
●程序员不必处理何时呈现各帧的具体细节。
●在主机的限制内尽可能平滑地呈现动画,然而动画不过度地消耗***资源。
●动画不使终端用户的步调慢下来。
在一个实施例中,库的客户(如客户应用610)创建动画对象并定义方法doFrame()。这个doFrame()方法在动画期间将由库代表客户调用。库收到四个变元(argument)(如从客户应用610):
●Object:是DOM的一部分并且具有ID的任何HTML元素;动画所作用的主对象。
●VO和Vf:在动画范围内的两个数字常数,旨在用作初始和终止值。
●T:要呈现的帧进入动画的时间量,跨区间[0,1]规范化;动画的整个持续时间在呈现该帧时已经过去的那部分。
另外,能够定义类库,并且面向对象模型能被观察。例如:
ANIM.Animations.fade = new Object();
ANIM.Animations.fade.doFrame = F(obj, v0, vF, t)
{
var opacity = v0 + t * (vF - v0);
obj.style.opacity = opacity;
obj.style.filter = 'alpha(opacity='+Math.round(opacity*100)+')';
}
如果在动画结尾应当采取某种特殊动作的话,客户应用610还具有实施doEnd()方法的选项。在这个示例中,库将检查这个方法的存在并且如果定义了它的话则调用它。它接收两个变元:obj和vF。
为了开始动画,客户应用只要调用单个方法animate。
例如,给出了对象“ANIM“:
ANIM.animate(obj,‘fade’,0,1,500);
以上示例将使对象obj通过遵循由方法“animate”使用的规则而在500ms(半秒)的过程中从完全透明淡入到完全不透明。在示范实施例中,方法“animate”有七个变元,其最后两个是可选的。
概要:
ANIM.animate=
F(obj,animation,v0,vF,duration,delay,callback)
其中:
obj=***纵的对象
animation=要使用的动画(如渐变)
V0=初始值
VF=终止值
duration=该动画应当持续多久
delay=开始动画前等待多长时间(在客户希望把若干动画链接在一起并且希望动画n-1完成后立即开始动画n的情况下提供给客户;如果未明确规定,则假设为0,意味着代码行一执行就开始动画)。
callback=当动画完成时将作为javascript代码评估的可选字符串。这与可选的doEnd方法用于类似目的。差异是这个callback应用于特定的动画调用(如它会应用在淡入一个特定的页面元素时)。方法doEnd适用于动画的每次调用(如doEnd应用于无论何时淡入或淡出任何事物时)。
库提供了处理帧定时的一组方法。animate方法用于开始动画。核心功能利用了使用setTimeout()对未来执行的代码和事件进行调度的能力。方法setTimeout展示的特征使得浏览器大约在计划执行受调度的代码时执行它。不过,取决于浏览器和***负载,受调度的代码可以比计划执行它的时间更晚或甚至更早地执行。
每次执行代码时库都检查实际时间。库把这个绝对时间转换为t值(如时间值),其反映了动画从t0向tfinal已经前进了多远,然后调用方法doFrame。浏览器在前一帧之后16ms调度要呈现的下一帧。
●16ms的标称帧间隔对应于每秒60帧。该速率对应于大多数现代(LCD)监视器的最大刷新速率,也大约是人的眼睛所能够感知的极限。任何比16ms间隔更快的刷新动画都将不再具有任何人能够感知的效应。
●在慢机器上,下一帧实际上可能超过16ms也没有呈现。不过,由于库根据时间片段调度事件,并且在确定要呈现哪些事件时考虑了实际时间,所以库将呈现的事件对应于代码实际运行之时,而不是它最初计划运行之时。这意味着动画将随着***资源变得不足而适度地降级。例如,在非常慢的机器上,动画有可能由于帧速率低而稍微地“突变”,但是在正确的预期的总持续时间期间动画将仍然完整。这种智能化投放帧的方法极为优越,使动画呈现每个单帧,所以比其假设持续时间更长,这可具有阻止用户使用该应用继续的效果。
有时浏览器在代码按调度运行之前就执行代码。这可能导致机器陷入困境,因为它将计算许多不必要的帧。例如,当监视器仅能够每16ms显示一帧时,浏览器可能要计算每1至2ms的帧。库通过对最新的帧在何时产生保持跟踪并智能地检查产生新帧是否有益而避免了这样的不必要的***减速。如果呈现某帧无益,库就不呈现该帧,而是改为仅调度下一帧在它会有益时立即呈现。例如,如果计划的事件发生在最后一帧呈现之后仅4ms,库将不呈现新帧。库而是会调度要在12ms呈现的下一帧,使得从呈现最近帧以来总共前进了16ms。
当然,可以开发并且很快而容易地使用无数动画,使得动画尽可能平滑地运行而不给机器增加负担。不仅如此,动画在更老硬件上适度地降级。
图7描绘了库700的组织。作为选项,本库700可以在本文介绍的实施例构架和功能的语境中实施。同样,库700或其中任何操作也可以在任何期望的环境中实施。
如图所示,库700被组织为层次结构,包括摩擦模型、弹簧和阻尼模型、力学合成器和帧环境模型。
本公开的附加实施例
图8描绘了执行计算机***的某些功能的***的框图。作为选项,本***800可以在本文介绍的实施例构架和功能的语境中实施。不过,***800或其中任何操作当然可以在任何期望的环境中实施。如图所示,***800包括至少一个处理器和至少一个存储器,存储器用于存储***的若干操作所对应的程序指令。如图所示,使用模块可访问的程序指令能够整体地或部分地执行某操作。若干模块被连接到通信通道805,任何操作都能够在通信通道805上与其他操作通信。***的若干模块能够单独地或结合地执行***800内的方法操作。在***800内执行的任何操作都可以以任何顺序执行,除非在权利要求书中指定。图8的实施例实施了计算机***的一部分,显示为***800,包括执行一组程序代码指令的计算机处理器(见模块810)和访问存储器的模块,存储器保持的程序代码指令用于执行:接收离散手势,离散手势包括来自人机界面设备的信号(见模块820);根据离散手势的至少一个方面,将显示对象瞬间加速到初始速度(见模块830);根据至少该初始速度,把第一动画施加到显示对象,其中第一动画包括摩擦模型,摩擦模型结合了滑动摩擦项与流体摩擦项以确定速度的瞬间变化(见模块840)。
使窗口对象关于显示框移动的其他示范情况包括根据各窗口对象的质量值把一个或多个移动施加到窗口对象。例如,某些实施例把第一移动施加到第一窗口对象,其中第一移动基于第一窗口对象的第一质量值,把第二移动施加到第二窗口对象,其中第二移动基于第二窗口对象的第二质量值。在涉及多个窗口的这样的情况下,当第二质量值与第一质量值不同时第二移动与第一移动不同。
图9描绘了执行计算机***的某些功能的***的框图。作为选项,本***900可以在本文介绍的实施例构架和功能的语境中实施。不过,***900或其中任何操作当然可以在任何期望的环境中实施。如图所示,***900包括至少一个处理器和至少一个存储器,存储器用于存储***的若干操作所对应的程序指令。如图所示,使用模块可访问的程序指令能够整体地或部分地执行某操作。若干模块被连接到通信通道905,并且任何操作都能够在通信通道905上与其他操作通信。***的若干模块能够单独地或结合地执行***900内的方法操作。在***900内执行的任何操作都可以以任何顺序执行,除非可以在权利要求书中指定。图9的实施例实施了计算机***的一部分,显示为***900,包括执行一组程序代码指令的计算机处理器(见模块910)和访问存储器的模块,存储器保持的程序代码指令用于执行:接收手势,手势包括来自人机界面设备的信号(见模块920);确定环境变量,环境变量至少包括来自人机界面设备的手势的强度、显示框的高度、显示框的宽度和窗口对象的质量值(见模块930);根据质量值和手势的至少一个方面,把第一动画施加到窗口对象(见模块940);根据质量值,把第二动画施加到窗口对象,其中第二动画包括通过结合滑动摩擦项与流体摩擦项根据质量值计算窗口对象的运动(见模块950)。
***架构综述
图10描绘了适于实施本公开实施例的计算机***1000的实例框图。计算机***1000包括用于传输信息的总线1006或其他通信机构,它互连若干子***和设备,比如处理器1007、***存储器1008(如RAM)、静态储存设备1009(如ROM)、盘驱动器1010(如磁性或光学)、数据接口1033、通信接口1014(如调制解调器或以太网卡)、显示器1011(如CRT或LCD)、输入设备1012(如键盘、光标控制)、外部数据储存库1031和数据库1032。
根据本公开一实施例,计算机***1000执行若干特定操作,方式为处理器1007执行在***存储器1008中包含的一条或多条指令的一个或多个序列。这样的指令可以从另一计算机可读/可用介质读入到***存储器1008中,比如静态储存设备1009或盘驱动器1010。在替代实施例中,硬连线电路可以用于取代软件指令或与之结合以实施本公开。因此,本公开的实施例不限于硬件电路和/或软件的任何特定结合。在一实施例中,术语“逻辑器”应意味着用于实施本公开的全部或部分的软件或硬件的任何组合。
本文使用的术语“计算机可读介质”或“计算机可用介质”是指参与向处理器1007提供用于执行的指令的任何介质。这样的介质可以采取许多形式,包括但不限于非易失性介质和易失性介质。非易失性介质包括例如光盘或磁盘,比如盘驱动器1010。易失性介质包括动态存储器,比如***存储器1008。
计算机可读介质的普通形式包括例如软盘、硬盘、磁带或任何其他磁性介质;CD-ROM或任何其他光学介质;穿孔卡片、纸带或具有穿孔图案的任何其他物理介质;RAM、PROM、EPROM、FLASH-EPROM或任何其他存储器芯片或盒式磁带,或者计算机能够从其读取数据的任何其他非暂时性介质。
在本公开的实施例中,实践本公开的指令序列的执行由计算机***1000的单个实例进行。根据本公开的其他实施例,由通信链路1015(如LAN、PTSN或无线网络)连接的两个或更多计算机***1000可以彼此协调地执行实践本公开所需的指令序列。
计算机***1000可以经由通信链路1015和通信接口1014发送和接收消息、数据和指令,包括程序即应用代码。收到的程序代码可以由处理器1007在其被收到时执行,并且/或者存储在盘驱动器1010或其他非易失性存储器中用于后来执行。计算机***1000可以经由数据接口1033与外部数据储存库1031上的数据库通信。实施本文使用的模块时能够使用***存储器1008的任何部分以及任何程度的硬连线电路的任何混合,包括实施为处理器1007的硬连线电路。
在以上说明书中,已经参考本公开的特定实施例介绍了本公开。不过显而易见,可以对其进行多种修改和改变而不脱离本公开的更广阔的实质和范围。例如,参考处理动作的特定顺序介绍了上述处理流程。不过,介绍的许多处理动作的顺序都可以改变而不影响本公开的范围或操作。所以,说明书和附图被视为示例意义而不是限制意义。
Claims (18)
1.一种计算机实施的方法,用于关于显示框移动窗口对象,所述方法包括:
接收手势,所述手势包括来自人机界面设备的信号;
确定环境变量,所述环境变量至少包括来自人机界面设备的手势的强度以及窗口对象的质量值,其中窗口对象的质量值对应于窗口对象的移动的惯性值;
向第一窗口对象施加第一移动,第一移动基于第一窗口对象的第一质量值以及手势的至少一个方面;以及
向第二窗口对象施加第二移动,第二移动基于第二窗口对象的第二质量值以及手势的相同至少一个方面;
其中,当第二质量值与第一质量值不同时,第二移动与第一移动不同。
2.根据权利要求1的方法,其中,第一窗口对象的第一质量值基于第一窗口对象的内容。
3.根据权利要求1的方法,其中,第二窗口对象的第二质量值基于第二窗口对象的内容。
4.根据权利要求1的方法,其中,第一移动包括运动积分器。
5.根据权利要求1的方法,其中,第一移动包括环境反馈。
6.根据权利要求1的方法,其中,手势的强度从离散手势导出。
7.根据权利要求1的方法,其中,手势的强度从连续手势导出。
8.权利要求1至7的方法实施为一种***,所述***具有用于实施所述方法的步骤的装置。
9.实施为一种计算机程序产品的权利要求1至7的方法,所述计算机程序产品包括计算机可读储存介质,其具有用于执行所述方法的步骤的可执行代码。
10.一种计算机实施的方法,用于使用离散手势在显示框内移动显示对象,所述方法包括:
接收离散手势,离散手势包括来自人机界面设备的信号;
根据离散手势的至少一个方面,将显示对象加速到初始速度;以及
至少根据初始速度,对显示对象施加第一动画;
其中,第一动画包括摩擦模型,摩擦模型结合了滑动摩擦项与流体摩擦项以确定速度变化。
11.根据权利要求10的方法,其中,初始速度基于显示屏的尺寸。
12.根据权利要求10的方法,还包括:
接收第二离散手势,第二离散手势包括来自人机界面设备的第二信号;
根据第二离散手势的至少一个方面,对显示对象施加第二动画。
13.根据权利要求10的方法,其中,初始速度赋予显示对象的虚拟能量等于施加第一动画而失去的虚拟能量。
14.根据权利要求10的方法,还包括:
接收事件,所述事件包括显示对象与显示屏的回弹周边之间的碰撞或互动;
根据事件的至少一个方面,对显示对象施加第三动画。
15.根据权利要求14的方法,其中,第三动画包括摩擦模型,摩擦模型结合了滑动摩擦项、流体摩擦项和阻尼弹簧项。
16.根据权利要求10的方法,其中,显示对象包括视口下的显示内容。
17.实施为一种***的权利要求10至16的方法,所述***具有用于实施所述方法的步骤的装置。
18.实施为一种计算机程序产品的权利要求10至16的方法,所述计算机程序产品包括计算机可读储存介质,其具有用于执行所述方法的步骤的可执行代码。
Applications Claiming Priority (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201161542186P | 2011-10-01 | 2011-10-01 | |
US61/542,186 | 2011-10-01 | ||
US13/460,425 US9448633B2 (en) | 2011-10-01 | 2012-04-30 | Moving a display object within a display frame using a discrete gesture |
US13/460,465 | 2012-04-30 | ||
US13/460,465 US9501150B2 (en) | 2011-10-01 | 2012-04-30 | Moving an object about a display frame by combining classical mechanics of motion |
US13/460,425 | 2012-04-30 | ||
PCT/US2012/057645 WO2013049406A1 (en) | 2011-10-01 | 2012-09-27 | Moving an object about a display frame by combining classical mechanics of motion |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103842952A true CN103842952A (zh) | 2014-06-04 |
CN103842952B CN103842952B (zh) | 2017-09-26 |
Family
ID=47992136
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201280048343.4A Active CN103842952B (zh) | 2011-10-01 | 2012-09-27 | 结合经典运动力学关于显示框移动对象 |
Country Status (4)
Country | Link |
---|---|
US (2) | US9448633B2 (zh) |
EP (1) | EP2761410A4 (zh) |
CN (1) | CN103842952B (zh) |
WO (1) | WO2013049406A1 (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104881233A (zh) * | 2015-05-15 | 2015-09-02 | 广东小天才科技有限公司 | 触控界面中的滑动控制方法和装置 |
CN105528166A (zh) * | 2014-09-28 | 2016-04-27 | 联想(北京)有限公司 | 一种控制方法及装置 |
CN109582136A (zh) * | 2018-11-13 | 2019-04-05 | 深圳市创凯智能股份有限公司 | 三维窗口手势导航方法、装置、移动终端及存储介质 |
CN113760427A (zh) * | 2019-08-09 | 2021-12-07 | 荣耀终端有限公司 | 显示页面元素的方法和电子设备 |
CN114995929A (zh) * | 2021-11-17 | 2022-09-02 | 荣耀终端有限公司 | 一种弹窗的显示方法及装置 |
WO2023231717A1 (zh) * | 2022-06-01 | 2023-12-07 | 北京字节跳动网络技术有限公司 | 动效生成方法、装置、介质及设备 |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9161085B2 (en) * | 2011-05-23 | 2015-10-13 | Microsoft Technology Licensing, Llc | Adaptive timeline views of data |
JP5925046B2 (ja) * | 2012-05-09 | 2016-05-25 | キヤノン株式会社 | 情報処理装置、情報処理装置の制御方法、およびプログラム |
KR20140010685A (ko) * | 2012-07-16 | 2014-01-27 | 삼성전자주식회사 | 휴대 단말기에서 객체 이동 방법 및 장치 |
US11386257B2 (en) * | 2012-10-15 | 2022-07-12 | Amaze Software, Inc. | Efficient manipulation of surfaces in multi-dimensional space using energy agents |
US10877780B2 (en) | 2012-10-15 | 2020-12-29 | Famous Industries, Inc. | Visibility detection using gesture fingerprinting |
US9501171B1 (en) | 2012-10-15 | 2016-11-22 | Famous Industries, Inc. | Gesture fingerprinting |
US9772889B2 (en) | 2012-10-15 | 2017-09-26 | Famous Industries, Inc. | Expedited processing and handling of events |
US10908929B2 (en) | 2012-10-15 | 2021-02-02 | Famous Industries, Inc. | Human versus bot detection using gesture fingerprinting |
KR102109054B1 (ko) * | 2013-04-26 | 2020-05-28 | 삼성전자주식회사 | 애니메이션 효과를 제공하는 사용자 단말 장치 및 그 디스플레이 방법 |
US9507502B1 (en) * | 2013-06-12 | 2016-11-29 | Bentley Systems, Incorporated | Configurable multidimensional placement dashboard |
US9411796B2 (en) * | 2013-09-04 | 2016-08-09 | Adobe Systems Incorporated | Smoothing paths in a graphical interface generated by drawing inputs |
US9798525B2 (en) | 2013-09-20 | 2017-10-24 | Oracle International Corporation | Method and system for implementing an action command engine |
US9958963B2 (en) * | 2014-02-19 | 2018-05-01 | American Greetings Corporation | Systems, methods, and apparatuses for creating digital glitter with accelerometer |
CN104142730B (zh) * | 2014-07-04 | 2017-06-06 | 华南理工大学 | 一种手势跟踪结果映射成鼠标事件的方法 |
US10019143B1 (en) * | 2014-09-29 | 2018-07-10 | Amazon Technologies, Inc. | Determining a principal image from user interaction |
US10031892B2 (en) * | 2015-03-30 | 2018-07-24 | Konica Minolta Laboratory U.S.A., Inc. | Automatic grouping of document objects for reflowed layout |
CN105554553B (zh) * | 2015-12-15 | 2019-02-15 | 腾讯科技(深圳)有限公司 | 通过悬浮窗口播放视频的方法及装置 |
US10163245B2 (en) | 2016-03-25 | 2018-12-25 | Microsoft Technology Licensing, Llc | Multi-mode animation system |
US10510317B2 (en) | 2016-06-03 | 2019-12-17 | Apple Inc. | Controlling display performance with target presentation times |
US10388054B2 (en) | 2016-06-03 | 2019-08-20 | Apple Inc. | Controlling display performance using animation based refresh rates |
JP6282696B2 (ja) * | 2016-07-27 | 2018-02-21 | 京セラ株式会社 | 電子機器及び制御方法 |
US10373364B2 (en) * | 2017-05-17 | 2019-08-06 | Google Llc | Termination of animation |
CN109683992B (zh) * | 2017-10-18 | 2022-06-07 | 北京京东尚科信息技术有限公司 | 用于管理对象的方法和装置 |
CN112055842A (zh) * | 2018-05-08 | 2020-12-08 | 谷歌有限责任公司 | 拖动手势动画 |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3752522A (en) * | 1971-11-17 | 1973-08-14 | E Speer | Automotive vehicle impact energy reducing bumper |
US6708142B1 (en) | 1999-01-14 | 2004-03-16 | University Of Central Florida | Automatic motion modeling of rigid bodies using collision detection |
US7148017B1 (en) | 2000-07-12 | 2006-12-12 | Cornell Research Foundation, Inc. | High sensitivity mechanical resonant sensor |
JP4286068B2 (ja) | 2003-06-03 | 2009-06-24 | 大塚電子株式会社 | 画面の動画質評価方法 |
US20060158459A1 (en) | 2004-07-20 | 2006-07-20 | Ferguson Stuart H | Systems and methods for creating user interfaces |
US20060292532A1 (en) * | 2005-06-27 | 2006-12-28 | Stern Richard H | Mental therapy method for catharsis of negative feelings |
JP3888382B2 (ja) | 2005-07-05 | 2007-02-28 | 松下電器産業株式会社 | データ処理装置 |
WO2007121557A1 (en) | 2006-04-21 | 2007-11-01 | Anand Agarawala | System for organizing and visualizing display objects |
US20080222540A1 (en) | 2007-03-05 | 2008-09-11 | Apple Inc. | Animating thrown data objects in a project environment |
US20080234072A1 (en) * | 2007-03-20 | 2008-09-25 | Anthony E. Seaman | Golf tee |
US9569086B2 (en) | 2007-12-12 | 2017-02-14 | Nokia Technologies Oy | User interface having realistic physical effects |
US8154524B2 (en) | 2008-06-24 | 2012-04-10 | Microsoft Corporation | Physics simulation-based interaction for surface computing |
CN106990811A (zh) | 2008-07-15 | 2017-07-28 | 意美森公司 | 用于触觉消息传输的***和方法 |
US8584027B2 (en) * | 2009-06-02 | 2013-11-12 | Apple Inc. | Framework for designing physics-based graphical user interface |
US8762886B2 (en) | 2009-07-30 | 2014-06-24 | Lenovo (Singapore) Pte. Ltd. | Emulating fundamental forces of physics on a virtual, touchable object |
US20110163944A1 (en) | 2010-01-05 | 2011-07-07 | Apple Inc. | Intuitive, gesture-based communications with physics metaphors |
US8839150B2 (en) | 2010-02-10 | 2014-09-16 | Apple Inc. | Graphical objects that respond to touch or motion input |
US9417787B2 (en) | 2010-02-12 | 2016-08-16 | Microsoft Technology Licensing, Llc | Distortion effects to indicate location in a movable data collection |
US9977472B2 (en) * | 2010-03-19 | 2018-05-22 | Nokia Technologies Oy | Method and apparatus for displaying relative motion of objects on graphical user interface |
US8537128B2 (en) * | 2010-06-21 | 2013-09-17 | Apple Inc. | Portable multi-touch input device |
CN101950235B (zh) | 2010-08-23 | 2013-06-05 | 中兴通讯股份有限公司 | 一种实现触摸屏界面滑动的方法和终端 |
-
2012
- 2012-04-30 US US13/460,425 patent/US9448633B2/en active Active
- 2012-04-30 US US13/460,465 patent/US9501150B2/en active Active
- 2012-09-27 CN CN201280048343.4A patent/CN103842952B/zh active Active
- 2012-09-27 EP EP20120836671 patent/EP2761410A4/en not_active Ceased
- 2012-09-27 WO PCT/US2012/057645 patent/WO2013049406A1/en active Application Filing
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105528166A (zh) * | 2014-09-28 | 2016-04-27 | 联想(北京)有限公司 | 一种控制方法及装置 |
CN104881233A (zh) * | 2015-05-15 | 2015-09-02 | 广东小天才科技有限公司 | 触控界面中的滑动控制方法和装置 |
CN104881233B (zh) * | 2015-05-15 | 2019-03-15 | 广东小天才科技有限公司 | 触控界面中的滑动控制方法和装置 |
CN109582136A (zh) * | 2018-11-13 | 2019-04-05 | 深圳市创凯智能股份有限公司 | 三维窗口手势导航方法、装置、移动终端及存储介质 |
CN109582136B (zh) * | 2018-11-13 | 2022-05-03 | 深圳市创凯智能股份有限公司 | 三维窗口手势导航方法、装置、移动终端及存储介质 |
CN113760427A (zh) * | 2019-08-09 | 2021-12-07 | 荣耀终端有限公司 | 显示页面元素的方法和电子设备 |
US11675478B2 (en) | 2019-08-09 | 2023-06-13 | Honor Device Co., Ltd. | Method for displaying page elements and electronic device |
US11989388B2 (en) | 2019-08-09 | 2024-05-21 | Honor Device Co., Ltd. | Method for displaying page elements and electronic device |
CN114995929A (zh) * | 2021-11-17 | 2022-09-02 | 荣耀终端有限公司 | 一种弹窗的显示方法及装置 |
CN114995929B (zh) * | 2021-11-17 | 2023-04-21 | 荣耀终端有限公司 | 一种弹窗的显示方法及装置 |
WO2023231717A1 (zh) * | 2022-06-01 | 2023-12-07 | 北京字节跳动网络技术有限公司 | 动效生成方法、装置、介质及设备 |
Also Published As
Publication number | Publication date |
---|---|
WO2013049406A1 (en) | 2013-04-04 |
US9448633B2 (en) | 2016-09-20 |
EP2761410A1 (en) | 2014-08-06 |
US20130083037A1 (en) | 2013-04-04 |
CN103842952B (zh) | 2017-09-26 |
US9501150B2 (en) | 2016-11-22 |
US20130086516A1 (en) | 2013-04-04 |
EP2761410A4 (en) | 2015-05-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103842952A (zh) | 结合经典运动力学关于显示框移动对象 | |
US9898190B2 (en) | Multi-touch object inertia simulation | |
US10453240B2 (en) | Method for displaying and animating sectioned content that retains fidelity across desktop and mobile devices | |
US6957392B2 (en) | Interface engine providing a continuous user interface | |
US11386257B2 (en) | Efficient manipulation of surfaces in multi-dimensional space using energy agents | |
CN100481132C (zh) | 用于显示器的合成速率降低 | |
US9569064B2 (en) | System and method for a particle system based user interface | |
US20150007099A1 (en) | Pinch Gestures in a Tile-Based User Interface | |
US20050204295A1 (en) | Low Vision Enhancement for Graphic User Interface | |
Chang et al. | Real-time impulse-based simulation of rigid body systems for haptic display | |
JP2018508076A (ja) | 回転可能入力機構を用いたユーザインタフェース | |
US20240045703A1 (en) | Devices, Methods, and Graphical User Interfaces for Seamless Transition of User Interface Behaviors | |
US20100211368A1 (en) | Methods, systems and media for simulating contact scenarios | |
WO2023231717A1 (zh) | 动效生成方法、装置、介质及设备 | |
Papper et al. | Using physical constraints in a virtual environment | |
Dodson | COMAIDE: Information visualization using cooperative 3D diagram layout | |
USRE48596E1 (en) | Interface engine providing a continuous user interface | |
US20070184906A1 (en) | Method of controlling interactions between objects | |
van der Spuy et al. | Making Things Move | |
Wang et al. | Virtual reality simulation mechanism on WWW | |
van der Spuy et al. | Moving Sprites | |
US20140372916A1 (en) | Fixed header control for grouped grid panel | |
Horspool et al. | Game Board | |
Palmer et al. | Interaction and Behaviour |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |