用于旋转的基于手势的操纵器的制作方法

文档序号:18212576发布日期:2019-07-19 22:25阅读:166来源:国知局
用于旋转的基于手势的操纵器的制作方法

本发明涉及一种用于操纵显示在计算机显示器上的三维场景中的对象的计算机实现的方法。它涉及计算机图形学、创作、计算机辅助设计(cad)、计算机辅助工程(cae)和计算机辅助制造(cam)领域,并适用于必须在三维场景内操纵数字建模对象的所有情况。



背景技术:

cad应用程序(例如由dassaultsystèmes以商标catia提供的应用程序)允许用户构建和操纵对象或对象组件的复杂三维或3d模型。当使用cad应用程序时,通常希望变换(例如,旋转、平移)对象或对象的子元素。在cad应用程序中,已知使用具有三个轴并且表示通过其操纵可用的不同3d变换的图形操纵器。图形操纵器可以以多面工具的形式在对象显示窗口的场景中表示,其中,工具的每个面可以表示不同的功能(例如旋转、平移)。该工具体现了多个功能的紧凑表示,这些功能可以与将在其上执行功能的对象相关联。该工具的每个功能都旨在实现对工具浸入其中的场景的一个或多个对象的更改。本发明更具体地涉及工具的旋转功能,其被称为旋转操纵器。

图1至3示出了根据背景技术的第一解决方案的旋转操纵。旋转操纵器rm在场景中的浸入允许旋转操纵器rm在许多方面表现得像场景的其他对象。例如,当通过视图的旋转运动改变场景的视图时,浸入场景中的旋转操纵器rm的视图将相应地改变。关于旋转操纵器rm的更多细节,以及更一般地关于前述多面工具的更多细节可以在文献us7823085b2中找到。图1示出了旋转操纵器rm,其包括中心ce,三个轴x、y和z,以及由三个弧xy、yz和zx限定的三个旋转平面,用于分别围绕z轴、围绕x轴并围绕y轴旋转。旋转操纵器rm通常定位并固定在对象ob的重心处以旋转。为了清楚起见,在图2中,旋转操纵器rm已经显示在边缘ed上。在图3中,用户将光标c移动到旋转操纵器rm上方以选择所需的旋转(弧xy用于围绕z轴旋转,弧yz用于围绕x轴旋转,并且弧zx用于围绕y轴旋转),最后在移动光标时按下鼠标并保持它(即,不释放)。光标的移动使得对象在由弧指定的方向上旋转,并且旋转根据光标的位移确定的角度。这种背景技术的解决方案包含几个限制,所有这些限制都与旋转操纵器固定在场景内的3d点上有关。光标确实必须刚好在对象ob附近或上旋转。因此,如果光标恰好在用于另一次交互的旋转操纵之前处于场景的另一部分中,则用户必须将光标移回到旋转操纵器rm以便旋转对象ob。这可能导致大量光标位移。由于光标接近对象ob,旋转操纵还可能迫使用户将光标定位在对象ob上,部分或甚至完全将其遮掩。在触摸模式下更加麻烦,因为用户的手阻挡了对象ob的正确显现,从而使旋转难以控制。

图4和5示出了根据背景技术的第二解决方案的场景中的旋转操纵。在该解决方案中,用户可以从场景中的任何地方执行旋转,不一定靠近对象ob,从而避免对象ob被光标或在触摸模式下被用户的手指遮掩。图4示出了该第二解决方案的场景。将场景分成三个旋转区域(ra1、ra2、ra3),三个部分的交点是旋转操纵器rm的中心1。旋转轴的选择由光标在场景中的位置确定(第一旋转区域ra1用于围绕z轴旋转,第二旋转区域ra2用于围绕x轴旋转,以及第三旋转区域ra3用于围绕y轴旋转)。然后,用户围绕所选择的旋转轴执行旋转操纵,如图5所示。光标从初始点ip移动到最终点fp。背景技术的第二种解决方案包含几个限制。首先,如果用户想要进行多次旋转操纵,他必须从一个部分到另一个部分探索场景以找到所需的旋转区域,这意味着大量鼠标位移以到达所需的旋转区域。其次,用户必须在场景的一侧对物体ob进行不断的观察,同时在场景的另一侧移动光标c,这对他来说可能是不舒服的。另一个限制源于如果旋转操纵器rm不可见则不可能执行旋转操纵,例如,如果用户放大或平移了视点。最终做出大量光标位移使对象ob从初始点ip旋转到最终点fp。



技术实现要素:

本发明的目的是提供一种用于在计算机辅助设计系统的3d场景中操纵3d对象的计算机实现的方法,其贯穿操纵的不同步骤减少光标位移,这避免了对要操纵的对象的任何阻碍,并为用户提供视觉上的舒适感。

根据本发明的一个方面,提出了一种用于在计算机辅助设计系统的3d场景中操纵3d对象的计算机实现的方法,该方法包括以下步骤:

a)在屏幕上的3d场景中显示具有旋转中心的3d对象;

b)在3d场景中显示具有彼此垂直的三个区域的旋转操纵器,旋转操纵器在屏幕上跟随光标,每个区域对应于旋转平面;

c)通过在所述屏幕上将所述旋转操纵器的位置锁定在初始按压点上来激活旋转操纵器;

d)通过将光标位移到与所述平面相对应的区域来选择一个旋转平面;以及

e)根据光标在屏幕上的位移执行旋转操纵。

根据本发明的特定实施例:

-可以响应于在光标位移期间控制光标的保持的用户输入而执行步骤d)和e);

-步骤d)可以包括以下子步骤:

d1)将光标引导到所述区域;以及

d2)确定光标是否到达特定于所述区域的验证阈值。

-验证阈值可以由曲线部分限定,所述曲线部分的每个点具有相对于按压点的预定义像素距离。

-曲线部分可以是所对应的区域的外部轮廓。

-引导光标的子步骤d1)可以包括提供光标所在区域的视觉反馈。

-引导光标的子步骤d1)可以包括提供光标所不在的区域的视觉反馈。

-选择一个旋转平面的步骤d)可以包括子步骤d3),该子步骤d3)提供超过所对应的区域的验证阈值的视觉反馈。

-视觉反馈可以是区域的尺寸和/或颜色和/或透明度的变化。

-步骤e)可以包括以下子步骤:

e1)确定参考向量,其方向由初始按压点和验证点定义,所述验证点对应于光标到达验证阈值时光标的位置;

e2)确定当前向量,其方向由初始按压点和当前点定义,所述当前点对应于光标一旦到达验证阈值光标的位置;

e3)根据参考向量和当前向量之间的角度执行旋转操纵。

本发明的另一个目的是一种存储在非暂时性计算机可读数据储存介质上的计算机程序产品,包括计算机可执行指令,以使计算机系统执行如上定义的方法。

本发明的另一个目的是一种包含计算机可执行指令的非暂时性计算机可读数据储存介质,该计算机可执行指令使计算机系统执行如上定义的方法。

本发明的另一个目的是一种计算机系统,包括耦合到存储器和图形用户界面的处理器,该存储器存储计算机可执行指令以使计算机系统执行如上定义的方法。

附图说明

借助于通过非限制性示例描述并通过附图示出的一些实施例,将更好地理解本发明,其中:

-图1至图5示出了根据现有技术的旋转操纵场景的示例;

-图6至图11示出了根据本发明的具有指示设备的相关联状态的旋转操纵器的示例;

-图12和13示出了根据本发明的方法的不同步骤;

-图14和15示出了适合于执行根据本发明的不同实施例的方法的相应计算机系统的方框图。

具体实施方式

在下文中,“三维”(或“3d”)对象将是计算机系统中允许三维(3d)图形表示的物理对象的数字表示。3d表示允许从所有角度观察部件。例如,当3d表示时,3d对象可以被处理并围绕其任何轴,或围绕其上显示表示的屏幕中的任何轴旋转。

“三维”(或“3d”)场景是虚拟环境,其由布置在三维空间中的多个3d对象构成。

在下文中,“选择上下文”指的是已经预先选择的3d对象(或多个3d对象)的处理。这意味着可以在屏幕上显示3d对象,在旋转操纵开始之前释放鼠标的按钮。

在下文中,“触摸模式”指的是对触敏表面上的光标的控制,触敏表面可以是与屏幕分离的触摸板,或者是包括触摸板和显示功能的触摸屏。用户输入可以通过在触敏表面上保持他的手指或触控笔来提供。

图6示出了处于初始状态的旋转操纵器rm。它由三个区域(ra1、ra2、ra3)组成,它们可以有不同的颜色,以便区分彼此每个区域。每个区域包括一个外部轮廓(ext1、ext2、ext3)和两个内部轮廓(int12、int13、int23)。每个内部轮廓都是一个段,并表示要操纵的对象的旋转轴。每个外部轮廓可以是弧形、曲线部分、段,或者可以具有任何其他形状。三个内部轮廓在交点in处相交。与用户的指示设备的移动相呼应的光标可以表示为箭头。箭头的末端位于交点in处。必须在选择上下文中考虑本发明。因此,每当光标位于3d场景中时,旋转操纵器rm就可以附着到光标,从而跟随它。图5还示出了在触发旋转操纵之前指示设备的状态。在由于指示设备在3d场景中拖动旋转操纵器时,不需要用户输入。如果指示设备是鼠标,则用户可以在不按下鼠标的情况下移动它,因此指示设备处于“释放状态”re。在触摸模式中,由于在用于拖动的手指(或触控笔)的接触和用于选择的手指的接触之间没有区别,手指的位移产生旋转操纵器rm随光标的拖动,没有旋转操纵的任何触发。

图7示出了当接收到诸如鼠标按压pr的用户输入时的旋转操纵器rm。在检测到鼠标按压时,激活旋转操纵器rm,并且将其位置锁定直到旋转操纵结束。然后将光标c指向的交点in视为初始按压点pp。在触摸模式中,用户可以在3d场景中拖动旋转操纵器rm,然后在屏幕上释放接触并触摸屏幕上的按钮以锁定旋转操纵器的位置。

图8示出了激活后的旋转操纵器rm。一旦锁定了旋转操纵器rm的位置,则鼠标的位移就产生相对于固定旋转操纵器rm的光标拖动。用户可以在仍然按住鼠标的同时将光标引导到区域(ra1、ra2、ra3)之一。在触摸模式中,用户可以在将他的手指接触敏感屏幕和/或触摸板上的同时将光标引导到区域(ra1、ra2、ra3)之一。光标当前所在的区域可以通过视觉反馈突出显示,以便如果用户验证突出显示的旋转平面,则该用户可以清楚地看到将选择哪个旋转平面。视觉反馈可以是例如光标所不在的区域(图8中的区域ra1和ra3)的透明度的上升,和/或光标所在区域(图8中的区域ra2)的颜色变化。可以屏蔽区域中光标的路线。可替换地,可以显示由初始按压点pp和光标位置界定的段se。然后,根据光标在该区域中的位置,该段的方向及其长度可以变化。

图9示出了光标在旋转操纵器rm中的替代位置。实际上,用户可以在按下鼠标或接触触摸屏的同时拖动光标,并且切换到另一个区域,例如到区域ra1。因此,如果用户从一个区域切换到另一个区域,只要没有选择旋转平面,则区域的视觉反馈可以改变。

图10示出了旋转平面的选择。根据第一实施例,如果光标到达由曲线部分定义的验证阈值,则在旋转操纵器rm上生成验证点vp。曲线部分的每个点具有相对于按压点pp的预定义像素距离。像素距离可以以像素或长度单位表示,例如毫米。验证点vp对应于光标到达对应于区域的曲线部分时的位置。因此,到达区域的曲线部分激活旋转操纵。围绕轴线进行旋转,该轴线在三维上与对应于曲线部分的旋转平面正交。根据实施例,每个曲线部分是其对应区域的外部轮廓(分别是对于区域ra1、ra2和ra3的ext1、ext2和ext3)。可替换地,每个曲线部分可以由预定半径的圆的轮廓限定,并且其中心是初始按压点pp。预定义半径可以以像素或长度单位表示,例如毫米。一旦激活旋转操纵器rm,就可以显示圆。在到达验证阈值之后可以屏蔽它。圆可以分成三个弧,每个弧对应于一个旋转平面。每当光标到达圆的一个弧时,就选择对应于该弧的旋转平面。

图11示出了一旦激活旋转平面在旋转操纵期间的旋转操纵器rm。生成并且可以显示参考向量rv。参考向量rv的原点是初始按压点pp。构造参考向量rv以便通过验证点pv。参考向量rv的范数是任意的。例如,它可以是初始按压点pp和验证点pv之间的距离,或预定距离。一旦激活了旋转平面,就显示当前点cp,其对应于光标的位置。然后在3d场景中拖动当前点cp,用户仍然保持输入(鼠标按压或在触摸模式下手指接触)。生成当前向量cv,其原点是初始按压点pp。它的范数是初始按压点pp和当前点cp之间的距离。从参考向量rv和当前向量cv之间的角度导出旋转角度。一旦激活了旋转操纵,就可以提供旋转角度的数值。如果3d对象顺时针旋转,则旋转角度的数值可以在前面带负号。旋转角度可以以度或弧度定义。例如,旋转角度可以位于当前点cp附近。根据实施例,即使用户继续拖动光标,也可以在360°旋转之后停止3d对象的旋转。因此,防止用户执行几次完全旋转。由此避免了在几次完全旋转之后返回到3d对象的先前位置的麻烦操作。

可以根据旋转角度执行3d对象围绕其重心的旋转操纵。根据第一实施例,在拖动光标期间,可以在运行中执行3d对象的旋转。可替换地,在旋转操纵结束时,一旦用户释放按钮(或触摸模式中释放接触),就可以根据一个角度执行旋转。用户可以拖动光标以修改当前向量cv的范数,从而产生杠杆效应。因此,光标离初始按压点越远,用户控制旋转角度就越准确。

一旦用户释放了鼠标的按钮,或者一旦手指和触摸屏之间不再接触,则旋转操纵器rm返回到初始状态,如图6所示。

图12是根据本发明实施例的方法的流程图,其步骤对应于已经结合图6-11讨论的操作。在图12的流程图中:

步骤a)包括在屏幕上的3d场景中显示具有旋转中心的3d对象。

步骤b)包括在3d场景中显示具有彼此垂直的三个区域ra1、ra2、ra3的旋转操纵器rm,旋转操纵器rm在屏幕上跟随光标c,每个区域ra1、ra2、ra3对应于旋转平面。

步骤c)是通过在屏幕上在初始按压点pp上将所述旋转操纵器的位置锁定来激活旋转操纵器。

步骤d)是通过将光标c位移到与所述平面相对应的区域ra1、ra2、ra3来选择一个旋转平面。

步骤e)包括根据光标c在屏幕上的位移执行旋转操纵。

图13是选择一个旋转平面的步骤的流程图。在图13的流程图中:

步骤d1)包括将光标c引导到区域ra1、ra2、ra3;

步骤d2)包括确定光标c是否到达特定于区域a1、a2、a3的验证阈值。

步骤d3)是提供超过对应区域的验证阈值的视觉反馈。

本发明的方法通过从3d场景中的任何地方执行旋转来优化鼠标或手指的位移。它还可以防止用户遮掩他旋转的对象。它最终减少了控制旋转角度所必需的鼠标或(手指)位移,并允许准确地播放。

本发明的方法可以由适当编程的通用计算机或计算机系统执行,可以包括计算机网络,以非易失性形式将合适的程序存储在计算机可读介质(例如硬盘、固态盘或cd-rom)上,并使用其微处理器和存储器执行所述程序。

参考图14说明适合于执行根据本发明示例性实施例的方法的计算机。在图14中,计算机包括中央处理单元(cpu)p,其在运行可执行程序时执行上述方法步骤,即计算机可读指令集,存储在诸如ramm1或romm2或硬盘驱动器(hdd)m3、dvd/cd驱动器m4的存储设备中,或远程存储。此外,定义三维对象的一个或多个计算机文件也可以存储在存储设备m1至m4中的一个或多个上,或者远程存储。

要求保护的发明不受存储本发明过程的计算机可读指令的计算机可读介质的形式的限制。例如,指令和文件可以存储在cd、dvd、flash存储器、ram、rom、prom、eprom、eeprom、硬盘、或计算机与之通信的任何其他信息处理设备(例如服务器或计算机)上。程序可以存储在同一存储设备上或不同的存储设备上。

此外,适合于执行本发明方法的计算机程序可以作为实用应用程序、后台守护程序或操作系统的组件或其组合来提供,与cpup和诸如microsoftvista、microsoftwindows8、unix、solaris、linux、applemac-os和本领域技术人员已知的其他系统的操作系统一起执行。

cpup可以是来自intelofamerica的xenon处理器或来自amdofamerica的opteron处理器,或者可以是其他处理器类型,例如来自freescalecorporationofamerica的freescalecoldfire、imx或arm处理器。可替换地,cpu可以是诸如来自intelcorporationofamerica的core2duo的处理器,或者可以在fpga、asic、pld上或使用分立逻辑电路实现,如本领域普通技术人员将认识到的。此外,cpu可以实现为协同工作以执行上述本发明过程的计算机可读指令的多个处理器。

图14中的计算机还包括网络接口ni,例如来自intelcorporationofamerica的intelethernetpro网络接口卡,用于与诸如局域网(lan)、广域网(wan)、互联网等的网络接口连接。该计算机还包括显示控制器dc,例如来自nvidiacorporationofamerica的nvidiageforcegtx图形适配器,用于与显示器dy(例如hewlettpackardhpl2445wlcd监视器)接口连接。通用i/o接口if与键盘kb和指示设备pd(例如滚动球、鼠标、触摸板等)接口连接。显示器、键盘、用于触摸模式的敏感表面和指示设备与显示控制器和i/o接口一起形成图形用户界面,其由用户使用来提供输入命令(例如移动指针),并由计算机使用以显示三维场景和图形工具。

磁盘控制器dkc将hddm3和dvd/cdm4与通信总线cbs连接,通信总线cbs可以是isa、eisa、vesa、pci或类似的,用于互连计算机的所有部件。

为简洁起见,本文省略对显示器、键盘、指示设备以及显示控制器、磁盘控制器、网络接口和i/o接口的一般特征和功能的描述,因为这些特征是已知的。

图15是适合于执行根据本发明的不同示例性实施例的方法的计算机系统的方框图。

在图15中,可执行程序exp和定义三维对象的计算机文件存储在连接到服务器sc的存储设备上。除了在服务器中缺少显示控制器、敏感表面、显示器、键盘和/或指示设备之外,存储设备和服务器的整体架构可以与上面参考图14所讨论的相同。

然后,服务器sc经由网络nw连接到管理员系统ads和终端用户计算机euc。

管理员系统和终端用户计算机的总体架构可以与上面参考图14所讨论的相同,除了管理员系统和终端用户计算机的存储设备不存储可执行程序exp和/或定义三维对象的计算机文件。然而,终端用户计算机确实存储了设计用于与服务器的可执行程序协作的客户端程序,如下面将讨论的。

可以理解,网络nw可以是公共网络(例如互联网)、或专用网络(例如lan或wan网络)、或其任何组合,并且还可以包括pstn或isdn子网络。网络nw也可以是有线的(例如以太网),或者可以是无线的,例如包括edge、3g和4g无线蜂窝系统的蜂窝网络。无线网络还可以是wi-fi、蓝牙或已知的任何其他无线通信形式。因此,网络nw仅仅是示例性的,并决不限制本发明的范围。

存储在终端用户计算机的存储设备中并由后者的cpu执行的客户端程序经由网络nw访问由服务器sc存储并包含定义三维对象的文件的数据库db。服务器执行如上所述的处理,并且再次使用网络nw向终端用户计算机发送与包括3d对象的场景的期望表示相对应的图像文件。

尽管仅示出了一个管理员系统ads和一个终端用户系统eux,但系统可以无限制地支持任意数量的管理员系统和/或终端用户系统。类似地,在不脱离本发明的范围的情况下,也可以在系统中实现多个服务器。

本文描述的任何方法步骤应被理解为表示包括用于实现过程中的特定逻辑功能或步骤的一个或多个可执行指令的代码的模块、段或部分,并且替代实施方式包括在本发明的示例性实施例的范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1