CN104050721B - 平滑操纵三维对象的方法及装置 - Google Patents

平滑操纵三维对象的方法及装置 Download PDF

Info

Publication number
CN104050721B
CN104050721B CN201410098601.0A CN201410098601A CN104050721B CN 104050721 B CN104050721 B CN 104050721B CN 201410098601 A CN201410098601 A CN 201410098601A CN 104050721 B CN104050721 B CN 104050721B
Authority
CN
China
Prior art keywords
hemispherical
trace ball
dimensional object
rotation
presentation
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
CN201410098601.0A
Other languages
English (en)
Other versions
CN104050721A (zh
Inventor
M·Q·麦卡蒂
A·P·鲍威尔
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.)
DreamWorks Animation LLC
Original Assignee
DreamWorks Animation LLC
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 DreamWorks Animation LLC filed Critical DreamWorks Animation LLC
Publication of CN104050721A publication Critical patent/CN104050721A/zh
Application granted granted Critical
Publication of CN104050721B publication Critical patent/CN104050721B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/20Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
    • 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
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2219/00Indexing scheme for manipulating 3D models or images for computer graphics
    • G06T2219/20Indexing scheme for editing of 3D models
    • G06T2219/2016Rotation, translation, scaling

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Architecture (AREA)
  • Computer Graphics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • User Interface Of Digital Computer (AREA)
  • Processing Or Creating Images (AREA)

Abstract

本发明提供了在一个虚拟三维空间操纵一个虚拟三维(3D)对象的系统和方法。在显示器上显示3D对象的呈现。确定一个有表面的非半球形轨迹球。非半球形轨迹球与3D对象的呈现相关联。检测定位装置的第一定位和第二定位。定位装置的第一定位转换到非半球形轨迹球表面的第一位置。定位装置的第二定位转换到非半球形轨迹球表面的第二位置。在显示器上显示3D对象的呈现的旋转,旋转基于非半球形轨迹球表面的第一位置和第二位置之间的行进路径。

Description

平滑操纵三维对象的方法及装置
技术领域
本发明涉及如何操纵虚拟三维(3D)对象,并且以一个特定实例解释如何使用非半球形轨迹球操纵虚拟三维对象的方向。
背景技术
3D场景的开发和动画需要放置和移动虚拟三维对象。这通常需要在虚拟场景或对象编辑环境中改变对象的方向、位置和大小。对象的方向、位置和大小是通过旋转、平移和缩放技术来操作的。
用户可通过一个方法来实现这些操纵,即直接输入对应于所需操作的数值。例如,通过选择对象,并指定三个旋转属性的值,其中每个值控制单个轴X、Y或Z的旋转,用户可以在一个计算机程序中改变该对象在三维空间的方向。尽管直接输入旋转数值为操纵三维对象的方向提供了一个精确方法,但也提出了许多挑战。例如,对不是非常熟悉旋转设置的用户来说,界面也许不是很友好。
用户也可使用一个指向装置操纵虚拟三维对象。该指向装置沿探测表面的位置变化可以用来改变三维空间中对象的方向。当用户使用该指向装置选择检测表面上的两个位置,计算机程序可以使用这两个位置的坐标旋转三维对象。相对于直接输入数值来说,使用指向装置操纵三维对象对用户更友好,但操作对象的精确度如果很高,对用户是个挑战。
现有的系统对提供高精确度的虚拟三维对象的操作没有用户友好性。因此,我们急需用户友好的、直观的和精确的技术,用来在三维空间中平稳地操纵三维对象。
发明内容
描述了在虚拟三维空间中操纵虚拟三维(3D)对象的过程。一个示例方法可包括在显示器上显示三维对象的呈现。确定了具有表面的非半球形轨迹球。非半球形轨迹球与三维对象的呈现相关。在第一位置和在第二位置检测到一种指向装置。该指向装置的所述第一位置被转换到非半球形轨迹球表面上的第一位置。该指向装置的第二个位置被转换到非半球形轨迹球的表面上的第二位置。三维对象呈现的旋转被显示在显示器上,该旋转基于沿非半球形轨迹球表面所述第一位置和第二位置之间的行程路径。
用于在虚拟三维空间中操纵虚拟三维对象的系统和计算机可读存储媒介也有所说明。
附图说明
通过参考下述附图可以最好地理解本申请,附图中相同的部分通过相同的数字引用。
图1显示一个常规半球形轨迹球。
图2显示一个常规半球形轨迹球和一个非半球形轨迹球之间的比较。
图3显示三维非半球形轨迹球的示例。
图4显示使用非半球形轨迹球旋转对象的示例性程序。
图5显示使用非半球形轨迹球旋转对象的另一个示例性程序。
图6描绘了一个示例性计算系统,该系统可根据各种实施例被用于在虚拟三维环境中操纵三维对象。
具体实施例
下面的描述解释如何让一个本领域的普通技术人员建立和使用各种不同实施例。具体设备、技术和应用的描述仅作为示例提供。对于一个本领域的普通技术人员来说,对本文所描述实施例的各种不同修改都显而易见,并且本文定义的一般原理可以应用于其它实施例和应用,而不脱离本发明技术的精神和范围。因此,本发明所公开的技术并不限于本文描述和展示的实施例,而是应与权利要求的范围相一致。
下面描述了有关在虚拟三维空间中操纵虚拟三维(3D)对象过程的各种实施例。一个示例方法可包括在显示器上显示三维对象的呈现。确定了具有表面的非半球形轨迹球。非半球形轨迹球与三维对象的呈现相关。在第一位置和在第二位置检测到一种指向装置。指向装置的所述第一位置被转换到非半球形轨迹球表面上的第一位置。该指向装置的第二个位置被转换到非半球形轨迹球的表面上的第二位置。三维对象呈现的旋转被显示在显示器上,该旋转基于沿非半球形轨迹球表面所述第一位置和第二位置之间的行程路径。
图1展示一个常规半球形轨迹球104。常规半球形轨迹球104的说明通过参照计算机屏幕表面102描述。常规半球形轨迹球104提供一种在三维空间中旋转对象的不精确方法。在一个较高水平,可通过围绕一个虚拟3D对象创建虚拟球体,来实施半球形轨迹球。3D对象通常会显示在屏幕上。在任一时刻,用户都可以访问球形即半球形轨迹球104的二分之一。由于轨迹球104的半球形状,该轨迹球与屏幕表面102的虚拟交叉点的横截面是一个圆,该半球形轨迹球104在屏幕表面102的虚拟交叉点附近的衰减几乎是垂直的。
一个用户使用鼠标指向光标在半球形轨迹球104上选择一个点106。然后,该用户把光标拖动到半球形轨迹球104的一个不同的位置上,如点110。用户沿着球体表面在屏幕上拖拉该点时,该对象旋转,以跟随球体的等效转动。此旋转可使用分别对应于点106和110的矢量108和112进行计算。
尽管该技术提供了直观和用户友好的体验,用户旋转对象获得的精度只是一个较低水平。精确度的缺乏对于沿半球形轨迹球的边缘附近进行的旋转则更加明显。当指向光标到达半球边缘时,根据二维(2D)空间中光标位置的增量变化而产生的对象在三维空间的旋转角度迅速增加。因此,在半球形轨迹球104的边缘,光标沿屏幕表面102的运动的微小变化会极大地改变与半球形轨迹球104相关联的对象的旋转。这种现象在下文中得到更详细描述。
图2显示一个常规半球形轨迹球和一个非半球形轨迹球之间的比较。常规半球形轨迹球104以2D显示,以便于理解,如半球形轨迹球204一样。用户可被定位成从位置208观看屏幕表面206。当用户沿屏幕表面206把光标从点210拖动到点212,与半球形轨迹球204相关联的对象被旋转。光标沿屏幕表面206的示例性运动开始于半球形轨迹球206的边缘,并结束于该半球形轨迹球204内的10像素处。为清楚起见,10像素运动沿屏幕表面206测量。
当沿屏幕表面206的该10像素光标运动被投影到半球形轨迹球204上时,它导致从x轴到矢量214的旋转218的角度为2D中的18度。这样,10像素的光标从点210运动到点212时,与半球形轨迹球204相关联的对象将被旋转18度。请注意,沿屏幕表面206(不是在半球形轨迹球204的边缘附近)的像素运动将产生显著小于18度的旋转角度。尤其是,与在半球形轨迹球204的中心附近拖动光标相比,沿半球形轨迹球204的边缘附近拖动光标能更迅速地旋转相关联的对象。在半球形轨迹球204的边缘附近的快速旋转使对半球形轨迹球204相关联的对象操纵难以平滑,也阻碍对相关联对象的旋转的精确控制。
与半球形轨迹球204相反的是,图2显示可提供额外精确度的非半球形轨迹球202。用户沿相同的屏幕表面206把光标从点210拖动至点212时,与非半球形轨迹球202相关联的对象的旋转显著小于与半球形轨迹球204相关联的对象。特别是,对非半球形轨迹球202来说,10像素光标在屏幕表面206上从点210到点212的运动使旋转220从x轴到矢量216的角度在二维中只有5度。
在本示例中,5度的旋转是通过10像素光标在屏幕表面206的运动获得的,该运动与半球形轨迹球204所描述的运动相同。请注意,沿屏幕表面206的10像素运动如果不是在非半球形轨迹球202的边缘附近,其旋转角度接近5度。因为与沿半球形轨迹球204边缘和中心的旋转角度相比,沿非半球形轨迹球202的边缘和中心的旋转角度更一致,所以非半球形轨迹球202提供更高的精确度和更好的用户体验。
图3显示三维中的非半球形轨迹球304的示例。图2中相对于非半球形轨迹球描述的概念可以扩展到三维,让对象在三维空间中旋转,如在X、Y和Z轴上。轨迹球参照显示屏幕302进行说明。与常规半球不同的是,用户与轨迹球互动时,非半球形轨迹球使用能缓和对象所体验的旋转角度的衰减技术。
参考图3,可以将具有不同衰减属性范围的各种形状用于三维非半球形轨迹球,以实现期望的结果。一个非半球形轨迹球具有一个二维底部。此底部为圆形,并且有一个中心点。和半球不同的是,从底部中心点到非半球形轨迹球的表面所测得的该三维非半球形轨迹球的半径在非半球形轨迹球的表面不是恒定不变的。
在一个示例性实施方式中,用户使用触摸屏显示装置来操纵一个虚拟三维空间内的虚拟三维对象。对象的表示显示在屏幕上。用户把装置设置成“操纵模式”,方法是选择切换,把指向装置的运动解释为对象的旋转,而不是转换、调整大小或其它操纵。启动操纵模式导致系统确定一个非半球形轨迹球的形状、尺寸和位置,并把轨迹球与所述对象的表示进行关联。用户把如手指之类的指向装置放在屏幕上一个位置处的对象之上或附近,并在屏幕上把指向装置拖动到另一位置。系统检测到这两个位置(或两点之间的过渡),并把位置转换成非半球形轨迹球表面上的两个位置。轨迹球的表面上的这两个位置然后用于确定应该施加到对象的旋转角度。施加到与非半球形轨迹球相关联的对象的旋转可以是一维、二维或三维。显示得到更新,以使用指向装置根据输入旋转显示旋转后的对象。在视觉上,对象响应用户输入的旋转可以很接近实时。
作为通过启动操纵模式而确定非半球形轨迹球的形状、大小以及位置的一种替代方法,所述非半球形轨迹球可以作为对用户把指向装置最初放置于显示屏幕上的对象之上或附近的响应而确定。非半球形轨迹球的形状、大小和/或位置特征基于相对于所述对象在触摸屏上的初始触碰位置而选择。例如,轨迹球的尺寸和形状的选择要完全或部分包围对象。
在一个实施例中,与某个对象相关联的非半球形轨迹球不完全包围该对象。当用户在对象上选择一个位置以旋转该对象时,所述非半球形轨迹球尺寸增大,使得所选择的位置处于轨迹球范围之内。这允许用户操纵对象,即使当轨迹球未以可视方式显示在显示器上时也是如此。
图2所示的非半球形轨迹球的例子说明,二维轨迹球用y=cos((x^1.3)*(π/2))(其中-1≤x≤1)生成。该公式可扩展成三维,以在三维中生成一个非半球形轨迹球。
常规的半球形轨迹球可由下面的公式描述:
distFromCircleCenter=sqrt(x×x+y×y)
z=sqrt(1.0-distFromCircleCenter)
其中z可被概念化为从显示屏幕正交扩展。注意,sqrt(1.0-x)是半径为1的圆的函数。这导致可以绘制一个矢量vectorV(x,y,z)。需要注意的是半球形轨迹球为轨迹球边缘附近、坡度大约90度的斜面。
下面的等式说明了非半球形轨迹球的一个实例:
distFromCircleCenter=sqrt(x×x+y×y)
z=cos(distFromCircleCenter1.3×π/2)。这导致可以绘制一个矢量vectorV(x,y,z)。本领域内的普通技术人员能够理解,distFromCircleCenter变量可以提升到各种功率值。例如,功率值可以在1.2到1.4的范围之间选择。
本领域内的普通技术人员还能够理解,这些仅是非半球形轨迹球的一组方程式,且其它方程和变型也可以被实现。在一些实例中,非半球形轨迹球方程在轨迹球边缘导致小于90度的斜率(例如在x=1时)。而在另一些实例中,一个非半球形轨迹球在轨迹球边缘具有在70度和85度之间的斜面。在另一个实例中,一个非半球形轨迹球在轨迹球边缘具有45度和70度之间的斜面。而在又一实例中,所述非半球形轨迹球在轨迹球边缘具有25度和45度之间的斜面。在该轨迹球的边缘附近的斜面越陡,与轨迹球关联的对象会因轨迹球边缘附近的运动而更迅速地旋转。
此外,轨迹球可以使用两个或以上的段(例如样条曲线)为不容易用单个方程式建模的非半球形轨迹球创建一个衰减曲线。这两个或多个段可用来为使用非半球形轨迹球的旋转创建更一致的外观或感觉。
图4显示了使用非半球形轨迹球旋转一对象的示例性过程。例如,该方法使用电子硬件或存储在非临时性计算机可读存储媒介(即可被计算机处理器读取)内的指令来实现。该方法用于在虚拟三维空间中操纵虚拟三维对象。在模块400中,一3D对象的表示被显示在显示器上。该三维对象基于存储在计算机存储器中的多边形网格。多边形网格定义了对象的形状。
非半球形轨迹球在模块402处被确定。非半球形轨迹球具有一个表面,该表面可以是很光滑的。该非半球形轨迹球可以用可视方式显示在显示器上。在其它实施例中,轨迹球可以是部分透明或不可视方式显示。在模块404中,非半球形轨迹球与三维对象的表示相关联。通过将非半球形轨迹球与三维对象的表示相关联,多个三维对象可以显示在一台计算机屏幕上,且每个三维对象有其自己的相关联的轨迹球。
在模块406中,在第一位置检测到一个指向装置。如果例子中使用了计算机鼠标,当用户点击鼠标上的按钮时,该指向装置的位置可被检测并存储在存储器中。另一实例中使用了一个触摸屏时,那么当用户用手指或指针触碰触摸屏时,该指向装置的位置可被检测到并存储在存储器中。在模块408中,指向装置的第二位置被检测并存储在存储器中。例如,当用户用计算机鼠标再点击一次,或当用户把计算机鼠标拖动到一个不同的位置然后释放时,第二个位置可以被检测到并存储。在另一个例子中,如果用户触摸该触摸屏上的第二位置,或把手指或指针拖动到触摸屏上的第二位置然后释放,第二个位置可以被检测到。
在模块410中,所述第一位置被转换到非半球形轨迹球表面上的第一位置。第一位置可以是具有X、Y和Z轴值的三维位置。在模块412中,第二位置被转换到非半球形轨迹球表面上的第二位置。所述第二位置也可以是具有X、Y和Z轴值的三维位置。普通技术人员能够理解,三维空间的位置也可以使用其它技术存储,。
在模块414中,对象的旋转显示和记录在计算机存储器中。例如,该旋转可以是流体型的动画旋转,也可以是从对象的原始方向跳转到该对象旋转后的方向。对象的旋转基于第一位置和第二位置。更具体地说,所述旋转可以基于沿非半球形轨迹球表面的、在所述第一位置和第二位置之间的行程路径。因此,半球形轨迹球的形状在对象旋转运动中起到了重要作用。
图5显示使用非半球形轨迹球旋转对象的另一示例性过程。该方法用于在虚拟三维空间中操纵虚拟三维对象。在模块500中,一个三维对象的表示显示在显示器上。例如,三维对象可以基于存储在计算机存储器中的多边形网格。该多边形网格定义了对象的形状。
模块502中确定了非半球形轨迹球。该非半球形轨迹球具有一个可以很光滑的表面。该非半球形轨迹球可以用可视方式显示在显示器上,也可以用不可视方式显示。非半球形轨迹球的底部有一个圆形的周边和一个中心点,该中心点和底部圆形周边上的所有点的距离相等。从底部的中心点到非半球形轨迹球表面所测得的非半球形轨迹球半径各不相同。例如,非半球形轨迹球的半径在所述非半球形轨迹球边缘附近可能更长,而在靠近非半球形轨迹球表面的中心处要短一点。
在模块504中,非半球形轨迹球与三维对象的表示相关联。非半球形轨迹球可以被放置在三维空间内所确定的三维空间置放位置。该置放位置可以基于三维对象在三维空间中的表示的中心点。这样,非半球形轨迹球可以定位成与三维对象的中心一致。
在模块506中,指向装置在第一位置检测到。对于使用计算机鼠标的例子而言,用户点击鼠标上的一个按钮时,该指向装置的位置可被检测并存储在存储器中。在使用触摸屏的另一个实例中,当用户用手指或指针触碰触摸屏时,该指向装置的位置可被检测到并存储在存储器中。在模块508中,指向装置在第二位置被检测到并存储在存储器中。例如,当用户用计算机鼠标再点击一次,或当用户把计算机鼠标拖动到一个不同的位置然后释放时,第二个位置可以被检测到并存储。在另一个例子中,如果用户触摸该触摸屏上的第二位置,或把手指或指针拖动到触摸屏上的第二位置然后释放,第二个位置可以被检测到。如下所述,非半球形轨迹球的形状和尺寸可以基于该第一位置。因此,可基于所述第一位置调整非半球形轨迹球大小或生成该非半球形轨迹球。
在模块510中,非半球形轨迹球的尺寸被确定。非半球形轨迹球的尺寸可以基于指向装置的所述第一位置。例如,非半球形轨迹球的尺寸可以确定为使其底部扩展到二维空间内三维对象的表示的投影范围之外。所选择的非半球形轨迹球的大小和/或形状也可以完全包覆所述三维对象的表示。
在模块512中,所述第一位置被转换到非半球形轨迹球表面上的第一位置。第一位置可以是具有X、Y和Z轴值的三维位置。在模块512中,第二个位置也被转换到非半球形轨迹球表面上的第二位置。所述第二位置也可以是具有X、Y和Z轴值的三维位置。普通技术人员能够理解,三维空间的一个位置可以使用其它技术存储。
在模块514中,第一矢量被确定。第一矢量从非半球形轨迹球底部的中心延伸到非半球形轨迹球表面上的第一位置。在模块516中,第二矢量被确定。第二矢量从非半球形轨迹球底部的中心延伸到非半球形轨迹球表面上的第二位置。
在模块518中,第一旋转度数在第一维度中计算。第一旋转度数通过确定第一矢量和第二矢量之间的第一角度来计算。在模块520中,第二旋转度数在第二维度中计算。第二旋转度数通过确定第一矢量和第二矢量之间的第二角度来计算。在模块522中,第三旋转度数在第三维度中计算。第三旋转度数通过确定第一矢量和第二矢量之间的第三角度来计算。例如,第一、第二、第三维度可以是三维空间中的X、Y、Z。
在模块524中,对象的旋转被记录在计算机存储器中。对象的旋转也可显示在屏幕上让用户观看。旋转三维对象的呈现是基于第一旋转度数、第二旋转度数和第三旋转度数的其中一个或多个。对象的旋转值可以存储在相关联的网格数据结构中,该结构与对象相关联。
在一个示例中,旋转可以是流动的、动画片式旋转,或者可以是从对象的初始方向跳转到对象的旋转方向。对象的旋转基于第一位置和第二位置。更具体地来说,所述旋转可以基于非半球形形轨迹球表面的第一位置和第二位置之间的行进路径。因此,非半球形轨迹球的形状在对象的旋转运动中起着重要作用。
在另一个示例中,在输入鼠标指针沿显示屏的表面移动过程中,将输入鼠标指针的一个按钮按下移到不同位置时,系统不断地从屏幕上检测到的位置重新计算对象的旋转。
在本示例中,与非半球形轨迹球相关联的对象的当前3D旋转被保存在存储器中。系统检测到指针的按钮按下。在按下按钮时指针的位置被转换到非半球形轨迹球的表面。从轨迹球底部的中心到轨迹球表面转换的位置计算出一个3D矢量。这个矢量作为初始3D矢量存在存储器中。当系统检测到指针的移动时,系统计算从轨迹球底部的中心到鼠标指针被转换到的轨迹球表面位置的附加3D矢量。对于这些附加3D矢量的其中一个或多个,系统根据原始3D矢量和附加3D矢量计算出3D旋转。对象基于该旋转进行显示,并且对象的新3D旋转值存储在存储器中。这个过程的特性是让旋转非常稳定。例如,如果用户将指针移回到显示屏上最初的起始位置,该对象将显示为旋转之前的对象。
下文提供了一份示例性的计算机源代码,其中包括了许多所描述的技术。源代码可以进一步修改,以包括其它特征或者改变基于上面所描述的技术。
图6展示了所配置的示例性计算系统600,用于执行上述任意一项处理过程。在本发明上下文中,计算系统600可以包括,例如,处理器、内存、存储装置,以及输入/输出装置(例如,显示器、键盘、触摸屏、磁盘驱动器、互联网连接等)。然而,计算系统600还可包括用于执行处理过程的某些或所有方面的电路系统或其它专门的硬件。在某些操作装置中,计算系统600可被配置成包括一个或多个单元的系统,其中每个单元都被配置为以软件、硬件或某种组合来执行处理过程的某些方面。
图6展示了带有可用于执行上述处理过程的一些组件的计算系统600。主系统602包括一个主板604,其具有一个输入/输出(“I/O”)区段606、一个或多个中央处理器(“CPU”)608,和一个存储器区段610,存储器可具有与其相关的闪存存储器装置612。I/O部分606连接到显示器624、键盘614、一个磁盘存储单元616,以及一个媒介驱动装置618。媒介驱动装置618可以读/写计算机可读的媒介620,其可以包含程序622和/或数据。I/O区段606也可使用如蜂窝数据通信或无线局域网通信连接到云存储。
根据上述处理过程的结果得到的值,至少有一些可被保存供后续使用。此外,非临时性计算机可读媒介可被用于存储(例如有形地体现)一个或多个计算机程序,程序用于通过计算机来执行上述任何一个处理过程。计算机程序可以用,例如,一种通用的编程语言(如Perl、C、C++、Java),或者一些专门的应用程序特定的语言来编写。
本发明描述了各种示例性实施例。可以对这些示例进行无限扩展和引用。提供这些示例是为了展示被披露技术更广泛的适用性。在不脱离各种实施例的真实精神和范围的情况下,可以对不同实施例进行各种修改,或者进行相应替换。此外,可以进行诸多修改,以适应特定的情形、材料、物质组成、处理过程、对对象的处理行为或步骤,或不同实施例的精神或范围。此外,任何熟悉本领域的技术人员都明白,本发明所描述和展示的每种单独的变化,其离散的组件和特征可以任意分割或者与任何其它几个实施例的特征进行组合,均不脱离各实施例的精神和范围。

Claims (36)

1.一种计算机实现的在虚拟三维空间内操纵虚拟三维对象的方法,所述方法包括:
在显示器上显示三维对象的呈现;
检测定位装置的第一定位;
确定有表面的非半球形轨迹球,其中确定所述非半球形轨迹球包括根据所述第一定位来确定所述非半球形轨迹球的尺寸或形状;
将所述非半球形轨迹球与所述三维对象的呈现相关联;
检测所述定位装置的第二定位;
将所述定位装置的所述第一定位转换到所述非半球形轨迹球所述表面的第一位置;
将所述定位装置的所述第二定位转换到所述非半球形轨迹球所述表面的第二位置;
在所述显示器上显示三维对象呈现的旋转,所述旋转基于所述非半球形轨迹球表面的所述第一位置和所述第二位置之间的行进路径;及
其中所述非半球形轨迹球有一带圆形周边的底部,所述底部有一中心;并且从所述非半球形轨迹球的底部中心到表面测量到的所述非半球形轨迹球的半径各不相同。
2.如权利要求1所述的计算机实现的在虚拟三维空间内操纵虚拟三维对象的方法,进一步包括:
确定第一矢量,所述第一矢量从所述底部中心延伸到所述非半球形轨迹球表面的所述第一位置;
确定第二矢量,所述第二矢量从所述底部中心延伸到所述非半球形轨迹球表面的所述第二位置;
计算第一维度中的第一旋转度数,所述第一旋转度数通过确定第一矢量和第二矢量之间的第一角度来计算;并且
其中,在所述显示器上显示三维对象的呈现的旋转,包括根据所述计算出的第一旋转度数,旋转第一维度中三维对象的呈现。
3.如权利要求2所述的计算机实现的在虚拟三维空间内操纵虚拟三维对象的方法,进一步包括:
计算第二维度中的第二旋转度数,所述第二旋转度数通过确定所述第一矢量和所述第二矢量之间的第二角度来计算;
其中,在所述显示器上显示三维对象的呈现的旋转,包括根据所述计算出的第二旋转度数,旋转第二维度中三维对象的呈现;
计算第三维度中的第三旋转度数,所述第三旋转度数通过确定所述第一矢量和所述第二矢量之间的第三角度来计算;及
其中,在所述显示器上显示三维对象的呈现的旋转,包括根据所述计算出的第三旋转度数,旋转第三维度中三维对象的呈现。
4.如权利要求1所述的计算机实现的在虚拟三维空间内操纵虚拟三维对象的方法,进一步包括:
确定三维空间中的放置位置,所述放置位置基于三维空间中三维对象的呈现的中心;及
根据所述放置位置将所述非半球形轨迹球置于所述三维空间中。
5.如权利要求1所述的计算机实现的在虚拟三维空间内操纵虚拟三维对象的方法,进一步包括:
确定非半球形轨迹球的尺寸,所述尺寸基于所述定位装置的所述第一定位;及
其中,所述非半球形轨迹球的所述底部扩展超出二维空间中三维对象的呈现的投影。
6.如权利要求1所述的计算机实现的在虚拟三维空间内操纵虚拟三维对象的方法,进一步包括:
确定所述非半球形轨迹球的尺寸,所述尺寸基于所述定位装置的所述第一定位;及
其中,所述非半球形轨迹球完全包裹了所述三维对象的呈现。
7.如权利要求1所述的计算机实现的在虚拟三维空间内操纵虚拟三维对象的方法,进一步包括:
在计算机存储器中存储旋转值,其中,所述旋转值基于第一定位和第二定位;及
将所述旋转值与网格数据结构相关联,其中,在显示器上显示三维对象的呈现的旋转使用了所述网格数据结构和旋转值。
8.如权利要求1所述的计算机实现的在虚拟三维空间内操纵虚拟三维对象的方法,其特征在于,检测定位装置包括检测用户与触敏装置的交互。
9.如权利要求1所述的计算机实现的在虚拟三维空间内操纵虚拟三维对象的方法,其特征在于,确定有表面的非半球形轨迹球包括根据第一定位选择非半球形轨迹球的形状。
10.如权利要求1所述的计算机实现的在虚拟三维空间内操纵虚拟三维对象的方法,其特征在于,确定有表面的非半球形轨迹球包括确定在非半球形轨迹球的边缘有个小于90度的坡度的非半球形轨迹球。
11.如权利要求10所述的计算机实现的在虚拟三维空间内操纵虚拟三维对象的方法,其特征在于,确定有表面的非半球形轨迹球包括确定在非半球形轨迹球的边缘有个70到85度的坡度的非半球形轨迹球。
12.如权利要求1所述的计算机实现的在虚拟三维空间内操纵虚拟三维对象的方法,其特征在于,确定有表面的非半球形轨迹球,包括使用方程式distFromCircleCenter=sqrt(x×x+y×y),z=sqrt(1.0-distFromCircleCenter);其中z可被概念化为从显示屏幕正交扩展。
13.一种非临时性计算机可读存储媒介,包括了在一个虚拟三维空间中操纵一个虚拟三维对象的计算机可执行指令,计算机可执行指令包括以下指令:
在显示器上显示三维对象的呈现;
检测定位装置的第一定位;
确定有表面的非半球形轨迹球,其中确定所述非半球形轨迹球包括根据所述第一定位来确定所述非半球形轨迹球的尺寸或形状;
将非半球形轨迹球与三维对象的呈现相关联;
检测所述定位装置的第二定位;
将所述定位装置的第一定位转换到所述非半球形轨迹球表面的第一位置;
将所述定位装置的第二定位转换到所述非半球形轨迹球表面的第二位置;及
在所述显示器上显示三维对象的呈现的旋转,旋转基于非半球形轨迹球表面第一位置和第二位置的行进路径;及
其中所述非半球形轨迹球有一个带圆形周边的底部,底部有一个中心;并且从所述非半球形轨迹球的底部中心到表面测量到的所述非半球形轨迹球的半径各不相同。
14.如权利要求13所述的非临时性计算机可读存储媒介,进一步包括:
确定第一矢量,所述第一矢量从底部中心延伸到所述非半球形轨迹球表面的所述第一位置;
确定第二矢量,所述第二矢量从底部中心延伸到所述非半球形轨迹球表面的所述第二位置;
计算第一维度中的第一旋转度数,所述第一旋转度数通过确定所述第一矢量和所述第二矢量之间的第一角度来计算;及
其中,在显示器上显示三维对象的呈现的旋转,包括根据计算出的第一旋转度数,旋转第一维度中三维对象的呈现。
15.如权利要求14所述的非临时性计算机可读存储媒介,进一步包括:
计算第二维度中的第二旋转度数,所述第二旋转度数通过确定所述第一矢量和所述第二矢量之间的第二角度来计算;
其中,在所述显示器上显示三维对象的呈现的旋转,包括根据所述计算出的第二旋转度数旋转第二维度中三维对象的呈现;
计算第三维度中的第三旋转度数,所述第三旋转度数通过确定所述第一矢量和所述第二矢量之间的第三角度来计算;及
其中,在所述显示器上显示三维对象的呈现的旋转,包括根据所述计算出的第三旋转度数,旋转第三维度中三维对象的呈现。
16.如权利要求13所述的非临时性计算机可读存储媒介,进一步包括:
确定所述三维空间中的放置位置,所述放置位置基于所述三维空间中三维对象的呈现的中心;及
根据所述放置位置将所述非半球形轨迹球置于所述三维空间中。
17.如权利要求13所述的非临时性计算机可读存储媒介,进一步包括:
确定非半球形轨迹球的尺寸,所述尺寸基于所述定位装置的第一定位;及
其中,所述非半球形轨迹球的底部扩展超出二维空间中所述三维对象的呈现的投影。
18.如权利要求13所述的非临时性计算机可读存储媒介,进一步包括:
确定非半球形轨迹球的尺寸,所述尺寸基于所述定位装置的第一定位;及
其中,所述非半球形轨迹球完全包裹了所述三维对象的呈现。
19.如权利要求13所述的非临时性计算机可读存储媒介,进一步包括:
在计算机存储器中存储旋转值,其中,所述旋转值基于所述第一定位和所述第二定位;及
将所述旋转值与网格数据结构相关联,其中,在所述显示器上显示三维对象的呈现的旋转使用了所述网格数据结构和旋转值。
20.如权利要求13所述的非临时性计算机可读存储媒介,其中检测所述定位装置包括检测用户与触敏装置的交互。
21.如权利要求13所述的非临时性计算机可读存储媒介,其中确定有表面的所述非半球形轨迹球包括根据所述第一定位选择所述非半球形轨迹球的形状。
22.如权利要求13所述的非临时性计算机可读存储媒介,其中确定有表面的所述非半球形轨迹球包括确定在所述非半球形轨迹球的边缘有个小于90度的坡度的非半球形轨迹球。
23.如权利要求22所述的非临时性计算机可读存储媒介,其中确定有表面的所述非半球形轨迹球包括确定在所述非半球形轨迹球的边缘有个70到85度的坡度的非半球形轨迹球。
24.如权利要求13所述的非临时性计算机可读存储媒介,其中确定有表面的所述非半球形轨迹球,包括使用方程式distFromCircleCenter=sqrt(x×x+y×y),z=sqrt(1.0-distFromCircleCenter);其中z可被概念化为从显示屏幕正交扩展。
25.用于在虚拟三维空间中操纵虚拟三维对象的装置,所述装置包括:
经配置可存储三维对象的存储器;及
一个或多个计算机处理器,经进一步配置可执行下列操作:
在显示器上显示三维对象的呈现;
检测定位装置的第一定位;
确定有表面的非半球形轨迹球,其中确定所述非半球形轨迹球包括根据所述第一定位来确定所述非半球形轨迹球的尺寸或形状;
将非半球形轨迹球与三维对象的呈现相关联;
检测所述定位装置的第二定位;
将定位装置的第一定位转换到非半球形轨迹球表面的第一位置;
将定位装置的第二定位转换到非半球形轨迹球表面的第二位置;
在显示器上显示三维对象的呈现的旋转,旋转基于非半球形轨迹球表面第一位置和第二位置的行进路径;及
其中所述非半球形轨迹球有一个带圆形周边的底部,底部有一个中心;及从所述非半球形轨迹球的底部中心到表面测量到的所述非半球形轨迹球的半径各不相同。
26.如权利要求25所述的装置,其中包括一个或多个计算机处理器经进一步配置可执行下列操作:
确定第一矢量,所述第一矢量从底部中心延伸到所述非半球形轨迹球表面的所述第一位置;
确定第二矢量,所述第二矢量从底部中心延伸到所述非半球形轨迹球表面的所述第二位置;
计算第一维度中的第一旋转度数,所述第一旋转度数通过确定所述第一矢量和所述第二矢量之间的第一角度来计算;及
其中,在显示器上显示三维对象的呈现的旋转,包括根据所述计算出的第一旋转度数,旋转第一维度中三维对象的呈现。
27.如权利要求26所述的装置,其中包括一个或多个计算机处理器经进一步配置可执行下列操作:
计算第二维度中的第二旋转度数,所述第二旋转度数通过确定所述第一矢量和所述第二矢量之间的第二角度来计算;
其中,在显示器上显示三维对象的呈现的旋转,包括基于所述计算出的第二旋转度数,旋转第二维度中三维对象的呈现;
计算第三维度中的第三旋转度数,所述第三旋转度数通过确定第一矢量和第二矢量之间的第三角度来计算;及
其中,在显示器上显示三维对象的呈现的旋转,包括基于计算出的第三旋转度数,旋转第三维度中三维对象的呈现。
28.如权利要求25所述的装置,其中包括一个或多个计算机处理器经进一步配置可执行下列操作:
确定三维空间中的放置位置,所述放置位置基于三维空间中三维对象的呈现的中心;及
根据所述放置位置将所述非半球形轨迹球置于三维空间中。
29.如权利要求25所述的装置,其中包括一个或多个计算机处理器经进一步配置可执行下列操作:
确定非半球形轨迹球的尺寸,所述尺寸基于所述定位装置的第一定位;及
其中,所述非半球形轨迹球的底部扩展超出二维空间中三维对象的呈现的投影。
30.如权利要求25所述的装置,其中包括一个或多个计算机处理器经进一步配置可执行下列操作:
确定所述非半球形轨迹球的尺寸,所述尺寸基于所述定位装置的所述第一定位;及
其中,所述非半球形轨迹球完全包裹了三维对象的呈现。
31.如权利要求25所述的装置,其中包括一个或多个计算机处理器经进一步配置可执行下列操作:
在计算机存储器中存储旋转值,其中,所述旋转值基于所述第一定位和所述第二定位;及
将所述旋转值与网格数据结构相关联,其中,在所述显示器上显示三维对象的呈现的旋转使用了所述网格数据结构和旋转值。
32.如权利要求25所述的装置,其中检测所述定位装置包括检测用户与触敏装置的交互。
33.如权利要求25所述的装置,其中确定有表面的所述非半球形轨迹球包括根据所述第一定位选择所述非半球形轨迹球的形状。
34.如权利要求25所述的装置,其中确定有表面的所述非半球形轨迹球包括确定在所述非半球形轨迹球的边缘有个小于90度的坡度的非半球形轨迹球。
35.如权利要求34所述的装置,其中确定有表面的非半球形轨迹球包括确定在所述非半球形轨迹球的边缘有个70到85度的坡度的非半球形轨迹球。
36.如权利要求25所述的装置,其中确定有表面的所述非半球形轨迹球,包括使用方程式distFromCircleCenter=sqrt(x×x+y×y),z=sqrt(1.0-distFromCircleCenter);其中z可被概念化为从显示屏幕正交扩展。
CN201410098601.0A 2013-03-15 2014-03-17 平滑操纵三维对象的方法及装置 Active CN104050721B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/841,927 US9082223B2 (en) 2013-03-15 2013-03-15 Smooth manipulation of three-dimensional objects
US13/841,927 2013-03-15

Publications (2)

Publication Number Publication Date
CN104050721A CN104050721A (zh) 2014-09-17
CN104050721B true CN104050721B (zh) 2019-07-30

Family

ID=50382223

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410098601.0A Active CN104050721B (zh) 2013-03-15 2014-03-17 平滑操纵三维对象的方法及装置

Country Status (3)

Country Link
US (1) US9082223B2 (zh)
EP (1) EP2779116B1 (zh)
CN (1) CN104050721B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018118009A1 (en) * 2016-12-19 2018-06-28 Hewlett-Packard Development Company, L.P. Arrangement determination for 3d fabricated parts
EP3340023B1 (en) * 2016-12-22 2020-02-12 Dassault Systèmes Fast manipulation of objects in a three-dimensional scene
CN107492137B (zh) * 2017-08-03 2021-01-26 中国电子科技集团公司第二十八研究所 一种基于三维数字地球的图形动画设计系统及其设计方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012040827A2 (en) * 2010-10-01 2012-04-05 Smart Technologies Ulc Interactive input system having a 3d input space
CN102483843A (zh) * 2009-08-19 2012-05-30 西门子公司 透视图的连续确定

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6295069B1 (en) * 1998-08-18 2001-09-25 Alventive, Inc. Three dimensional computer graphics tool facilitating movement of displayed object
US8130207B2 (en) * 2008-06-18 2012-03-06 Nokia Corporation Apparatus, method and computer program product for manipulating a device using dual side input devices
JP4493730B2 (ja) * 2008-07-31 2010-06-30 国立大学法人広島大学 3次元物体表示制御装置及びその方法
US8745536B1 (en) * 2008-11-25 2014-06-03 Perceptive Pixel Inc. Volumetric data exploration using multi-point input controls
US8462148B1 (en) * 2009-04-01 2013-06-11 Perceptive Pixel Inc. Addressing rotational exhaustion in 3D manipulation
KR101553629B1 (ko) * 2009-05-06 2015-09-17 삼성전자주식회사 인터페이스 제공 방법
US10198854B2 (en) * 2009-08-14 2019-02-05 Microsoft Technology Licensing, Llc Manipulation of 3-dimensional graphical objects for view in a multi-touch display
US8957918B2 (en) * 2009-11-03 2015-02-17 Qualcomm Incorporated Methods for implementing multi-touch gestures on a single-touch touch surface
US8860726B2 (en) * 2011-04-12 2014-10-14 Autodesk, Inc. Transform manipulator control
JP5694867B2 (ja) * 2011-06-27 2015-04-01 京セラ株式会社 携帯端末装置、プログラムおよび表示制御方法
US9851889B2 (en) * 2011-09-16 2017-12-26 Kt Corporation Apparatus and method for rotating a displayed image by using multi-point touch inputs
JP5790380B2 (ja) * 2011-09-28 2015-10-07 株式会社Jvcケンウッド 電子機器、電子機器の制御方法、及び、プログラム
WO2013051049A1 (ja) * 2011-10-03 2013-04-11 古野電気株式会社 タッチパネルを有する装置、レーダ装置、プロッタ装置、舶用ネットワークシステム、視点変更方法及び視点変更プログラム
US9007323B2 (en) * 2012-02-03 2015-04-14 Panasonic Intellectual Property Management Co., Ltd. Haptic feedback device, method for driving haptic feedback device, and drive program
US20130222363A1 (en) * 2012-02-23 2013-08-29 Htc Corporation Stereoscopic imaging system and method thereof
US9165402B2 (en) * 2012-11-13 2015-10-20 Yousef Yacoub Eid Alhashash 3D modeling user interface method

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102483843A (zh) * 2009-08-19 2012-05-30 西门子公司 透视图的连续确定
WO2012040827A2 (en) * 2010-10-01 2012-04-05 Smart Technologies Ulc Interactive input system having a 3d input space

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Extending the Virtual Trackball Metaphor to Rear Touch Input;Sven Kratz 等;《3D User Interfaces (3DUI), 2010 IEEE Symposium on》;20100429;第111-112页

Also Published As

Publication number Publication date
EP2779116B1 (en) 2021-05-05
EP2779116A3 (en) 2016-02-17
US20140267083A1 (en) 2014-09-18
CN104050721A (zh) 2014-09-17
EP2779116A2 (en) 2014-09-17
US9082223B2 (en) 2015-07-14

Similar Documents

Publication Publication Date Title
US10852913B2 (en) Remote hover touch system and method
US10417827B2 (en) Syndication of direct and indirect interactions in a computer-mediated reality environment
US9436369B2 (en) Touch interface for precise rotation of an object
Kopper et al. Rapid and accurate 3D selection by progressive refinement
US9632677B2 (en) System and method for navigating a 3-D environment using a multi-input interface
Martinet et al. The design and evaluation of 3d positioning techniques for multi-touch displays
Forlines et al. Hybridpointing: fluid switching between absolute and relative pointing with a direct input device
Seo et al. Direct hand touchable interactions in augmented reality environments for natural and intuitive user experiences
CN104471518B (zh) 用于三维交互的多点触摸手势识别的消歧
Bade et al. Usability comparison of mouse-based interaction techniques for predictable 3d rotation
Telkenaroglu et al. Dual-finger 3d interaction techniques for mobile devices
Pietroszek et al. Smartcasting: a discount 3D interaction technique for public displays
Debarba et al. Lop-cursor: Fast and precise interaction with tiled displays using one hand and levels of precision
KR101735442B1 (ko) 표시장치에서 객체의 오리엔테이션을 조작하기 위한 장치 및 방법
CN108595010B (zh) 虚拟现实中虚拟物体的交互方法及装置
US20220066620A1 (en) Transitions between states in a hybrid virtual reality desktop computing environment
CN104050721B (zh) 平滑操纵三维对象的方法及装置
Chakraborty et al. Captive: a cube with augmented physical tools
US9483873B2 (en) Easy selection threshold
Hachet et al. Navidget for 3d interaction: Camera positioning and further uses
JP7438368B2 (ja) オブジェクトの相互作用的三次元表現
US10379639B2 (en) Single-hand, full-screen interaction on a mobile device
US11398082B2 (en) Affine transformations of 3D elements in a virtual environment using a 6DOF input device
US20140337802A1 (en) Intuitive gesture control
US20150145773A1 (en) Behind-display user interface

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