一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

用于设计三维场景中的三维网格的方法与流程

2022-02-20 21:07:41 来源:中国专利 TAG:


1.本发明涉及计算机程序和系统的领域,并且更具体地涉及用于设计三维(3d)场景中的3d网格的方法、系统和程序。


背景技术:

2.在市场上提供有多个系统和程序用于对象的设计、工程和制造。cad是计算机辅助设计的缩写,例如,它涉及用于设计对象的软件解决方案。cae是计算机辅助工程的缩写,例如,它涉及用于仿真未来产品的物理行为的软件解决方案。cam是计算机辅助制造的缩写,例如,它涉及用于定义制造过程和操作的软件解决方案。在这样的计算机辅助设计系统中,图形用户界面关于该技术的效率起着重要的作用。这些技术可以被嵌入在产品生命周期管理(plm)系统内。plm指代帮助公司共享产品数据、应用公共过程并且利用协作知识贯穿扩展企业的概念进行从产品的概念到生命结束的产品开发的商业策略。由达索系统(注册商标为catia、enovia和delmia)提供的plm解决方案提供了组织产品工程知识的工程中心、管理制造工程知识的制造中心以及使能企业到工程中心和制造中心二者的集成和连接的企业中心。同时地,系统传递链接产品、过程、资源以使能驱动最优产品定义、制造准备、生产和服务的动态的基于知识的产品创建和决策支撑。
3.本发明涉及cad软件。更具体地说,它涉及允许用户操控由诸如3d场景中的顶点、边和面的一组几何元素代表的3d对象的任意cad软件。该组几何元素形成3d对象的3d网格。
4.用户可以通过操控代表3d对象的3d网格来修改3d对象的形状。图4中说明了3d对象的3d网格的示例。在这一示例中,3d对象是球形310,并且代表该球形对象的3d网格314是立方体314。图7说明了3d网格的另一示例,其中3d网格包括与形成3d对象400的形状的边404连接的顶点402。通过修改3d网格的顶点的位置,用户能够修改3d网格代表的对象的形状。
5.向用户提供工具用于操控代表3d对象的3d网格的顶点、边、面。最常用的工具之一允许使用被通常称为“机器人”的操控器沿着特定轴来操控3d对象或者其部分。图3到图6中说明了“机器人”操控器的示例。这一“机器人”操控器300是代表具有3个轴(x、y、z)的轴系统302的操控器并且用户能够使用其3个轴中的任意一个以沿着由轴系统定义的方向来操控对象。机器人的轴系统通常缺省地使用3d场景的全局轴系统312,例如3d对象或者被修改的包括3d对象的产品的全局轴系统。“机器人”操控器可以被远程操控用于操控对象310,如在图4中说明的。可选地,“机器人”操控器可以被提供给选定的顶点,如在图5中说明的。通过选择网格314的顶点322,用户能够与“机器人”320的三个轴中的一个进行用户交互以便沿着选定的轴的方向移位顶点322,从而修改3d对象310的形状。在图5的示例中,“机器人”操控器320被提供到顶点322,并且用户与机器人的z轴330交互用于沿着z轴330的方向移位选定的顶点322,如在移位之后在图6中说明的。
6.顶点也可以使用通常被称为“uv”操控器的操控器沿着其入射网格线的方向(被称为“uv”方向)被移位。图8中说明了uv操控器的示例,其中用户能够沿着其入射网格线412移
动选定的顶点410。入射网格线是给定的选定顶点的入射边。由入射边定义的方向被称为顶点的uv方向。用户能够与顶点的uv方向之一进行用户交互,用于沿着uv方向移位选定的顶点。操控器414因而由顶点的每一个入射边的方向(即,每一个uv方向)体现。图9中说明了这样的操控器的另一示例,用于图4到图6的3d网格314的选定顶点322。在这一示例中,操控器420包括由每一个入射边定义的三个uv方向。
7.用于设计3d网格的这些解决方案的主要缺陷是生产率。实际上,用户永久地需要在用于设计对象的不同工具之间切换。这样的情况通常通过创建用于每一个工具的模型来解决,每一个工具能够被接通或者关断用于激活或者去激活每一个工具,例如,使用指向设备或者键盘快捷键。因而,用户经常需要在可用的工具之间手动切换,这不符合人体工程学。例如,它会在对象的每一个操控之前和/或之后引发用于接通和关断模式的指向设备的许多移动,或者当定义键盘快捷键时引发这样的键盘快捷键的许多使用。此外,在不同模式之间切换倾向于引起操控错误,因为用户会被切换干扰并且因而当期望的模式未被激活时会错误地使用一种模式而不是另一种模式。
8.而且,如果几种模式被同时激活,则对于用户会难于正确地执行网格操控。例如,如果“机器人”操控器和uv操控模式的操控器一起被激活,则用户会难于选择操控的一个方向,因为“机器人”的轴系统和uv方向将被显示在相同的位置中,这将使得难于选择由“机器人”和“uv”操控器提供的轴当中的一个轴。图10中说明了这一问题情形。如果第一“机器人”操控器500的轴与第二操控器502的uv方向叠置或者紧密接近,则用户难于选取他/她想要操控的轴或者nuv方向。
9.此外,一直在“机器人”和“uv”模式之间切换是真实生产率问题,因为在创建过程中,用户需要这些工具。在“机器人”和“uv”模式之间切换还引起人体工程学问题,因为用于选择另一模式的手的频繁重复运动会导致肌肉疼痛和/或紧张。
10.在这一上下文内,仍然需要改善用于在第一操控器和第二操控器之间来回切换的用户交互。


技术实现要素:

11.因此,提供一种用于设计三维(3d)场景中的3d网格的计算机实现的方法。该方法包括在3d场景中显示3d网格。该方法包括提供全局取向。该方法包括利用指向设备选择3d网格的一个或多个顶点,从而形成一个或多个顶点的集合。该方法包括计算围绕该集合的每一个顶点的至少一个选取区域。该方法包括提供用于沿着一个或多个nuv方向控制该集合的每一个顶点的移位的第一操控器。该方法包括确定指向设置是否在选取区域内被操控。如果为否,则该方法包括提供用于沿着由全局取向定义的一个或多个方向控制该集合的一个或多个顶点的移位的第二操控器。
12.该方法可以包括下面中的一个或多个:
[0013]-在提供所述第二操控器之后,确定所述指向设备再次位于所述至少一个选取区域内并且提供所述第一操控器;
[0014]-提供所述第一操控器可以进一步包括撤回所述第二操控器;
[0015]-提供所述第二操控器可以进一步包括撤回所述第一操控器;
[0016]-提供所述第一操控器可以进一步包括确定最接近所述指向设备的所述集合的顶
点并且向确定的顶点提供所述第一操控器;
[0017]-在所述集合的所述一个或多个顶点的每一次移位期间或者之后,重复计算所述至少一个选取区域;
[0018]-利用指向设备选择所述3d网格的一个或多个顶点可以通过下面执行:在所述网格的至少一个顶点上与所述指向设备进行用户交互,从而选择所述网格的至少一个顶点;和/或在网格的至少一个边上与所述指向设备进行用户交互,从而选择所述至少一个边的两个顶点;和/或在网格的至少一个面上与所述指向设备进行用户交互,从而选择属于所述至少一个面的顶点;
[0019]-所述第一操控器可以包括代表所述nuv方向之一的至少一个图形元素。所述至少一个图形元素可以控制所述集合的至少一个顶点沿着由所述至少一个图形元素代表的nuv方向的移位。所述方法可以包括,在提供所述第一操控器之后,与所述第一操控器的所述至少一个图形元素进行用户交互,响应于所述指向设备的移动,沿着所述nuv方向移位所述集合的所述至少一个顶点。计算的至少一个选取区域可以在所述移动期间被去激活。所述方法可以进一步包括,对于所述集合中不具有与由所述至少一个图形元素代表的nuv方向相同的nuv方向的每一个顶点,沿着其nuv方向之一移位所述顶点,所述nuv方向之一最接近由所述至少一个图形元素代表的nuv方向;
[0020]-基于所述集合的所述至少一个顶点沿着响应于所述指向设备的移动而移位的所述nuv方向的新位置来更新所述第一操控器的位置;
[0021]-对于所述集合中不具有与由所述至少一个图形元素代表的nuv方向相同的nuv方向的每一个顶点,显示代表所述顶点的如下nuv方向的图形元素:该nuv方向最接近由所述第一操控器的所述至少一个图形元素代表的nuv方向;
[0022]-所述第二操控器可以是机器人;和/或
[0023]-计算所述至少一个选取区域可以包括计算针对所述集合的每一个顶点的一个选取区域,和/或其中,当所述指向设备是二维(2d)指向设备时,计算的至少一个选取区域可以是诸如圆形的界定表面,或者当所述指向设备是3d指向设备时则可以为诸如球形的体积。
[0024]
进一步提供一种包括用于执行所述方法的指令的计算机程序。
[0025]
进一步提供一种具有记录在其上的计算机程序的计算机可读存储介质。
[0026]
进一步提供一种包括耦合到存储器的处理器和显示器和指向设备的系统,所述存储器具有记录在其上的计算机程序。
附图说明
[0027]
现在将通过非限制性示例的方式并且参照附图来描述本发明的实施例,在附图中:
[0028]
图1示出了所述方法的示例的流程图;
[0029]
图2示出了所述系统的图形用户界面的示例;
[0030]
图3到图6示出了“机器人”操控器的示例;
[0031]
图7示出了顶点的选择的示例;
[0032]
图8示出了用于沿着nuv方向控制所述集合的每一个顶点的移位的第一操控器的
示例;
[0033]
图9示出了提供到图5和图6中的相同3d网格的顶点的图8的第一操控器的示例;
[0034]
图10示出了一起提供的图8的第一操控器和图3的“机器人”操控器的示例;
[0035]
图11和图12示出了当指向设备是2d或者3d指向设备时选取区域的示例;
[0036]
图13到图16示出了响应于指向设备的移动而沿着nuv方向移位顶点的示例;
[0037]
图17和图18示出了如果指向设备没有被维持在选取区域内则提供第二操控器并且撤回第一操控器的示例;
[0038]
图19示出了在提供第二操控器之后当指向设备再次位于选取区域内时提供第一操控器并且撤回第二操控器的示例;
[0039]
图20示出了使用指向设备选择3d网格的第一顶点和第二顶点的示例;
[0040]
图21示出了沿着最接近第一顶点沿着其移位的nuv方向的其nuv方向之一移位第二顶点的示例;
[0041]
图22和图23示出了如果指向设备没有被维持在针对图20的选定顶点计算的选取区域内则提供第二操控器并且撤回第一操控器的示例;
[0042]
图24到图27说明了用于设计代表汽车主体的3d网格的方法的示例;并且
[0043]
图28示出了所述系统的示例。
具体实施方式
[0044]
参照图1的流程图,提出了用于设计三维(3d)场景中的3d网格的计算机实现的方法。3d网格可以代表用户希望修改的3d对象。3d网格可以是任意类型的网格,例如多边形网格或者基础网格。该方法包括显示s103d网格。3d网格可以例如被显示在图形用户界面上。该方法包括s10提供全局取向。全局取向可以是使3d网格形成方向的任意类型的轴系统。例如,全局取向可以是3d网格的全局取向,该网格代表的3d对象的全局取向,或者包括由3d网格代表的3d对象的3d场景的全局取向。全局取向也可以是用户定义的,例如,用户可以选择全局取向的每一个轴。全局取向也可以被显示在图形用户界面上。显示3d网格和提供全局取向的步骤可以被同时执行,或者在提供之前执行显示或者在显示之前执行提供。
[0045]
该方法包括利用指向设备选择s20 3d网格的一个或多个顶点,从而形成一个或多个顶点的集合。选择一个或多个顶点可以基于用户交互来执行,例如通过将指向设备定位在每一个顶点上或者使用拖放选择方法选择几个顶点。指向设备是允许用户向计算机输入空间(即,连续和多维)数据的输入接口(特别是人类接口设备)。诸如cad系统中的那些的图形用户界面(gui)允许用户通过在物理桌面的表面上移动手持鼠标或者类似设备并且激活鼠标上的开关来使用用户的物理姿势来控制计算机并且向计算机提供数据。可选地,gui允许用户通过在触敏屏幕的表面上移动一个或多个手指或类似设备(例如探针)并且在触敏屏幕上执行姿势来使用用户的物理姿势来控制计算机或者向计算机提供数据。可选地,虚拟现实(vr)中的gui允许用户通过移动诸如vr环境中的3d鼠标、有线手套、运动控制器、光学跟踪传感器的输入设备并且在vr环境中执行姿势来使用用户的物理姿势来控制计算机和向计算机提供数据。指向设备的移动可以通过指针(或者光标)的移动以及其它视觉改变而被示出在屏幕上。常用的姿势是点击和拖放。尽管目前最常见的指向设备是鼠标,但是开发了许多设备用于触敏屏幕(所谓的姿势)和vr环境。然而,术语“鼠标”通常用作移动光标
的设备的隐喻。例如,指向设备可以是任意的2d指向设备(鼠标、触摸或者探针)或者任意的3d指向设备(例如,虚拟现实控制器)。可以使用用于选择一个或多个顶点的任意其它方法;与所使用的方法相独立,执行所述方法的所述系统意识到,作为选择的结果,将在随后的级别执行顶点的移位。所述方法可以包括选择任意数目的顶点,例如一个顶点、两个顶点或者任意整数数目n》2的顶点,从而形成分别具有一个、两个或者n个顶点的集合。一个或两个顶点的集合可以例如被登记在数据库上。例如,形成一个或多个顶点的集合可以包括用选定的一个或多个顶点中的每一个在数据库中映射代表该集合的数据。
[0046]
所述方法包括计算s30围绕该集合的每一个顶点的至少一个选取区域。选取区域是其中用户能够定位指向设备用于执行特定动作的图形用户界面的区域。
[0047]
选取区域可以具有任意大小和任意形状。在示例中,选取区域可以界定图形用户界面上的任意区域。区域可以是面积或者体积。这可以取决于用户与其交互的图形用户界面(gui)。例如,如果gui是二维(2d)gui,则选取区域可以界定面积。作为另一示例,如果gui是3d gui(例如,虚拟现实中),则选取区域可以界定体积。
[0048]
在示例中,每一个计算的选取区域具有相同的大小和/或空间。换句话说,每一个选取区域可以在gui中具有相同的几何体。下面在本文中将参照图11和图12来讨论示例。
[0049]
选取区域在图形用户界面中可以是对于用户不可见的(即,未显示)或者可选地可以被显示。
[0050]
选取区域的大小可以例如被选定,例如指向设备在选定集合的顶点之后位于选取区域内。在这种情况下,指向设备可以例如在围绕选定的顶点的计算的选取区域内。可选地或者此外,指向设备可以是不运动的,直到计算了与选定的顶点相对应的选取区域。如果屏幕是触敏的,则当执行选择时指向设备可以例如被保持在触摸的位置处,直到计算了与选定的顶点相对应的选取区域。
[0051]
在示例中,可以针对该集合的每一个顶点计算一个选取区域。在这种情况下,所述方法可以包括计算等于该集合的顶点数目的选取区域的数目(即与选定的顶点一样多的选取区域)。
[0052]
在示例中,可以针对该集合的多于一个顶点来计算选取区域,例如,该集合的两个顶点或者任意数目的顶点(例如针对该集合的所有顶点)。在这种情况下,该方法可以包括计算低于该集合的顶点数目的选取区域的数目。例如,单个选取区域可以围绕接近到一起的两个或者更多个顶点,例如,两个或者更多个顶点之间的距离小于预定距离。该距离可以是但不局限于欧几里得距离或者3d距离。所述方法因而可以进一步包括首先确定接近到一起的顶点的组并且接着计算针对每一组顶点的选取区域;可以理解为,如果顶点不具有接近的顶点,则一组顶点可以仅包括一个顶点。
[0053]
所述方法包括提供s40用于沿着一个或多个nuv方向控制所述集合的每一个顶点的移位的第一操控器。nuv方向包括顶点的uv方向(由顶点的入射边定义)和在顶点处从对象的表面的法线n方向。因而,第一操控器(用于沿着nuv方向控制移位)是增强型uv操控模式。在这一增强型uv操控模式(被称为nuv操控模式)中,第一操控器允许沿着每一个nuv方向(即,沿着uv方向和法线n方向)控制3d网格的顶点的移位。在这一nuv操控模式中,用户因而能够沿着顶点的uv方向并且沿着顶点处的法线方向n移动选定的顶点,例如通过与nuv方向之一上的指向设备进行用户交互。例如,用户可以通过将指向设备定位在nuv方向之一上
或者与之邻近,并且在指向设备的按钮上执行点击(或者如果屏幕是触敏的则在一个或多个nuv方向上执行触摸)来在nuv方向之一上交互。在nuv方向上的用户交互可以触发沿着这一方向的移位功能。移位功能可以例如使一个或多个顶点沿着这一方向移动与指向设备的移动成比例的距离长度。移位功能可以沿着这一方向的两个取向来移位一个或多个顶点。用户因而可以使用移位功能通过在与nuv方向之一进行用户交互之后执行指向设备的移动来控制一个或多个顶点的移位。例如,用户可以在nuv方向上或者在nuv方向附近进行点击并且沿着方向移动指向设备用于沿着这一nuv方向移位一个或多个顶点。一个或多个顶点可以被移位与指向设备的移动距离成比例的移位长度。例如,指向设备的距离可以是指向设备在一个或多个顶点沿着其移位的方向上的移动的投射的距离。
[0054]
在示例中,一个或多个nuv方向可以包括由集合的顶点的每一个入射边定义的所有uv方向以及该顶点处的法线n方向。到点的表面的法线n方向是与该点处的表面的切面相垂直的方向。顶点处的法线n方向可以是到3d网格在与顶点相对应的屏幕的点处代表的对象的表面的法线n方向。法线n方向可以由法线n向量表示。例如,法线n方向可以通过计算顶点的每一个入射面的法向量的和来计算,从而计算在这一顶点处网格的平均法向量。
[0055]
在示例中,一个或多个nuv方向可选自集合的一个或多个选定(s20)顶点的uv方向和一个或多个选定(s20)顶点处的法线n方向。在示例中,一个或多个nuv方向可以在完成选择步骤时最接近指向设备的集合的顶点的uv方向和该顶点处的法线n方向中选择。
[0056]
所述方法包括确定s50指向设备是否被维持在至少一个选取区域内。“指向设备被维持在至少一个选取区域内”意味着指向设备保持在围绕该集合的一个或多个选定顶点的至少一个选取区域内或者保持在自从选取区域被创建的时刻在结束选择一个或多个顶点时最接近指向设备的顶点的选取区域内。
[0057]
所述方法确定指向设备是否被包含和/或围绕在选取区域内侧。例如,每一个选取区域可以界定图形用户界面上检测到光标的存在或者不存在的区域,例如,当指向设备是鼠标时。可选地或者此外,当图形用户界面被显示在触敏屏幕上时,选取区域可以界定检测到用户手指的存在或者不存在的区域。
[0058]
在示例中,所述方法可以确定指向设备是否仍然被包含和/或围绕在至少一个选取区域内侧。实际上,在使用指向设备选择3d网格的一个或多个顶点时,指向设备位于计算的至少一个选取区域内侧,因为至少一个选取区域围绕该集合的每一个顶点并且选择可以包括与一个或多个顶点的用户交互(即,例如,将指向设备定位在一个或多个顶点附近)。
[0059]
如果所述方法确定了指向设备没有被保持在至少一个选取区域内,则所述方法包括提供s70用于控制s80该集合的一个或多个顶点沿着由提供的全局取向定义的一个或多个方向的移位的第二操控器。“指向设备没有被保持在至少一个选取区域内”意味着指向设备不再位于选取区域内,例如,用户移位了指向设备。例如,用户在图形用户界面上移位了鼠标光标或者在屏幕上移动了他/她的手指。
[0060]
在示例中,第二操控器可以使能对该集合的一个或多个顶点沿着全局取向的每一个方向的移位的控制,例如,在发生第二操控器上的用户交互时。在示例中,第二操控器可以是机器人,例如如参照图3到图6讨论的。
[0061]
在示例中,所述方法可以在图形用户界面中的任意地方提供第二操控器。例如,当指向设备位于至少一个选取区域的外侧时,所述方法可以在位于第一位置上或者邻近第一
位置的位置处提供第二操控器。在这一情况下,用户可以通过将指向设备定位到第二操控器的方向之一上或者与之邻近来在第二操控器的方向之一上进行用户交互,从而沿着这一方向触发移位功能。针对第一操控器,移位功能可以例如沿着这一方向使一个或多个顶点移位与指向设备的移动成比例的距离长度。
[0062]
在示例中,所述方法可以在指向设备的当前位置提供第二操控器。在这些示例中,第二操控器可以跟随指向设备,例如,所述方法可以包括针对指向设备的每一个新位置来更新第二操控器的位置。例如,如果屏幕是触敏的,则指向设备可以跟随用户手指或者探针的移动。在这一情况中,第二操控器可以是“基于姿势的”,这在欧洲专利申请ep 3 340 023a1中有所公开。“基于姿势的”意味着第二操控器的每一个方向根据用户的特定姿势被激活(即,被选择用于沿着这一方向控制顶点的移位)。例如,所述方法可以包括使用指向设备检测由用户执行的拖动操作(拖动操作包括指向设备的平移)并且根据所述指向设备的平移来选择第二操控器的轴。接着,所述方法可以包括执行一个或多个顶点的移位,所述移位取决于选定的轴线并且所述移位达指向设备沿着选定的轴的平移的长度。
[0063]
所述方法改善了用于来回切换第一操控器和第二操控器的用户交互。值得注意的是,所述方法包括当指向设备保持在计算的至少一个选取区域内时提供第一操控器并且当所述方法确定指向设备没有被维持在至少一个选取区域内时提供第二操控器。因此,第一操控器和第二操控器关于一个或多个选定的顶点取决于指向设备的位置来提供,这改善了用户的人体工程学。实际上,用户能够因而使用第一操控器和第二操控器二者来控制选定的一个或多个顶点。例如,用户能够首先使用第一操控器并且接着移动指向设备进一步远离选定的顶点用于使用第二操控器。具体的说,所述方法减少了用户交互的数目,因为用户不再需要执行用于接通或者关断提供第一操控器和第二操控器的模式的指向设备的移动,并且仅执行本地指向设备移动(即,在显示3d网格的地点周围)用于使用第一操控器和第二操控器二者。这极大地改善了用户的生产率。
[0064]
此外,取决于指向设备位置的两种模式之间的切换改善了人体工程学,因为当指向设备接近选定的一个或多个顶点时第一操控器更加相关,并且因为第二操控器不必需要位于这样的接近位置中。实际上,第一操控器允许沿着基于入射边(即,本地定义的)定义的nuv方向控制一个或多个顶点。因为nuv操控轴使用网格线计算并且在选定的顶点处法向,它们能够位于任意方向上。结果,避免在这些方向中的两个之间的选取矛盾的最佳方式是直接在选定的一个或多个顶点周围选取操控的方向(即,本地),而非远程。当指向设备接近选定的元件时显示第一操控器改善了人体工程学,因为用户能够更加容易地理解一个或多个选定的元件将沿着其移动的一个或多个nuv方向。另一方面,第二操控器不要求顶点的入射边的这样的本地知识,因为第二操控器使用全局取向的方向。第二操控器在屏幕上的任意地方有意义,因为它的定义不依赖于选定的一个或多个顶点。此外,由于取决于指向设备位置来提供第一操控器和第二操控器,避免了否则将被引入的潜在操控误差。实际上,取决于指向设备的位置提供最相关的操控器(第一操控器在本地并且第二操控器为其它方式)。这使用户免于不得不持续检查哪一种模式被激活,这样的持续检查会导致许多操控错误。
[0065]
而且,在创建过程中,用户需要第一操控器和第二操控器二者,并且因此经常一直在两种模式之间切换。因此,所述方法对于用户的交互特别有效,因为所述方法允许取决于指向设备的位置而自动执行在两种模式之间的切换。通过取决于指向设备的位置来自动提
供最相关的操控器,所述方法因此相当地改善了用户的人体工程学。
[0066]
所述方法是计算机实现的。这意味着该方法的步骤(或者基本上所有步骤)由至少一个计算机或者类似的任意系统执行。因而,该方法的步骤由计算机执行,可能全自动或者半自动。在示例中,可以经过用户-计算机交互来执行该方法的步骤中的至少一些的触发。所要求的用户-计算机交互的水平可以取决于所预见的自动化的水平并且与实现用户愿望的需要相均衡。在示例中,这一水平可以是用户定义的和/或预定义的。
[0067]
该方法的计算机实现的典型示例是使用适合于这一目的的系统来执行该方法。所述系统可以包括耦合到存储器和图形用户界面(gui)的处理器、其上记录有包括用于执行所述方法的指令的计算机程序的存储器。存储器还可以存储数据库。存储器是适合于这样的存储的任意硬件,可能包括几个物理上分立的部件(例如,一个用于程序,并且可能一个用于数据库)。
[0068]
所述方法通常操控3d对象,也被称为“建模对象”。建模对象是由例如存储在数据库中的数据定义的任意对象。作为扩展,表述“建模对象”指代数据本身。根据系统的类型,建模对象可以由不同种类的数据定义。系统可以实际上是cad系统、cae系统、cam系统、pdm系统和/或plm系统的任意组合。在那些不同的系统中,建模对象由相对应的数据定义。人们可以因此说cad对象、plm对象、pdm对象、cae对象、cam对象、cad数据、plm数据、pdm数据、cam数据、cae数据。然而,这些系统不是相互排他性的,因为建模对象可以由与这些系统的任意组合相对应的数据定义。系统因而可以很好地是cad和plm系统二者,这从下面提供的对这样的系统的定义将变得明显。
[0069]
cad系统此外意味着至少适于基于建模对象的图形表示设计建模对象的任意系统,例如catia。在这一情况下,定义建模对象的数据包括允许代表建模对象的数据。cad系统可以例如使用边或者线,在某些情况下使用面或者表面来提供cad建模对象的表示。线、边或者表面可以按照各种方式表示,例如非均匀有理b-样条(nurbs)或者子划分表面。具体地,cad文件包含几何体可以根据其生成的规范,这反过来允许生成表示。建模对象的规范可以被存储在单个cad文件或者多个文件中。代表cad系统中的建模对象的文件的典型大小在每部件一兆字节的范围中。并且建模对象可以典型地是成千上万个部件的装配件。
[0070]
在cad的上下文中,建模对象可以典型地是3d建模对象,例如,代表诸如部件或者部件的装配件的产品,或者可能是产品的装配件。“3d建模对象”意味着由允许其3d表示的数据建模的任意对象。3d表示允许从所有角度观看部件。例如,在进行3d表示时,3d建模对象可以被处理或者围绕其任意轴旋转,或者围绕在其上显示表示的屏幕中的任意轴。这显著地排除了没有被3d建模的2d图标。3d表示的显示促进了设计(即,增加了设计者统计上完成它们任务的速度)。这加速了工业中的制造过程,因为产品的设计是制造过程的一部分。
[0071]
3d建模对象可以代表在使用例如cad软件解决方案或者cad系统完成其虚拟设计之后要在真实世界中制造的产品的几何体,例如(如机械)部件或者部件的装配件(或者等效的部件的装配件,因为部件的装配件从方法的角度来看可以被看作是部件本身,或者方法可以独立地应用于装配件的每一个部件),或者更加通常地是任何刚性体装配件(例如,移动机制)。cad软件解决方案允许各种和无限工业领域中产品的设计,包括:航天、架构、建筑、消费类产品、高科技设备、工业设施、交通、航海和/或离岸油/汽生产或者运输。由该方法设计的3d建模对象因而可以代表可以是任意机械部件的工业产品,例如地面载具的部件
(例如包括汽车和轻型卡车装备、赛车、摩托车、卡车和摩托装备、卡车和公交汽车、火车)、航空载具的部件(例如包括机身装备、航空装备、推进装备、防御产品、航线装备、空间装备)、海运载具的部件(例如包括海军装备、商业船只、离岸装备、游艇和工作船只、船舶装备),通用机械部件(例如包括工业制造机器、重移动机器或者装备、安装装备、工业装备产品、制造金属产品、轮胎制造产品)、机电或者电子部件(例如包括消费类电子产品、安全和/或控制和/或仪器产品、计算和通信装备、半导体、医疗设备和装备)、消费类商品(例如包括家具、家和花园产品、休闲产品、时尚产品、硬商品零售商产品、软商品零售商产品)、包装(例如包括食品和饮料和香烟、美容和个人护理、家用产品包装)。
[0072]
cad系统可以是基于历史的。在这一情况下,建模对象进一步由包括几何特征的历史的数据定义。建模对象可以实际上由实体的人(即,设计者/用户)使用标准建模特征(例如,突出、旋转、切割和/或圆角)和/或标准表面特征(例如,横扫、弯曲、提升、填充、变形和/或平滑)进行设计。支持这样的建模功能的许多cad系统是基于历史的系统。这意味着设计特征的创建历史典型地经过非循环数据流而被保存,该非循环数据流经过输入和输出链路将所述几何特征链接到一起。基于历史的建模范例自从80年代开始是公知的。建模对象由两个持续数据表示进行描述:历史和b-rep(即,边界表示)。b-rep是在历史中定义的计算的结果。当建模对象被表示时,在计算机的屏幕上显示的部件的形状是b-rep(例如,其棋盘花纹)。部件的历史是设计意图。基本上,历史收集建模对象已经经历的操作的信息。b-rep可以与历史一起被保存,以使得更加容易显示复杂部件。历史可以与b-rep保存在一起以便允许部件根据设计意图进行设计改变。
[0073]
plm系统此外意味着适于管理代表物理制造产品(或者待制造产品)的建模对象的任意系统。在plm系统中,建模对象因而由适合于制造物理对象的数据定义。这些可以典型地是尺寸值和/或容限值。对于对象的正确制造,实际上具有这样的值更好。
[0074]
cam解决方案此外意味着适于管理产品的制造数据的任意解决方案、软件或硬件。制造数据通常包括与待制造的产品、制造过程和要求的资源相关的数据。cam解决方案用于计划并且优化产品的整个制造过程。例如,它能够为cam用户提供关于可行性的信息,制造过程的持续时间或者可以在制造过程的特定步骤处使用的资源的数量,例如特定机器人;并且因而允许对管理或者要求的投资的决策。cam是在cad过程和潜在的cae过程之后的随后过程。这样的cam解决方案由注册商标为的达索系统提供。
[0075]
cae解决方案此外意味着适合于分析建模对象的物理行为的任意解决方案、软件或硬件。公知并且广泛使用的cae技术是有限元方法(fem),这典型地涉及建模对象到能够经过方程计算和模拟物理行为的元件的划分。这样的cae解决方案由注册商标为的达索系统提供。另一兴起的cae技术涉及在没有cad几何数据的情况下对由来自物理的不同领域的多个部件构成的复杂系统的建模和分析。cae解决方案允许待制造产品的仿真并且因而允许其优化、改善和验证。这样的cae解决方案由注册商标为的达索系统提供。
[0076]
pdm代表产品数据管理。pdm解决方案意味着适于管理与特定产品有关的所有类型的数据的任意解决方案、软件或硬件。pdm解决方案可以由产品的生命周期中涉及的所有角色使用:主要是工程师但也包括项目经理、财务人员、销售人员和买方。pdm解决方案通常基于产品朝向的数据库。它允许角色共享关于其产品的一致性数据并且因此防止角色使用分
歧数据。这样的pdm解决方案由注册商标为的达索系统提供。
[0077]
图2示出了系统的gui的示例,其中系统是cad系统。
[0078]
gui 2100可以是典型的类似cad界面,具有标准菜单条2110、2120以及底部和侧面工具条2140、2150。这样的菜单和工具条包含用户可选择图标的集合,每一个图标与一个或多个操作或功能相关联,这在本领域是公知的。这些图标中的一些与软件工具相关联,适合于编辑和/或工作于在gui 2100中显示的3d建模对象2000。软件工具可以被分组为工作台。每一个工作台包括软件工具的子集。具体的说,工作台之一是编辑工作台,适合于编辑建模产品2000的几何特征。在操作中,设计者可以例如预选择对象2000的部件并且接着初始化操作(例如,改变尺寸、颜色等等)或者通过选择合适的图标来编辑几何约束。例如,典型的cad操作是对在屏幕上显示的3d建模对象的打孔或者折叠的建模。gui可以例如显示与显示的产品2000相关的数据2500。在图的示例中,被显示为“特征树”的数据2500以及其3d表示2000与包括闸钳和盘的闸装配件有关。gui可以进一步示出各种类型的图形工具2130、2070、2080,用于例如促进对象的3d取向、用于触发对编辑产品的操作的仿真或者渲染显示的产品2000的各种属性。光标2060可以由触觉设备控制以允许用户与图形工具交互。
[0079]“设计3d建模对象”指代至少是精细加工3d建模对象的过程的一部分的任意动作或者动作系列。因而,该方法可以包括从零开始创建3d建模对象。可选地,该方法可以包括提供先前创建的3d建模对象,并且接着修改3d建模对象。
[0080]
该方法可以被包括在制造过程中,这可以包括在执行该方法之后生成与建模对象相对应的物理产品。在任意情况下,由该方法设计的建模对象可以代表制造对象。建模对象因而可以是建模实体(即,代表实体的建模对象)。制造对象可以是产品,例如部件或者部件的装配件。由于该方法改善了建模对象的设计,该方法还改善了产品的制造并且因而增加了制造过程的生产率。
[0081]
在示例中,该方法可以进一步包括:在提供s70第二操控器之后,确定s50指向设备再次位于至少一个选取区域内并且提供s60第一操控器。换句话说,确定指向设备被返回到至少一个选取区域。提供s60第一操控器这里意味着第一操控器被再次提供:实际上,第一次已经提供了第一操控器s40,并且如果指向设备在离开至少一个选取区域之后在至少一个选取区域内返回,则该方法再次提供第一操控器(即,第二次)。在示例中,如果指向设备位于围绕集合的给定顶点的第一选取区域内并且离开这一第一选取区域,则第二操控器因而被提供。此时,如果指向设备在这一第一选取区域内返回,则该方法再次提供第一操控器(即,第二次)。如果指向设备在计算的至少一个选取区域的另一选取区域内返回,例如,围绕集合的另一顶点或者另一组顶点的第二选取区域,则该方法也可以再次提供第一操控器。在这些示例中,再次提供涉及第一操控器的功能对于用户再次可用,例如,用户能够再次执行选定的至少一个顶点的nuv移位。
[0082]
所述方法可以进一步包括取决于每次在指向设备进入和离开至少一个选取区域的选取区域时该指向设备是否位于至少一个选取区域内来重复提供第一操控器或者提供第二操控器。
[0083]
当指向设备在至少一个选取区域内返回时再次提供第一操控器改善了用于设计3d网格的该方法的人体工程学。实际上,在利用第一操控器的第一操控模式和利用第二操控器的第二操控模式之间的切换遵循指向设备的移动。因而,用户可以可选地使用第一操
控器和第二操控器用于设计3d网格。
[0084]
在示例中,提供s60第一操控器可以进一步包括撤回第二操控器。撤回第二操控器意味着第二操控器的一个或多个功能对于用户不可用(不再可用),例如,用户可以再次不控制集合的一个或多个顶点沿着由全局取向定义的一个或多个方向的移位。
[0085]
在示例中,提供s70第二操控器可以进一步包括撤回第一操控器。撤回第一操控器意味着第一操控器的一个或多个功能对于用户不可用(不再可用),例如,用户能够再次不控制集合的每一个顶点沿着一个或多个nuv方向的移位。
[0086]
在示例中,提供第一操控器可以包括在图形用户界面上显示第一操控器。
[0087]
在示例中,提供第二操控器可以包括在图形用户界面上显示第二操控器。
[0088]
撤回第一或者第二操控器可以包括从图形用户界面去除第一或者第二操控器在图形用户界面上的显示。
[0089]
撤回第一或者第二操控器改善了用户的人体工程学。实际上,当用户使用第一操控器(相应地为第二操控器)时,用户不再使用第二操控器(相应地为第一操控器)。因而,由于仅同时提供一个操控器,撤回第一操控器(或者第二操控器)避免操控误差。而且,撤回第一操控器(或者第二操控器)卸载了屏幕显示,这也改善了人体工程学,因为在图形用户界面上仅显示相关信息。
[0090]
在示例中,提供s60第一操控器可以进一步包括确定最接近指向设备的集合的顶点并且向确定的顶点提供第一操控器。向确定的顶点提供第一操控器意味着第一操控器的nuv方向是确定的顶点的nuv方向。因而,nuv方向是确定的顶点的uv方向以及在确定的顶点处的法线n方向。对于确定最接近指向设备的集合的顶点,该方法可以例如计算指向设备和集合的每一个顶点之间的距离。该距离可以基于投射平面进行计算。投射平面可以是当指向设备是2d指向设备时在其上显示3d网格的屏幕。可选地,当指向设备是3d指向设备时,距离可以是位于指向设备和集合的每一个顶点之间的空间距离(例如,欧几里得距离)。更加通常地,表述“最接近指向设备的集合的顶点”涉及基于顶点和指向设备之间的距离来选择顶点,并且可以使用任何类型的距离。
[0091]
向最接近指向设备的顶点提供第一操控器改善了用于来回切换第一操控器和第二操控器的用户交互。实际上,用户能够选择第一操控器将被提供到的顶点。例如,用户能够移动指向设备接近集合的顶点并且第一操控器被提供到这一顶点(可以说与这一顶点相关联)。这允许用户使用与一个或多个顶点的不同顶点相关联的第一操控器。用户能够例如移动指向设备接近集合的第一顶点并且该方法将因而提供与这一第一顶点相关联的第一操控器。利用与第一顶点相关联的第一操控器,用户能够执行一个或多个顶点的第一移位。接着,用户能够移动指向设备接近集合的第二顶点并且该方法将因而提供与这一第二顶点相关联的第一操控器。利用与第一顶点相关联的这一第二操控器,用户能够执行一个或多个顶点的第二移位。用户能够因此使用集合的不同顶点的第一操控器迭代地执行集合的第一个或多个顶点的移位。
[0092]
在示例中,该方法可以进一步包括在集合的一个或多个顶点的每一个移位期间或者之后重复计算至少一个选取区域。“重复计算”意味着该方法基于集合的一个或多个顶点的当前位置再次计算至少一个选取区域。例如,至少一个选取区域的计算可以在用户对集合的一个或多个顶点的每一个移位之后重复,例如,在用户使用用于控制一个或多个顶点
的移位的操控器之一之后或者在用户在屏幕上移动3d网格的显示的取向和/或位置之后。可选地,可以连续执行至少一个选取区域的计算,即,针对集合的顶点的每一个移位,“即时地”重新计算选取区域。
[0093]
当提供第二操控器时,重复计算至少一个选取区域改善了对第一操控器的选择,并且反之亦然。实际上,在集合的一个或多个顶点的每一个移位之后,计算的至少一个选取区域可以不再围绕集合的每一个顶点。例如,一个或多个顶点可以被移位出至少一个选取区域。因而,重复计算至少一个选取区域允许校正至少一个选取区域的位置,这改善了用户的人体工程学,因为该方法因此考虑了在屏幕上显示的实际情形(即,在移位之后网格的一个或多个顶点的真实当前位置)。
[0094]
在示例中,利用指向设备对3d网格的一个或多个顶点的选择可以通过下面执行:
[0095]

在网格的至少一个顶点上与指向设备进行用户交互,从而选择网格的至少一个顶点;和/或
[0096]

在网格的至少一个边上与指向设备进行用户交互,从而选择至少一个边的两个顶点;和/或
[0097]

在网格的至少一个面上与指向设备进行用户交互,从而选择属于至少一个面的顶点。
[0098]
因而,为了进行选择,可以使用这些用户交互中的一个或多个的任意组合。
[0099]
例如,选择可以通过在至少一个顶点上与指向设备进行用户交互来执行。用户可以例如在用户希望选择的第一顶点上或者在该第一顶点附近移动指向设备。用户可以使用指向设备的按钮的点击来确认选择第一顶点(或者如果屏幕是触敏的则为触摸)。此时,所述集合仅包括单个顶点(第一顶点)。用户可以接着选择第二顶点以完成该集合。选择第二顶点可以与第一顶点相同地执行。通过重复执行对每一个顶点的选择,用户可以完成选定顶点的集合。用户也可以使用利用指向设备的拖放操作同时选择几个顶点。
[0100]
选择也可以通过在网格的至少一个边上与指向设备进行用户交互来执行,从而选择至少一个边的两个顶点。选择网格的至少一个边可以如先前详细阐释的顶点的选择来执行。当用户选择至少一个边时,该方法向选定顶点的集合添加至少一个边的每一个顶点。例如,如果用户选择第一边,则该方法向选定顶点的集合自动添加这一第一边的两个顶点(即,位于第一边的端部的两个顶点)。用户可以迭代地选择边,用于将边的顶点添加到选定顶点的集合,或者也可以使用利用指向设备的拖放操作同时选择几个边。
[0101]
选择也可以通过在网格上的至少一个面上与指向设备进行用户交互来执行,从而选择属于该至少一个面的顶点。选择网格的至少一个面可以如先前详细阐释的对顶点或者边的选择相同地执行。当用户选择至少一个面时,方法向选定顶点的集合添加至少一个面的每一个顶点。例如,如果用户选择了第一面,则该方法向选定顶点的集合自动添加这一第一面的顶点(即,属于该面的每一个边的顶点)。用户可以迭代地选择用于将边的顶点添加到选定顶点的集合的面,或者也可以使用利用指向设备的拖放操作来同时选择几个面。
[0102]
选择一个或多个顶点因此得到改善。实际上,用户仅需要选择几何元素(例如,边或者面),用于自动选择这些几何元素的顶点。因而,用于选择一个或多个顶点的用户交互的数目降低,这改善了方法的效率。
[0103]
在示例中,第一操控器可以包括代表nuv方向之一的至少一个图形元素。至少一个
图形元素中的每一个可以是示出nuv方向的任意图形表示。例如,至少一个图形元素中的每一个可以是关于nuv方向的任意形式的指向,例如在nuv方向上指向的线或者箭头。至少一个图形元素可以控制集合的至少一个顶点沿着由至少一个图形元素代表的nuv方向的移位。这意味着用户能够利用至少一个图像元素中的一个与指向设备进行用户交互,并且作为反应,移位功能可以被执行。例如,用户可以通过将指向设备定位在图形元素上或者与之邻近并且在指向设备的按钮上执行点击(或者如果屏幕是触敏的则为在nuv方向之一上的触摸)来在图形元素上交互。在图形元素上的用户交互可以触发沿着图形元素代表的方向的移位功能。该移位功能可以例如沿着图形元素代表的方向将一个或多个顶点移位与指向设备的移动成比例的距离长度。用户因而可以使用移位功能通过在与图形元素进行用户交互之后执行指向设备的移动来控制一个或多个顶点的移位。例如,用户可以维持在图形元素上或者附近的点击(或者屏幕上的触摸)并且在用于沿着图形元素代表的方向移位一个或多个顶点的方向上移动指向设备(或者屏幕上的手指滑动)。一个或多个顶点可以被移位与指向设备的移动距离成比例的移位长度。例如,指向设备的距离可以是指向设备在一个或多个顶点沿着其移位的方向上的移动的投射的距离。移位功能可以在一个或多个顶点被移位之后被去激活。例如,当用户释放按钮的点击(或者分离屏幕上的手指)时,移位功能可以被去激活。
[0104]
在示例中,在提供第一操控器之后,方法可以进一步包括与第一操控器的至少一个图形元素的用户交互,例如,用户可以与至少一个图形元素交互。接着,方法可以包括响应于指向设备的移动而沿着nuv方向移位集合的至少一个顶点,例如,当用户与图形元素交互时触发移位功能。计算的至少一个选取区域可以在移动期间被去激活。这意味着当移位功能被触发时,至少一个选取区域可以被去激活。
[0105]
该方法可以进一步包括,针对不具有与由至少一个图形元素代表的nuv方向相同的nuv方向的集合的每一个顶点,沿着与由至少一个图形元素代表的nuv方向最接近的其nuv方向之一移位顶点。
[0106]
沿着最接近由至少一个图形元素代表的nuv方向的nuv方向移位集合的顶点改善了3d网格的设计。实际上,它允许一起修改网格的几个顶点,这在3d网格包括通量线时尤其有用。3d网格的通量线是形成网格的相对线性部分的顶点和边的组。3d网格的通量线是跟随代表的3d对象的设计的线的线。例如,汽车主体的通量线是当汽车移动时与汽车的方向平行的线(这样的通量线的示例在图24中说明)。网格通常沿着这些通量线是规则的,并且因此在不破坏这些通量线的情况下修改网格是重要的。在这一上下文中,沿着最接近的nuv方向一起移位集合的顶点允许在不破坏网格的规则性的同时修改通量线的顶点,并且因而根据3d对象的通量线来修改设计。这因此极大地改善了设计修改。
[0107]
方法可以进一步包括基于沿着响应于指向设备的移动而移位的nuv方向该集合的至少一个顶点的新位置来更新第一操控器的位置。例如,第一操控器的位置可以在与第一操控器进行用户交互时一个或多个顶点的每一个移位之后进行更新。第一操控器的位置也可以在屏幕上的视点的每一个改变之后更新(例如,当用户利用屏幕改变3d网格的相对位置时)。第一操控器的位置也可以被连续更新,例如,第一操控器可以在它们的位置改变时跟随至少一个顶点的位置。
[0108]
所述方法可以进一步包括,针对不具有与由至少一个图形元素代表的nuv方向相
同的nuv方向的集合的每一个顶点,显示代表最接近由第一操控器的至少一个图形元素代表的nuv方向的顶点的nuv方向的图形元素。图形元素可以是表明nuv方向的线或者箭头。图形元素可以被定位为使得图形元素的一端位于顶点上或者附近并且另一端指向nuv方向。
[0109]
第二操控器可以是机器人。“机器人”是由全局取向代表的操控器并且具有3个轴(x、y、z)。用户可以使用其3个轴中的任意一个以沿着由轴系统定义的方向操控一个或多个顶点。机器人的轴系统可以例如是3d场景的全局轴系统312,例如3d对象或者包括被修改的3d对象的产品的全局轴系统。用户也能够与“机器人”交互,用于旋转和/或缩放集合的一个或多个顶点。与“机器人”的这一其它种类的用户交互允许执行网格的顶点的旋转或者密切吸引(affinities)。因而,请求保护的本发明允许利用集合的一个或多个顶点的不同种类的变形工作,例如使用第一操控器沿着nuv方向的平移以及使用第二操控器的旋转或者密切吸引,这进一步改善了用户的人体工程学。
[0110]
至少一个选取区域的计算可以包括计算针对集合的每一个顶点的一个选取区域。可选地或者此外,计算的至少一个选取区域可以是界定的表面,例如当指向设备是二维(2d)指向设备时为圆形,或者当指向设备是3d指向设备时可以是诸如球形的体积。
[0111]
图11和图12示出了当指向设备是2d或者3d指向设备时选取区域的示例。
[0112]
图11示出了当指向设备是2d指向设备时选取区域602的示例。在这些示例中,图形用户界面是2d,例如,图形用户界面被显示在2d屏幕600上。表示了标记为区域1、区域2和区域3的三个选取区域602。选取区域可以界定2d屏幕600的任意区域。在图11的示例中,每一个选取区域602可以界定2d图形用户界面的区域并且可以是任意的形状和大小,例如,区域1由圆形界定,区域2由四边形界定,或者区域3示出为屏幕600上的任意多边形。
[0113]
在示例中,如果选取区域由圆形界定,则圆形的中心可以是到选取区域围绕的顶点的屏幕上的投射。圆形的半径可以是像素固定的(例如,60个像素),例如通过用户和/或系统。
[0114]
在示例中,选取区域可以是两个或者更多个选取区域的联合。例如,当至少一个选取区域围绕叠置在2d gui上的几何体时,该方法可以仅考虑叠置区域的联合。例如,如果该方法计算分别为圆形的两个选取区域并且这两个选取区域部分叠置,则该方法可以考虑由两个圆形的联合定义的区域。
[0115]
图12示出了当指向设备是3d指向设备时选取区域612的示例。在这些示例中,图形用户界面是3d空间610。表示了被标记为区域1、区域2和区域3的三个选取区域602。至少选取区域的每一个可以界定3d空间610的任意体积。如在这一图中说明的,至少一个选取区域612中的每一个可以界定例如3d空间610的球形、棱柱或者任意特定的体积。如果选取区域由球形界定,则该球形的中心可以是该球形围绕的顶点。球形的半径可以是多个像素的3d等同物(例如,在2d指向设备的情况下为60个像素的等同物)。对于当指向设备是2d指向设备时的先前示例,该方法可以考虑计算的至少一个选取区域的每一个的体积的联合。
[0116]
图13到图16示出了响应于指向设备的移动,顶点沿着nuv方向的移位的示例。
[0117]
如在图13中说明的,网格的顶点704利用指向设备702进行选择。作为顶点704的选择的结果,计算围绕选定的顶点704的选取区域700。在这一示例中,计算的选取区域700是屏幕上的圆形。在图13到图16中,选取区域仅出于解释的缘故而被表示。选取区域可以是对于用户不可见(即,没有显示),或者相反选取区域可以被显示给用户。
[0118]
在计算选取区域700之后,指向设备仍然位于选取区域700内,因为指向设备在选择时已经被移动接近顶点704。显示第一操控器710,如在图14中说明的。在图14的示例中,第一操控器包括代表顶点704的七个nuv方向中的每一个的图形元素(在这一示例中为七个图形元素)。每一个图形元素控制顶点704沿着由图形元素代表的nuv方向的移位。每一个图形元素可以被表示为从其属于的顶点704开始并且指向它代表的nuv方向的箭头。箭头直接表明图形元素代表的方向的取向。当用户与一个箭头交互时,移位功能可以在箭头表明的方向的取向上将选定的一个或多个顶点沿着图形元素代表的方向移位。移位功能还可以在与由箭头表明的取向相反的取向上使选定的一个或多个顶点沿着该方向移位。
[0119]
在显示第一操控器之后,用户与第一操控器的图形元素720交互,如在图15中说明的。在图15中,用户通过将指向设备720放置为接近图形元素720而与图形元素720交互。例如,指向设备702和图形元素720之间的距离可以低于距离限制。距离限制可以例如是图形用户界面上的许多像素。当用户与图形元素交互时,这一图形元素720可以例如被高亮;因此,用户意识到将在图形元素702上执行用户动作。
[0120]
用户可以响应于指向设备的移动而沿着由图形元素720代表的nuv方向730移位顶点704,如在图16中说明的。例如,当指向设备是鼠标时,用户可以通过点击鼠标的按钮来与图形元素720交互。接着,用户可以通过移动鼠标来控制顶点704的移位,并且顶点704可以沿着nuv方向703移位与鼠标的移动距离成比例的距离,例如,可以在两个距离之间应用比例系数。在示例中,计算的至少一个选取区域700可以在移动期间被去激活。这意味着所述方法即使指向设备没有保持在选取区域700内也可能不执行第二操控器的提供。这通过避免限制用户在修改期间在选取区域704内侧对指向设备702的移动,允许利用第一操控器自由修改顶点704的位置。
[0121]
图17和图18示出了如果指向设备没有被保持在选取区域内则提供第二操控器并且撤回第一操控器的示例。
[0122]
按照图13到图16中说明的情形来描述图17的示例,即,在选择了一个顶点800之后,已经计算了选取区域802并且已经提供了第一操控器。此时,用户在选取区域802外侧移动指向设备,如在图17中说明的。应该理解,用户在显示的第一操控器上还没有执行用户交互。因而,确定指向设备不再位于选取区域内,即,指向设备还没有被维持在选取区域中。如在图17中说明的,方法因此撤回第一操控器(即,移除第一操控器的显示)。
[0123]
在示例中,指向设备的外观804可以被修改以指示指向设备位于选取区域外。光标的外观804也可以临时修改。如图18连同图17中说明的,光标的外观804可以在指向设备离开选取区域802之后被修改,并且可以在预定义的时间之后被再次修改812(如在图18中说明的,其中指向设备的外观再次变为光标812)。
[0124]
作为终止的结果,第二操控器810被提供用于控制顶点800沿着由全局取向定义的三个方向的移位。在图18中,第二操控器810在顶点800的位置处被显示在图形用户界面上。在图18中,第二操控器810是机器人。用户可以与由全局取向定义的三个方向之一交互,用于沿着这些方向之一移位顶点800。在示例中,仅这一方向可以被显示在图形用户界面上,例如在指向设备的位置处或者在顶点800的位置处。这改善了人体工程学,因为仅相关信息显示在图形用户界面上。
[0125]
现在参照图19,讨论了当指向设备再次位于选取区域内在提供第二操控器之后提
供第一操控器并且撤回第二操控器的示例。例如,在如图18中说明的提供第二操控器之后,用户在选取区域802内移动指向设备820。该方法因而再次提供第一操控器822并且撤回第二操控器810。如在图19中说明的并且参照图18,该方法显示第一操控器822并且移除第二操控器810的显示。在这一示例中,该方法使最接近指向设备的第一操控器的nuv方向824高亮。
[0126]
图20示出了使用指向设备选择3d网格的第一顶点和第二顶点的示例。
[0127]
按照在图13中说明的情形来描述图20的示例,即在选择了一个顶点900(被称为第一顶点900)之后。现在,用户使用指向设备选择网格的第二顶点902,如在图20中说明的。一个或多个顶点的集合因此包括两个顶点(选定的第一900和第二902)。两个选取区域906被计算,即针对每一个顶点有一个选取区域。两个选取区域围绕集合的两个顶点900、902。
[0128]
确定到指向设备的最接近顶点(集合中的)。由于在第一顶点900之后选择了第二顶点902,因此到指向设备的最接近顶点是第二顶点902。因而,所述方法接着向第二顶点902提供第一操控器902。第一操控器902包括代表第二顶点902的每一个nuv方向的一个图形元素(即,在这一示例中为四个图形元素)。每一个图形元素控制第二顶点902沿着由至少一个图形元素(这里为箭头)代表的nuv方向的移位。接着,所述方法包括用户与第一操控器的一个图形元素910交互,如在图21中说明的。在这一示例中,用户通过将指向设备定位为接近图形元素910而与图形元素910交互。
[0129]
现在讨论当集合的至少一个顶点不具有与在用户动作时选择的nuv方向910相同的nuv方向时的示例。在这些示例中,不具有与由至少一个图形元素代表的nuv方向相同的nuv方向的集合的每一个顶点被沿着最接近由至少一个图形元素代表的nuv方向的它的nuv方向移位。例如,两个nuv方向之间的相似度可以通过计算代表每一个方向的两个向量的标量积来计算。所述方法可以例如考虑如果标量积为1(即,当方向相等时)或者如果标量积接近于1(即,方向几乎相等)则两个nuv方向“相同”。最接近的nuv方向可以通过计算每一个nuv方向的标量积并且通过选择具有最高标量积的nuv方向来确定,nuv方向由至少一个图形元素表示。
[0130]
返回参照图20,第一顶点900不具有与nuv方向910相同的第一顶点900的nuv方向。因而,最接近nuv方向910的nuv方向被确定。例如,所述方法可以通过计算第一顶点900的每一个nuv方向与nuv方向910的标量积来确定最接近nuv方向910的nuv方向。最接近nuv方向910的nuv方向可以是例如与nuv方向910具有较大标量积的nuv方向。在这一示例中,第一顶点900的nuv方向912是最接近nuv方向910的方向。第一顶点900因而沿着确定的方向912移位。对于集合中不具有与由至少一个图形元素代表的nuv方向相同的nuv方向的每一个顶点,可以显示代表与在第一操控器的图形元素上选择的nuv方向最接近的nuv方向的图形元素。在这一示例中,人们因而可以显示代表nuv方向912的图形元素。所述方法因而沿着其各自的nuv方向(对于第二顶点为910并且对于第一顶点为912)移位第二顶点902和第一顶点900。代表两个nuv方向(910和912)的两个图形元素910、912中的每一个在图形用户界面上被高亮(例如,通过使被显示的另一nuv方向半透明)。
[0131]
图22和图23示出了如果指向设备没有被维持在针对图20的选定顶点计算的选取区域内则提供第二操控器并且撤回第一操控器的示例。
[0132]
按照图20到图21中说明的情形来描述图22的示例,即在选择了第一顶点和第二顶
点900、902之后,选取区域906已经被计算并且第一操控器904已经被提供到第二顶点902。此时,用户在两个选取区域906外侧移动指向设备920,如在图22中说明的。仍然参照图22,用户将指向设备移动到针对第二顶点904计算的选取区域外侧(指向设备原位于该选取区域内侧)。确定指向设备没有被维持在选取区域中。指向设备920的外观可以被修改用于指示指向设备位于两个选取区域906外侧。结果,第二操控器930被提供用于控制第一和第二顶点900、902沿着由全局取向定义的三个方向的移位。第二操控器810被显示在图形用户界面上与集合的顶点900、902的位置的质心相对应的位置处,如在图23中说明的。现在,用户可以与由全局取向定义的三个方向之一交互,用于沿着这一方向移位集合的顶点900、902。
[0133]
现在,如果指向设备在第一顶点900的选取区域中返回,则该方法再次向第一顶点900提供第一操控器并且撤回第二操控器930。应该理解,用户没有在显示的第二操控器上执行用户交互。
[0134]
可以在不同选取区域中指向设备的每一次移动之后重复提供第一操控器。例如,如果用户在属于不同顶点(例如,在图20-23的示例中为900和902)的不同选取区域中连续移动指向设备,则该方法向不同的顶点连续提供第一操控器,并且,在不同选取区域中的每一次连续移动之后,在每一次新提供第一操控器之后,撤回提供的第一操控器。
[0135]
图24到图27说明了用于设计代表汽车主体1000的3d网格1008的方法的示例。汽车主体1000包括对称轴1002。指示了图1的流程图的标记。代表汽车主体1000的3d网格1008被显示s10并且全局取向1014被提供s10。
[0136]
利用指向设备,网格的通量线1010的顶点被选择s20,从而形成顶点的集合。此时,围绕集合的每一个顶点的选取区域被计算。在这一示例中,所述方法计算针对每一个顶点的选取区域。第二操控器1012(s70)被显示,因为指向设备没有位于计算的选取区域内侧。
[0137]
现在转向图26,所述方法确定(s50)指向设备再次位于选取区域内侧。第一操控器因而被再次提供(s60)。所述方法确定集合的顶点1012最接近指向设备,并且因而向这一顶点1012提供第一操控器。第一操控器包括代表这一顶点1012的每一个nuv方向的一个图形元素(即,代表顶点1012的四个入射边的四个图形元素和法线n方向的一个图形元素)。第一操控器的每一个图像元素控制顶点1012沿着由至少一个图形元素代表的nuv方向的移位。
[0138]
接着,所述方法包括用户与第一操控器的一个图形元素1016交互s80。对于集合中不具有与由图形元素1016代表的nuv方向相同的nuv方向的每一个顶点,顶点沿着与由至少一个图形元素代表的nuv方向最接近的它的nuv方向之一移位。在这一示例中,通量线的其它顶点不具有与由图形元素1016代表的nuv方向相同的nuv方向。因而,所述方法针对通量线的每一个其它顶点确定最接近由图形元素1016代表的nuv方向的nuv方向1014,例如通过针对通量线的每一个其它顶点计算每一个nuv方向与nuv方向1014的标量积并且针对通量线的每一个其它顶点选择具有较大标量积的nuv方向。如在图26中说明的,通量线的每一个其它顶点的确定的nuv方向1014被高亮,例如通过显示代表每一个确定的nuv方向1014的图形元素。
[0139]
如在图27中说明的,集合的顶点1012通过移位功能响应于指向设备的移动而沿着由图形元素1016代表的nuv方向移位。通量线1018的其它顶点由移位功能沿着最接近由图形元素1016代表的nuv方向的它们各自的nuv方向1014移位。在移位之后,第一操控器的位置基于顶点1020的新位置被更新。被显示用于高亮通量线1010的每一个其它顶点的确定的
nuv方向1014的其它图形元素1018的位置也基于通量线1010的其它顶点的新位置被更新。
[0140]
提供第一操控器可以重复进行。例如,如果用户在属于除了顶点1012以外的另一顶点的另一选取区域中移动指向设备,则所述方法向这一另一顶点提供第一操控器。第一操控器可以包括代表这一另一顶点的每一个nuv方向的一个图形元素。此时,所述方法可以撤回提供给顶点1012的第一操控器(或者“去激活”顶点1012的第一操控器)。由于顶点1012现在属于通量线1010的其它顶点,因此所述方法可以在“降级”版本中显示顶点1012的第一操控器。例如,顶点1012的第一操控器的“降级”版本可以包括代表最接近由新提供的第一操控器的图形元素代表的nuv方向的nuv方向的单个图形元素(如果用户与这一图形元素交互)(如对于通量线1010的其它顶点)。
[0141]
因而,对于指向设为位于其选取区域中的顶点的第一操控器1016的显示,以及对于集合1014的其它顶点的图像元素的显示可以在指向设备在属于集合的新顶点的新选取区域中的每一次移动之后被连续更新。在每一次移动之后,所述方法可以向新的顶点提供第一操控器1016并且显示针对其指向设备已经离开选取区域的顶点的图像元素1014。
[0142]
在图26的示例中,通量线1010的每一个其它顶点的确定的nuv方向1014通过显示代表每一个确定的nuv方向1014的图像元素被高亮。在其它示例中,通量线的每一个其它顶点的确定的nuv方向1014可能没有被高亮,例如,所述方法可能没有显示除了顶点1012以外的其它顶点的图像元素(即,仅对于提供到顶点1012的第一操控器)。在其它示例中,通量线的每一个其它顶点的每一个nuv方向可以被高亮,例如,所述方法可以显示针对通量线1010的每一个其它顶点的每一个nuv方向的图像元素。
[0143]
图28示出了系统的示例,其中,所述系统是客户端计算机系统,例如用户的工作站。
[0144]
所述示例的客户端计算机包括连接到内部通信总线1000的中央处理单元1010、也连接到总线的随机存取存储器(ram)1070。客户端计算机进一步提供有图形处理单元(gpu)1110,其与连接到总线的视频随机存取存储器1100相关联。视频ram 1110在本领域中也被已知为帧缓冲器。大容量存储设备控制器1020管理对大容量存储器设备的存取,例如硬盘驱动器1030。适合于有形地体现计算机程序指令和数据的大容量存储器设备包括所有形式的非易失性存储器,通过示例的方式包括例如eprom、eeprom和闪存设备的半导体存储器设备;诸如内部硬盘和可移动盘的磁盘;磁光盘;以及cd-rom盘1040。前述的任意一个以由专门设计的asic(专用集成电路)补充或者被结合在专门设计的asic中。网络适配器1050管理到网络1060的接入。客户端计算机还可以包括诸如光标控制设备、键盘等的触觉设备1090。光标控制设备在客户端计算机中使用以允许用户选择性地将光标定位在显示器1080上的任意期望位置处。此外,光标控制设备允许用户选择各种命令并且输入控制信号。光标控制设备包括多个信号生成设备,用于向系统输入控制信号。典型地,光标控制设备可以是鼠标,鼠标的按钮用于生成信号。可选地或者此外,客户端计算机系统可以包括敏感垫和/或敏感屏幕。
[0145]
计算机程序可以包括可由计算机执行的指令,指令包括用于使得上述系统执行所述方法的单元。程序可以被记录在任意数据存储介质上,包括系统的存储器。程序可以例如被实现在数字电子电路中,或者被实现在计算机硬件、固件、软件或者它们的组合中。程序可以被实现为装置,例如有形地体现在机器可读存储设备中用于由可编程处理器执行的产
品。方法步骤可以由执行指令程序以通过对输入数据进行操作并且生成输出来执行该方法的功能的可编程处理器执行。处理器可以因而是可编程的并且耦合为从数据存储系统、至少一个输入设备和至少一个输出设备接收数据和指令并且向其传输数据和指令。应用程序可以以高级的面向过程或者面向对象的编程语言实现或者以汇编语言或机器语言实现(如果期望)。在任意情况下,语言可以是编译或者解释语言。程序可以是完全安装程序或者更新程序。程序在系统上的应用在任意情况下产生用于执行所述方法的指令。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献