平滑操纵三维对象的制作方法

文档序号:6540804阅读:188来源:国知局
平滑操纵三维对象的制作方法
【专利摘要】本发明提供了在一个虚拟三维空间操纵一个虚拟三维(3D)对象的系统和方法。在显示器上显示3D对象的呈现。确定一个有表面的非半球形轨迹球。非半球形轨迹球与3D对象的呈现相关联。检测定位装置的第一定位和第二定位。定位装置的第一定位转换到非半球形轨迹球表面的第一位置。定位装置的第二定位转换到非半球形轨迹球表面的第二位置。在显示器上显示3D对象的呈现的旋转,旋转基于非半球形轨迹球表面的第一位置和第二位置之间的行进路径。
【专利说明】平滑操纵三维对象

【技术领域】
[0001]本发明涉及如何操纵虚拟三维(3D)对象,并且以一个特定实例解释如何使用非半球形轨迹球操纵虚拟三维对象的方向。

【背景技术】
[0002]3D场景的开发和动画需要放置和移动虚拟三维对象。这通常需要在虚拟场景或对象编辑环境中改变对象的方向、位置和大小。对象的方向、位置和大小是通过旋转、平移和缩放技术来操作的。
[0003]用户可通过一个方法来实现这些操纵,即直接输入对应于所需操作的数值。例如,通过选择对象,并指定三个旋转属性的值,其中每个值控制单个轴X、Y或Z的旋转,用户可以在一个计算机程序中改变该对象在三维空间的方向。尽管直接输入旋转数值为操纵三维对象的方向提供了一个精确方法,但也提出了许多挑战。例如,对不是非常熟悉旋转设置的用户来说,界面也许不是很友好。
[0004]用户也可使用一个指向装置操纵虚拟三维对象。该指向装置沿探测表面的位置变化可以用来改变三维空间中对象的方向。当用户使用该指向装置选择检测表面上的两个位置,计算机程序可以使用这两个位置的坐标旋转三维对象。相对于直接输入数值来说,使用指向装置操纵三维对象对用户更友好,但操作对象的精确度如果很高,对用户是个挑战。
[0005]现有的系统对提供高精确度的虚拟三维对象的操作没有用户友好性。因此,我们急需用户友好的、直观的和精确的技术,用来在三维空间中平稳地操纵三维对象。
[0006]发明概述
[0007]描述了在虚拟三维空间中操纵虚拟三维(3D)对象的过程。一个示例方法可包括在显示器上显示三维对象的呈现。确定了具有表面的非半球形轨迹球。非半球形轨迹球与三维对象的呈现相关。在第一位置和在第二位置检测到一种指向装置。该指向装置的所述第一位置被转换到非半球形轨迹球表面上的第一位置。该指向装置的第二个位置被转换到非半球形轨迹球的表面上的第二位置。三维对象呈现的旋转被显示在显示器上,该旋转基于沿非半球形轨迹球表面所述第一位置和第二位置之间的行程路径。
[0008]用于在虚拟三维空间中操纵虚拟三维对象的系统和计算机可读存储媒介也有所说明。
[0009]附图简述
[0010]通过参考下述附图可以最好地理解本申请,附图中相同的部分通过相同的数字引用。
[0011]图1显示一个常规半球形轨迹球。
[0012]图2显示一个常规半球形轨迹球和一个非半球形轨迹球之间的比较。
[0013]图3显示三维非半球形轨迹球的示例。
[0014]图4显示使用非半球形轨迹球旋转对象的示例性程序。
[0015]图5显示使用非半球形轨迹球旋转对象的另一个示例性程序。
[0016]图6描绘了一个示例性计算系统,该系统可根据各种实施例被用于在虚拟三维环境中操纵三维对象。
[0017]发明详述
[0018]下面的描述解释如何让一个本领域的普通技术人员建立和使用各种不同实施例。具体设备、技术和应用的描述仅作为示例提供。对于一个本领域的普通技术人员来说,对本文所描述实施例的各种不同修改都显而易见,并且本文定义的一般原理可以应用于其它实施例和应用,而不脱离本发明技术的精神和范围。因此,本发明所公开的技术并不限于本文描述和展示的实施例,而是应与权利要求的范围相一致。
[0019]下面描述了有关在虚拟三维空间中操纵虚拟三维(3D)对象过程的各种实施例。一个示例方法可包括在显示器上显示三维对象的呈现。确定了具有表面的非半球形轨迹球。非半球形轨迹球与三维对象的呈现相关。在第一位置和在第二位置检测到一种指向装置。指向装置的所述第一位置被转换到非半球形轨迹球表面上的第一位置。该指向装置的第二个位置被转换到非半球形轨迹球的表面上的第二位置。三维对象呈现的旋转被显示在显示器上,该旋转基于沿非半球形轨迹球表面所述第一位置和第二位置之间的行程路径。
[0020]图1展示一个常规半球形轨迹球104。常规半球形轨迹球104的说明通过参照计算机屏幕表面102描述。常规半球形轨迹球104提供一种在三维空间中旋转对象的不精确方法。在一个较高水平,可通过围绕一个虚拟3D对象创建虚拟球体,来实施半球形轨迹球。3D对象通常会显示在屏幕上。在任一时刻,用户都可以访问球形即半球形轨迹球104的二分之一。由于轨迹球104的半球形状,该轨迹球与屏幕表面102的虚拟交叉点的横截面是一个圆,该半球形轨迹球104在屏幕表面102的虚拟交叉点附近的衰减几乎是垂直的。
[0021]一个用户使用鼠标指向光标在半球形轨迹球104上选择一个点106。然后,该用户把光标拖动到半球形轨迹球104的一个不同的位置上,如点110。用户沿着球体表面在屏幕上拖拉该点时,该对象旋转,以跟随球体的等效转动。此旋转可使用分别对应于点106和110的矢量108和112进行计算。
[0022]尽管该技术提供了直观和用户友好的体验,用户旋转对象获得的精度只是一个较低水平。精确度的缺乏对于沿半球形轨迹球的边缘附近进行的旋转则更加明显。当指向光标到达半球边缘时,根据二维(2D)空间中光标位置的增量变化而产生的对象在三维空间的旋转角度迅速增加。因此,在半球形轨迹球104的边缘,光标沿屏幕表面102的运动的微小变化会极大地改变与半球形轨迹球104相关联的对象的旋转。这种现象在下文中得到更详细描述。
[0023]图2显示一个常规半球形轨迹球和一个非半球形轨迹球之间的比较。常规半球形轨迹球104以2D显示,以便于理解,如半球形轨迹球204 —样。用户可被定位成从位置208观看屏幕表面206。当用户沿屏幕表面206把光标从点210拖动到点212,与半球形轨迹球204相关联的对象被旋转。光标沿屏幕表面206的示例性运动开始于半球形轨迹球206的边缘,并结束于该半球形轨迹球204内的10像素处。为清楚起见,10像素运动沿屏幕表面206测量。
[0024]当沿屏幕表面206的该10像素光标运动被投影到半球形轨迹球204上时,它导致从X轴到矢量214的旋转218的角度为2D中的18度。这样,10像素的光标从点210运动到点212时,与半球形轨迹球204相关联的对象将被旋转18度。请注意,沿屏幕表面206(不是在半球形轨迹球204的边缘附近)的像素运动将产生显著小于18度的旋转角度。尤其是,与在半球形轨迹球204的中心附近拖动光标相比,沿半球形轨迹球204的边缘附近拖动光标能更迅速地旋转相关联的对象。在半球形轨迹球204的边缘附近的快速旋转使对半球形轨迹球204相关联的对象操纵难以平滑,也阻碍对相关联对象的旋转的精确控制。
[0025]与半球形轨迹球204相反的是,图2显示可提供额外精确度的非半球形轨迹球202。用户沿相同的屏幕表面206把光标从点210拖动至点212时,与非半球形轨迹球202相关联的对象的旋转显著小于与半球形轨迹球204相关联的对象。特别是,对非半球形轨迹球202来说,10像素光标在屏幕表面206上从点210到点212的运动使旋转220从x轴到矢量216的角度在二维中只有5度。
[0026]在本示例中,5度的旋转是通过10像素光标在屏幕表面206的运动获得的,该运动与半球形轨迹球204所描述的运动相同。请注意,沿屏幕表面206的10像素运动如果不是在非半球形轨迹球202的边缘附近,其旋转角度接近5度。因为与沿半球形轨迹球204边缘和中心的旋转角度相比,沿非半球形轨迹球202的边缘和中心的旋转角度更一致,所以非半球形轨迹球202提供更高的精确度和更好的用户体验。
[0027]图3显示三维中的非半球形轨迹球304的示例。图2中相对于非半球形轨迹球描述的概念可以扩展到三维,让对象在三维空间中旋转,如在Χ、Y和Z轴上。轨迹球参照显示屏幕302进行说明。与常规半球不同的是,用户与轨迹球互动时,非半球形轨迹球使用能缓和对象所体验的旋转角度的衰减技术。
[0028]参考图3,可以将具有不同衰减属性范围的各种形状用于三维非半球形轨迹球,以实现期望的结果。一个非半球形轨迹球具有一个二维底部。此底部为圆形,并且有一个中心点。和半球不同的是,从底部中心点到非半球形轨迹球的表面所测得的该三维非半球形轨迹球的半径在非半球形轨迹球的表面不是恒定不变的。
[0029]在一个示例性实施方式中,用户使用触摸屏显示装置来操纵一个虚拟三维空间内的虚拟三维对象。对象的表示显示在屏幕上。用户把装置设置成“操纵模式”,方法是选择切换,把指向装置的运动解释为对象的旋转,而不是转换、调整大小或其它操纵。启动操纵模式导致系统确定一个非半球形轨迹球的形状、尺寸和位置,并把轨迹球与所述对象的表示进行关联。用户把如手指之类的指向装置放在屏幕上一个位置处的对象之上或附近,并在屏幕上把指向装置拖动到另一位置。系统检测到这两个位置(或两点之间的过渡),并把位置转换成非半球形轨迹球表面上的两个位置。轨迹球的表面上的这两个位置然后用于确定应该施加到对象的旋转角度。施加到与非半球形轨迹球相关联的对象的旋转可以是一维、二维或三维。显示得到更新,以使用指向装置根据输入旋转显示旋转后的对象。在视觉上,对象响应用户输入的旋转可以很接近实时。
[0030]作为通过启动操纵模式而确定非半球形轨迹球的形状、大小以及位置的一种替代方法,所述非半球形轨迹球可以作为对用户把指向装置最初放置于显示屏幕上的对象之上或附近的响应而确定。非半球形轨迹球的形状、大小和/或位置特征基于相对于所述对象在触摸屏上的初始触碰位置而选择。例如,轨迹球的尺寸和形状的选择要完全或部分包围对象。
[0031] 在一个实施例中,与某个对象相关联的非半球形轨迹球不完全包围该对象。当用户在对象上选择一个位置以旋转该对象时,所述非半球形轨迹球尺寸增大,使得所选择的位置处于轨迹球范围之内。这允许用户操纵对象,即使当轨迹球未以可视方式显示在显示器上时也是如此。
[0032]图2所示的非半球形轨迹球的例子说明,二维轨迹球用y=cos ((x~ 1.3) * ( π /2))(其中-1 < X < I)生成。该公式可扩展成三维,以在三维中生成一个非半球形轨迹球。
[0033]常规的半球形轨迹球可由下面的公式描述:
[0034]di stFromCircIeCenter=Sqrt (xXx+yXy)
[0035]z=sqrt(1.0-distFromCircIeCenter)
[0036]其中z可被概念化为从显示屏幕正交扩展。注意,sqrt(l.0_x)是半径为I的圆的函数。这导致可以绘制一个矢量vectorV(x, y, z)。需要注意的是半球形轨迹球为轨迹球边缘附近、坡度大约90度的斜面。
[0037]下面的等式说明了非半球形轨迹球的一个实例:
[0038]di stFromCirc IeCenter=Sqrt (xXx+yXy)
[0039]Z=Cos (distFromCircleCenterL3X π /2) ? 这导致可以绘制一个矢量 vectorV(X,y, z)。本领域内的普通技术人员能够理解,distFromCircleCenter变量可以提升到各种功率值。例如,功率值可以在1.2到1.4的范围之间选择。
[0040]本领域内的普通技术人员还能够理解,这些仅是非半球形轨迹球的一组方程式,且其它方程和变型也可以被实现。在一些实例中,非半球形轨迹球方程在轨迹球边缘导致小于90度的斜率(例如在x=l时)。而在另一些实例中,一个非半球形轨迹球在轨迹球边缘具有在70度和85度之间的斜面。在另一个实例中,一个非半球形轨迹球在轨迹球边缘具有45度和70度之间的斜面。而在又一实例中,所述非半球形轨迹球在轨迹球边缘具有25度和45度之间的斜面。在该轨迹球的边缘附近的斜面越陡,与轨迹球关联的对象会因轨迹球边缘附近的运动而更迅速地旋转。
[0041]此外,轨迹球可以使用两个或以上的段(例如样条曲线)为不容易用单个方程式建模的非半球形轨迹球创建一个衰减曲线。这两个或多个段可用来为使用非半球形轨迹球的旋转创建更一致的外观或感觉。
[0042]图4显示了使用非半球形轨迹球旋转一对象的示例性过程。例如,该方法使用电子硬件或存储在非临时性计算机可读存储媒介(即可被计算机处理器读取)内的指令来实现。该方法用于在虚拟三维空间中操纵虚拟三维对象。在模块400中,一 3D对象的表示被显示在显示器上。该三维对象基于存储在计算机存储器中的多边形网格。多边形网格定义了对象的形状。
[0043]非半球形轨迹球在模块402处被确定。非半球形轨迹球具有一个表面,该表面可以是很光滑的。该非半球形轨迹球可以用可视方式显示在显示器上。在其它实施例中,轨迹球可以是部分透明或不可视方式显示。在模块404中,非半球形轨迹球与三维对象的表示相关联。通过将非半球形轨迹球与三维对象的表示相关联,多个三维对象可以显示在一台计算机屏幕上,且每个三维对象有其自己的相关联的轨迹球。
[0044]在模块406中,在第一位置检测到一个指向装置。如果例子中使用了计算机鼠标,当用户点击鼠标上的按钮时,该指向装置的位置可被检测并存储在存储器中。另一实例中使用了一个触摸屏时,那么当用户用手指或指针触碰触摸屏时,该指向装置的位置可被检测到并存储在存储器中。在模块408中,指向装置的第二位置被检测并存储在存储器中。例如,当用户用计算机鼠标再点击一次,或当用户把计算机鼠标拖动到一个不同的位置然后释放时,第二个位置可以被检测到并存储。在另一个例子中,如果用户触摸该触摸屏上的第二位置,或把手指或指针拖动到触摸屏上的第二位置然后释放,第二个位置可以被检测到。
[0045]在模块410中,所述第一位置被转换到非半球形轨迹球表面上的第一位置。第一位置可以是具有X、Y和Z轴值的三维位置。在模块412中,第二位置被转换到非半球形轨迹球表面上的第二位置。所述第二位置也可以是具有X、Y和Z轴值的三维位置。普通技术人员能够理解,三维空间的位置也可以使用其它技术存储,。
[0046]在模块414中,对象的旋转显示和记录在计算机存储器中。例如,该旋转可以是流体型的动画旋转,也可以是从对象的原始方向跳转到该对象旋转后的方向。对象的旋转基于第一位置和第二位置。更具体地说,所述旋转可以基于沿非半球形轨迹球表面的、在所述第一位置和第二位置之间的行程路径。因此,半球形轨迹球的形状在对象旋转运动中起到了重要作用。
[0047]图5显示使用非半球形轨迹球旋转对象的另一示例性过程。该方法用于在虚拟三维空间中操纵虚拟三维对象。在模块500中,一个三维对象的表示显示在显示器上。例如,三维对象可以基于存储在计算机存储器中的多边形网格。该多边形网格定义了对象的形状。
[0048]模块502中确定了非半球形轨迹球。该非半球形轨迹球具有一个可以很光滑的表面。该非半球形轨迹球可以用可视方式显示在显示器上,也可以用不可视方式显示。非半球形轨迹球的底部有一个圆形的周边和一个中心点,该中心点和底部圆形周边上的所有点的距离相等。从底部的中心点到非半球形轨迹球表面所测得的非半球形轨迹球半径各不相同。例如,非半球形轨迹球的半径在所述非半球形轨迹球边缘附近可能更长,而在靠近非半球形轨迹球表面的中心处要短一点。
[0049]在模块504中,非半球形轨迹球与三维对象的表示相关联。非半球形轨迹球可以被放置在三维空间内所确定的三维空间置放位置。该置放位置可以基于三维对象在三维空间中的表示的中心点。这样,非半球形轨迹球可以定位成与三维对象的中心一致。
[0050]在模块506中,指向装置在第一位置检测到。对于使用计算机鼠标的例子而言,用户点击鼠标上的一个按钮时,该指向装置的位置可被检测并存储在存储器中。在使用触摸屏的另一个实例中,当用户用手指或指针触碰触摸屏时,该指向装置的位置可被检测到并存储在存储器中。在模块508中,指向装置在第二位置被检测到并存储在存储器中。例如,当用户用计算机鼠标再点击一次,或当用户把计算机鼠标拖动到一个不同的位置然后释放时,第二个位置可以被检测到并存储。在另一个例子中,如果用户触摸该触摸屏上的第二位置,或把手指或指针拖动到触摸屏上的第二位置然后释放,第二个位置可以被检测到。如下所述,非半球形轨迹球的形状和尺寸可以基于该第一位置。因此,可基于所述第一位置调整非半球形轨迹球大小或生成该非半球形轨迹球。
[0051]在模块510中,非半球形轨迹球的尺寸被确定。非半球形轨迹球的尺寸可以基于指向装置的所述第一位置。例如,非半球形轨迹球的尺寸可以确定为使其底部扩展到二维空间内三维对象的表示的投影范围之外。所选择的非半球形轨迹球的大小和/或形状也可以完全包覆所述三维对象的表示。
[0052]在模块512中,所述第一位置被转换到非半球形轨迹球表面上的第一位置。第一位置可以是具有X、Y和Z轴值的三维位置。在模块512中,第二个位置也被转换到非半球形轨迹球表面上的第二位置。所述第二位置也可以是具有X、Y和Z轴值的三维位置。普通技术人员能够理解,三维空间的一个位置可以使用其它技术存储。
[0053]在模块514中,第一矢量被确定。第一矢量从非半球形轨迹球底部的中心延伸到非半球形轨迹球表面上的第一位置。在模块516中,第二矢量被确定。第二矢量从非半球形轨迹球底部的中心延伸到非半球形轨迹球表面上的第二位置。
[0054]在模块518中,第一旋转度数在第一维度中计算。第一旋转度数通过确定第一矢量和第二矢量之间的第一角度来计算。在模块520中,第二旋转度数在第二维度中计算。第二旋转度数通过确定第一矢量和第二矢量之间的第二角度来计算。在模块522中,第三旋转度数在第三维度中计算。第三旋转度数通过确定第一矢量和第二矢量之间的第三角度来计算。例如,第一、第二、第三维度可以是三维空间中的χ、υ、ζ。
[0055]在模块524中,对象的旋转被记录在计算机存储器中。对象的旋转也可显示在屏幕上让用户观看。旋转三维对象的呈现是基于第一旋转度数、第二旋转度数和第三旋转度数的其中一个或多个。对象的旋转值可以存储在相关联的网格数据结构中,该结构与对象相关联。
[0056]在一个示例中,旋转可以是流动的、动画片式旋转,或者可以是从对象的初始方向跳转到对象的旋转方向。对象的旋转基于第一位置和第二位置。更具体地来说,所述旋转可以基于非半球形形轨迹球表面的第一位置和第二位置之间的行进路径。因此,非半球形轨迹球的形状在对象的旋转运动中起着重要作用。
[0057]在另一个示例中,在输入鼠标指针沿显示屏的表面移动过程中,将输入鼠标指针的一个按钮按下移到不同位置时,系统不断地从屏幕上检测到的位置重新计算对象的旋转。
[0058]在本示例中,与非半球形轨迹球相关联的对象的当前3D旋转被保存在存储器中。系统检测到指针的按钮按下。在按下按钮时指针的位置被转换到非半球形轨迹球的表面。从轨迹球底部的中心到轨迹球表面转换的位置计算出一个3D矢量。这个矢量作为初始3D矢量存在存储器中。当系统检测到指针的移动时,系统计算从轨迹球底部的中心到鼠标指针被转换到的轨迹球表面位置的附加3D矢量。对于这些附加3D矢量的其中一个或多个,系统根据原始3D矢量和附加3D矢量计算出3D旋转。对象基于该旋转进行显示,并且对象的新3D旋转值存储在存储器中。这个过程的特性是让旋转非常稳定。例如,如果用户将指针移回到显示屏上最初的起始位置,该对象将显示为旋转之前的对象。
[0059]下文提供了一份示例性的计算机源代码,其中包括了许多所描述的技术。源代码可以进一步修改,以包括其它特征或者改变基于上面所描述的技术。
[0060]

【权利要求】
1.一种计算机实现的在虚拟三维空间内操纵虚拟三维(3D)对象的方法,所述方法包括: 在显示器上显示3D对象的呈现; 确定有表面的非半球形轨迹球; 将所述非半球形轨迹球与所述3D对象的呈现相关联; 检测定位装置的第一定位和第二定位; 将所述定位装置的所述第一定位转换到所述非半球形轨迹球所述表面的第一位置;将所述定位装置的所述第二定位转换到所述非半球形轨迹球所述表面的第二位置;及在所述显示器上显示3D对象呈现的旋转,所述旋转基于所述非半球形轨迹球表面的所述第一位置和所述第二位置之间的行进路径。
2.如权利要求1所述的计算机执行方法,其特征在于: 所述非半球形轨迹球有一带圆形周边的底部,所述底部有一中心;并且从所述底部中心到所述非半球形轨迹球所述表面测量到的所述非半球形轨迹球的半径各不相同。
3.如权利要求2所述的计算机执行方法,进一步包括: 确定第一矢量,所述第一矢量从所述底部中心延伸到所述非半球形轨迹球表面的所述第一位置; 确定第二矢量,所述第二矢量从所述底部中心延伸到所述非半球形轨迹球表面的所述第二位置; 计算第一维度中的第一旋转度数,所述第一旋转度数通过确定第一矢量和第二矢量之间的第一角度来计算;并且 其中,在所述显示器上显示3D对象的呈现的旋转,包括根据所述计算出的第一旋转度数,旋转第一维度中3D对象的呈现。
4.如权利要求3所述的计算机执行方法,进一步包括: 计算第二维度中的第二旋转度数,所述第二旋转度数通过确定所述第一矢量和所述第二矢量之间的第二角度来计算; 其中,在所述显示器上显示3D对象的呈现的旋转,包括根据所述计算出的第二旋转度数,旋转第二维度中3D对象的呈现; 计算第三维度中的第三旋转度数,所述第三旋转度数通过确定所述第一矢量和所述第二矢量之间的第三角度来计算;及 其中,在所述显示器上显示3D对象的呈现的旋转,包括根据所述计算出的第三旋转度数,旋转第三维度中3D对象的呈现。
5.如权利要求2所述所述的计算机执行方法,进一步包括: 确定三维空间中的放置位置,所述放置位置基于三维空间中3D对象的呈现的中心;及 根据所述放置位置将所述非半球形轨迹球置于所述3D空间中。
6.如权利要求2所述的计算机执行方法,进一步包括: 确定非半球形轨迹球的尺寸,所述尺寸基于所述定位装置的所述第一定位;及 其中,所述非半球形轨迹球的所述底部扩展超出二维空间中3D对象的呈现的投影。
7.如权利要求2所述的计算机执行方法,进一步包括:确定所述非半球形轨迹球的尺寸,所述尺寸基于所述定位装置的所述第一定位;及 其中,所述非半球形轨迹球完全包裹了所述3D对象的呈现。
8.如权利要求2所述的计算机执行方法,进一步包括: 在计算机存储器中存储旋转值,其中,所述旋转值基于第一定位和第二定位 '及将所述旋转值与网格数据结构相关联,其中,在显示器上显示3D对象的呈现的旋转使用了所述网格数据结构和旋转值。
9.如权利要求2所述的计算机执行方法,其特征在于,检测定位装置包括检测用户与触敏装置的交互。
10.如权利要求2所述的计算机执行方法,其特征在于,确定有表面的非半球形轨迹球包括根据第一定位选择非半球形轨迹球的形状。
11.如权利要求2所述的计算机执行方法,其特征在于,确定有表面的非半球形轨迹球包括确定在非半球形轨迹球的边缘有个小于90度的坡度的非半球形轨迹球。
12.如权利要求11所述的计算机执行方法,其特征在于,确定有表面的非半球形轨迹球包括确定在非半球形轨迹球的边缘有个70到85度的坡度的非半球形轨迹球。
13.如权利要求2所述的计算机执行方法,其特征在于,确定有表面的非半球形轨迹球,包括使用基 于(a)半径的乘方值和(b) pi除以2的乘积的余弦的一个方程式。
14.如权利要求13所述的计算机执行方法,其特征在于,所述乘方值在1.2和1.4之间。
15.一个非临时性计算机可读存储媒介,包括了在一个虚拟三维空间中操纵一个虚拟三维(3D)对象的计算机可执行指令,计算机可执行指令包括以下指令: 在显示器上显示3D对象的呈现; 确定有表面的非半球形轨迹球; 将非半球形轨迹球与3D对象的呈现相关联; 检测定位装置的第一定位和第二定位; 将所述定位装置的第一定位转换到所述非半球形轨迹球表面的第一位置; 将所述定位装置的第二定位转换到所述非半球形轨迹球表面的第二位置;及在所述显示器上显示3D对象的呈现的旋转,旋转基于非半球形轨迹球表面第一位置和第二位置的行进路径。
16.如权利要求15所述的非临时性计算机可读存储媒介,其中: 所述非半球形轨迹球有一个带圆形周边的底部,底部有一个中心;及 从底部中心到非半球形轨迹球表面测量到的所述非半球形轨迹球的半径各不相同。
17.如权利要求16所述的非临时性计算机可读存储媒介,进一步包括: 确定第一矢量,所述第一矢量从底部中心延伸到所述非半球形轨迹球表面的所述第一位置; 确定第二矢量,所述第二矢量从底部中心延伸到所述非半球形轨迹球表面的所述第二位置; 计算第一维度中的第一旋转度数,所述第一旋转度数通过确定所述第一矢量和所述第二矢量之间的第一角度来计算;及 其中,在显示器上显示3D对象的呈现的旋转,包括根据计算出的第一旋转度数,旋转第一维度中3D对象的呈现。
18.如权利要求17所述的非临时性计算机可读存储媒介,进一步包括: 计算第二维度中的第二旋转度数,所述第二旋转度数通过确定所述第一矢量和所述第二矢量之间的第二角度来计算; 其中,在所述显示器上显示3D对象的呈现的旋转,包括根据所述计算出的第二旋转度数旋转第二维度中3D对象的呈现; 计算第三维度中的第三旋转度数,所述第三旋转度数通过确定所述第一矢量和所述第二矢量之间的第三角度来计算;及 其中,在所述显示器上显示3D对象的呈现的旋转,包括根据所述计算出的第三旋转度数,旋转第三维度中3D对象的呈现。
19.如权利要求16所述的非临时性计算机可读存储媒介,进一步包括: 确定所述三维空间中的放置位置,所述放置位置基于所述三维空间中3D对象的呈现的中心;及 根据所述放置位置将所述非半球形轨迹球置于所述三维空间中。
20.如权利要求16所述的非临时性计算机可读存储媒介,进一步包括: 确定非半球形轨迹球 的尺寸,所述尺寸基于所述定位装置的第一定位;及 其中,所述非半球形轨迹球的底部扩展超出二维空间中所述3D对象的呈现的投影。
21.如权利要求16所述的非临时性计算机可读存储媒介,进一步包括: 确定非半球形轨迹球的尺寸,所述尺寸基于所述定位装置的第一定位;及 其中,所述非半球形轨迹球完全包裹了所述3D对象的呈现。
22.如权利要求16所述的非临时性计算机可读存储媒介,进一步包括: 在计算机存储器中存储旋转值,其中,所述旋转值基于所述第一定位和所述第二定位;及 将所述旋转值与网格数据结构相关联,其中,在所述显示器上显示3D对象的呈现的旋转使用了所述网格数据结构和旋转值。
23.如权利要求16所述的非临时性计算机可读存储媒介,其中检测所述定位装置包括检测用户与触敏装置的交互。
24.如权利要求16所述的非临时性计算机可读存储媒介,其中确定有表面的所述非半球形轨迹球包括根据所述第一定位选择所述非半球形轨迹球的形状。
25.如权利要求16所述的非临时性计算机可读存储媒介,其中确定有表面的所述非半球形轨迹球包括确定在所述非半球形轨迹球的边缘有个小于90度的坡度的非半球形轨迹球。
26.如权利要求25所述的非临时性计算机可读存储媒介,其中确定有表面的所述非半球形轨迹球包括确定所述在非半球形轨迹球的边缘有个70到85度的坡度的非半球形轨迹球。
27.如权利要求14所述的非临时性计算机可读存储媒介,其中确定有表面的所述非半球形轨迹球,包括使用基于(a)半径的乘方值和(b)pi除以2的乘积的余弦的一个方程式。
28.如权利要求27所述的非临时性计算机可读存储媒介,其中所述乘方值在1.2和.1.4之间。
29.用于在虚拟三维空间中操纵虚拟三维(3D)对象的装置,所述装置包括: 经配置可存储3D对象的存储器 '及 一个或多个经配置可执行下列操作的计算机处理器: 在显示器上显示3D对象的呈现; 确定有表面的非半球形轨迹球; 将非半球形轨迹球与3D对象的呈现相关联; 检测定位装置的第一定位和第二定位; 将定位装置的第一定位转换到非半球形轨迹球表面的第一位置; 将定位装置的第二定位转换到非半球形轨迹球表面的第二位置;及在显示器上显示3D对象的呈现的旋转,旋转基于非半球形轨迹球表面第一位置和第二位置的行进路径。
30.如权利要求29所述的装置,其中: 所述非半球形轨迹球有一个带圆形周边的底部,底部有一个中心;及 从底部中心到非半球形轨迹球表面测量到的所述非半球形轨迹球的半径各不相同。
31.如权利要求30所述的装置,其中包括一个或多个经进一步配置,可执行下列操作的计算机处理器: 确定第一矢量,所述第一矢量从底部中心延伸到所述非半球形轨迹球表面的所述第一位置; 确定第二矢量,所述第二矢量从底部中心延伸到所述非半球形轨迹球表面的所述第二位置; 计算第一维度中的第一旋转度数,所述第一旋转度数通过确定所述第一矢量和所述第二矢量之间的第一角度来计算;及 其中,在显示器上显示3D对象的呈现的旋转,包括根据所述计算出的第一旋转度数,旋转第一维度中3D对象的呈现。
32.如权利要求30所述的装置,其中包括一个或多个经进一步配置,可执行下列操作的计算机处理器: 计算第二维度中的第二旋转度数,所述第二旋转度数通过确定所述第一矢量和所述第二矢量之间的第二角度来计算; 其中,在显示器上显示3D对象的呈现的旋转,包括基于所述计算出的第二旋转度数,旋转第二维度中3D对象的呈现; 计算第三维度中的第三旋转度数,所述第三旋转度数通过确定第一矢量和第二矢量之间的第三角度来计算 '及 其中,在显示器上显示3D对象的呈现的旋转,包括基于计算出的第三旋转度数,旋转第三维度中3D对象的呈现。
33.如权利要求30所述的装置,其中包括一个或多个经进一步配置,可执行下列操作的计算机处理器: 确定三维空间中的放置位置,所述放置位置基于三维空间中3D对象的呈现的中心;及 根据所述放置位置将所述非半球形轨迹球置于三维空间中。
34.如权利要求30所述的装置,其中包括一个或多个经进一步配置,可执行下列操作的计算机处理器: 确定非半球形轨迹球的尺寸,所述尺寸基于所述定位装置的第一定位;及 其中,所述非半球形轨迹球的底部扩展超出二维空间中3D对象的呈现的投影。
35.如权利要求30所述的装置,其中所述一个或多个经进一步配置,可执行下列操作的计算机处理器: 确定所述非半球形轨迹球的尺寸,所述尺寸基于所述定位装置的所述第一定位;及 其中,所述非半球形轨迹球完全包裹了 3D对象的呈现。
36.如权利要求30所述的装置,其中包括一个或多个经进一步配置,可执行下列操作的计算机处理器: 在计算机存储器中存储旋转值,其中,所述旋转值基于所述第一定位和所述第二定位;及 将所述旋转值与网格数据结构相关联,其中,在所述显示器上显示3D对象的呈现的旋转使用了所述网格数据结构和旋转值。
37.如权利要求30所述的装置,其中检测所述定位装置包括检测用户与触敏装置的交互。
38.如权利要求30所述的装置,其中确定有表面的所述非半球形轨迹球包括根据所述第一定位选择所述非半球形轨迹球的形状。
39.如权利要求30所述的装置,其中确定有表面的所述非半球形轨迹球包括确定在所述非半球形轨迹球的边缘有个小于90度的坡度的非半球形轨迹球。
40.如权利要求39提出装置,其中确定有表面的非半球形轨迹球包括确定在所述非半球形轨迹球的边缘有个70到85度的坡度的非半球形轨迹球。
41.如权利要求30所述的装置,其中确定有表面的所述非半球形轨迹球,包括使用基于(a)半径的乘方值和(b) pi除以2的乘积的余弦的一个方程式。
42.如权利要求41所述的装置,其中所述乘方值在1.2和1.4之间。
【文档编号】G06T19/20GK104050721SQ201410098601
【公开日】2014年9月17日 申请日期:2014年3月17日 优先权日:2013年3月15日
【发明者】M·Q·麦卡蒂, A·P·鲍威尔 申请人:梦工厂动画公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1