CN113126861A - 3d视图的解锁 - Google Patents
3d视图的解锁 Download PDFInfo
- Publication number
- CN113126861A CN113126861A CN202011589337.2A CN202011589337A CN113126861A CN 113126861 A CN113126861 A CN 113126861A CN 202011589337 A CN202011589337 A CN 202011589337A CN 113126861 A CN113126861 A CN 113126861A
- Authority
- CN
- China
- Prior art keywords
- viewpoint
- view
- scene
- computer
- rotation
- 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.)
- Pending
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/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
- G06F3/04815—Interaction with a metaphor-based environment or interaction object displayed as three-dimensional, e.g. changing the user viewpoint with respect to the environment or object
-
- 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/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F3/04845—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range for image manipulation, e.g. dragging, rotation, expansion or change of colour
-
- 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
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/20—Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
- G06T7/73—Determining position or orientation of objects or cameras using feature-based methods
- G06T7/74—Determining position or orientation of objects or cameras using feature-based methods involving reference images or patches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2203/00—Indexing scheme relating to G06F3/00 - G06F3/048
- G06F2203/048—Indexing scheme relating to G06F3/048
- G06F2203/04802—3D-info-object: information is displayed on the internal or external surface of a three dimensional manipulable object, e.g. on the faces of a cube that can be rotated by the user
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2200/00—Indexing scheme for image data processing or generation, in general
- G06T2200/24—Indexing scheme for image data processing or generation, in general involving graphical user interfaces [GUIs]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2219/00—Indexing scheme for manipulating 3D models or images for computer graphics
- G06T2219/20—Indexing scheme for editing of 3D models
- G06T2219/2016—Rotation, translation, scaling
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)
- Computer Hardware Design (AREA)
- Architecture (AREA)
- Computer Graphics (AREA)
- Software Systems (AREA)
- Computer Vision & Pattern Recognition (AREA)
- User Interface Of Digital Computer (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明尤其涉及一种用于从3D场景的第一3D视图切换到3D场景的第二3D视图的计算机实现的方法。该方法包括:提供从3D场景的锁定的视点的平面显示的第一3D视图;检测包括该平面上的从第一位置到第二位置的滑动的连续的用户交互。该方法还包括:计算滑动行进的距离;将计算出的距离与预定距离进行比较;并且如果计算出的距离大于预定距离,则执行从第一3D视图到第二3D视图的切换。
Description
技术领域
本发明涉及计算机程序和***的领域,并且更具体地涉及用于从3D场景的第一3D视图切换到第二3D视图的方法、***和程序。
背景技术
提供对象的三维(3D)表示的应用越来越普遍。3D表示包括一个或多个3D对象。3D表示也被称为3D场景。3D对象和背景形成3D场景的图形元素。
3D场景可以包括用于创建3D场景的深度的印象的背景图像。背景可以是2D图像,并且该场景被称为2.5D场景或伪3D场景。仅根据一个视点就可以正确地看到伪3D场景。出于这个原因,伪3D场景上的视图被锁定,即,无法改变伪3D场景上的视点。
一些应用允许解锁伪3D场景上的视点,并向用户提供真实的3D场景。相反,应用允许将视点锁定在3D场景上,并向用户提供2.5D场景。因此,用户可以从2.5D世界切换到3D世界,并且可以相反地从3D世界切换到2.5D世界。
存在用于从伪3D场景切换到3D场景的若干种方法。第一种方法是提供可以由用户激活以触发从2.5D到3D的切换的图标。相同图标或另一个图标可以用于从3D切换到2.5D。然而,在人体工程学的方面,用户对该方法并不满意。首先,用户必须点击通常位于屏幕边框上的图标,这可能很麻烦。第二,在移动设备通常具有小屏幕的情况下显示图标并不是最佳做法:图标占用了显示器的过多的空间。第三,当与移动设备进行移动设备交互时,应避免点击图标,因为与手指大小相比,图标的大小较小。第四,用户无法在从2.5D切换到3D的过程中选择3D场景的视点。用户必须执行另一手势,这是很麻烦的。
第二种方法是提供用于触发切换的手势。通过按下键盘的键并同时点击鼠标来执行已知的手势。这些手势不能与移动设备一起使用或在触敏显示器上使用。此外,这些手势不允许用户在切换已经发生之前选择3D中的视点。
因此,根据上面简短讨论的现有解决方案的限制性,需要一种用于从3D场景的第一3D视图切换到第二3D视图的方法,该方法改进了人体工程学,并且可以在移动设备和触敏显示器两者上使用。
发明内容
因此,提供了一种用于从3D场景的第一3D视图切换到3D场景的第二3D视图的计算机实现的方法。该方法包括:
-提供从3D场景的锁定的视点的平面显示的第一3D视图;
-检测包括平面上的第一位置与平面上的第二位置之间的位移的连续的用户交互;
-针对第二位置的每次修改,计算平面上的第一位置与第二位置之间的距离;
-将计算出的距离与预定距离进行比较;以及
-如果计算出的距离大于预定距离,则从第一3D视图切换到第二3D视图。
该方法可以包括以下各项中的一个或多个:
-在比较之后,基于平面上的第一位置和第二位置来计算第二3D视图的视点;
-计算(S42)第二3D视图上的视点包括:计算计算出的距离与预定距离之间的比率的值;解锁锁定的视点;修改解锁的视点以形成第二3D视图的视点,对该解锁的视点的修改基于计算出的比率的值;
-如果计算出的比率的值被包括在P和Q之间,其中,P和Q为实数且P<Q,则开始显示锁定的视点的以第一旋转速度的旋转;-如果计算出的比率的值大于Q,则继续显示锁定的视点的以第二旋转速度的旋转;
-对3D场景的第一3D视图执行开始显示解锁的视点的旋转,并且对3D场景的第二3D视图执行继续显示锁定的视点的旋转;
-P=1,Q=2,并且第二旋转速度是第一旋转速度的10倍大;
-如果在计算出的比率的值被包括在P和Q之间时释放了连续的用户交互,则:停止锁定的视点的旋转,并且以第一旋转速度返回到锁定的视点;
-如果针对大于Q的比率的值释放了连续的用户交互,则:停止当前视点的旋转,并且将旋转的锁定的视点设置为第二3D视图上的视点;
-3D场景包括至少一个3D建模的对象,并且其中,锁定的视点的旋转是围绕以至少一个目标对象为中心的旋转轴执行的;
-预定距离被包括在显示提供的显示器的宽度的欧几里得距离的15%至30%之间。
还提供了一种计算机程序,其包括用于执行方法的指令。
还提供了一种其上记录有计算机程序的计算机可读存储介质。
还提供了一种***,其包括耦合到存储器的处理器和图形用户接口,该存储器上记录有计算机程序。该***可以包括用于接收和检测用户交互的触敏显示器。该***可以是智能电话或平板电脑。
附图说明
现在将通过非限制性示例的方式并参考附图来描述本发明的实施例,其中:
-图1示出了该方法的示例的流程图;
-图2示出了***的示例;以及
-图3至图5是该方法示例的屏幕截图。
具体实施方式
参考图1的流程图,提出了一种用于从3D场景的第一3D视图切换到3D场景的第二3D视图的计算机实现的方法。该方法包括提供第一3D视图。从3D场景的锁定的视点的平面显示该第一3D视图。该方法还提供检测包括平面上的第一位置与平面上的第二位置之间的位移的连续的用户交互。例如,用户交互是触敏显示器上的滑动。该方法还包括针对第二位置的每次修改计算平面上的第一位置与第二位置之间的距离。在检测到连续的用户交互时测量该距离。该方法还包括在计算出的距离与预定距离之间进行比较,并且,如果作为比较的结果,确定计算出的距离大于预定距离,则执行从第一3D视图到第二3D视图的切换。
这样的方法改进了3D场景的解锁。值得注意的是,该方法依赖于可以对移动设备、台式机以及具有触敏显示器的任何设备执行的手势,以在单个移动中解锁视图并改变视点位置/定向。进一步的优点将在下面讨论。
方法是计算机实现的。这意味着该方法的步骤(或基本上所有步骤)由至少一台计算机或任何类似***执行。因此,该方法的步骤由计算机执行,可能是全自动执行,或者是半自动执行。在示例中,可以通过用户计算机交互来执行对该方法的步骤中的至少一些步骤的触发。所要求的用户-计算机交互的水平可能取决于自动预见(automatism foreseen)的水平,并与实现用户意愿的需求保持平衡。在示例中,该水平可以是用户定义的和/或预定义的。
例如,检测连续的用户交互的步骤涉及用户对***执行动作。例如,连续的用户交互可以是利用诸如手指之类的附件或诸如触笔之类的设备执行的在触敏显示器上的滑动。
方法的计算机实现方式的典型示例是利用适用于目的的***执行该方法。***可以包括耦合到存储器的处理器和图形用户接口(GUI),该存储器上记录有计算机程序,该计算机程序包括用于执行该方法的指令。存储器还可以存储数据库。该存储器是适用于这种存储的任何硬件,其可能包括若干物理上不同的部分(例如,一个部分用于程序,并且可能一个部分用于数据库)。
该方法通常操纵3D场景上的视图。3D场景包括至少一个建模的对象。建模的对象是由例如存储在数据库中的数据定义的任何对象。引申开来,表述“建模的对象”表示数据本身。根据***的类型,可以通过不同种类的数据来定义建模的对象。执行本发明的***可以是能够渲染3D场景的任何计算机。在示例中,该***可以是CAD***、CAE***、CAM***、PDM***和/或PLM***的任何组合。在那些不同的***中,建模的对象由对应的数据定义。因此,可以提到CAD对象、PLM对象、PDM对象、CAE对象、CAM对象、CAD数据、PLM数据、PDM数据、CAM数据、CAE数据。然而,这些***并不是彼此排斥的,因为可以由与这些***的任何组合相对应的数据来定义建模的对象。因此,***很可能既是CAD***又是PLM***。
CAD***另外地意味着至少适用于基于建模的对象的图形表示来设计建模的对象的任何***,例如,CATIA。在这种情况下,定义建模的对象的数据包括允许表示建模的对象的数据。CAD***可以例如使用边或线(在某些情况下利用面或表面)来提供CAD建模的对象的表示。线、边或表面可以以各种方式(例如,非均匀有理B样条(NURBS))表示。具体地,CAD文件包含可以根据其生成几何形状的规格,该规格进而允许生成表示。建模的对象的规格可以存储在单个CAD文件中或多个CAD文件中。表示CAD***中的建模的对象的文件的典型大小在每零件一兆字节的范围内。并且建模的对象可以典型地是数千个零件的组装件。
建模的对象可以典型地是3D建模的对象,该3D建模的对象例如表示诸如零件或零件的组装件之类的产品,或者可能表示产品的组装件。“3D建模的对象”意味着由允许其3D表示的数据建模的任何对象。3D表示允许从各个角度查看零件。例如,当3D建模的对象以3D表示时,该3D建模的对象可以被处理并且围绕其轴中的任一个轴转动或围绕其上显示表示的屏幕中的任一个轴转动。值得注意的是,这不包括未进行3D建模的2D图标。3D表示的显示促进设计(即,提高设计者统计上完成他们的任务的速度)。例如,伪3D场景包括3D对象(例如,3D建模的对象)和2D图标。
3D建模的对象可以表示在利用例如CAD软件解决方案或CAD***完成其虚拟设计之后,要在现实世界中要制造的产品的几何形状,例如,(例如,机械)零件或零件的组装件(或零件的组装件的等效物,因为从方法的角度而言,零件的组装件可以看作是零件本身,或者方法可以独立地应用于组装件的每个零件),或者更一般地任何刚性体组装件(例如,移动机构)。CAD软件解决方案允许在不同且无限的工业领域中设计产品,工业领域包括:航空航天、建筑、建造、消费者商品、高科技设备、工业装置、运输、船舶和/或海上油/气生产或运输。因此,由方法设计的3D建模的对象可以表示工业产品,该工业产品可以是任何机械零件,例如,陆地车辆(包括例如汽车和轻型卡车装置、赛车、摩托车、卡车和机动车装置、卡车和公共汽车、火车)的零件、飞行器(包括例如机身装置、航空航天装置、推进装置、防卫产品、航空装置、航天装置)的零件、军舰(包括例如海军装置、商用船、海上装置、游艇和工作船、船舶装置)的零件、通用机械零件(包括例如工业制造机械、重型移动机械或装置、安装装置、工业装置产品、金属结构产品、轮胎制造产品)、机电或电子零件(包括例如消费者电子件、安全和/或控制和/或仪器产品、计算和通信装置、半导体、医疗设备和装置)、消费者商品(包括例如家具、家居和花园产品、休闲商品、时尚产品、硬商品零售商的产品、软商品零售商的产品)、包装(包括例如食品和饮料和烟草、美容和个人护理、家用产品包装)。
CAD***可以是基于历史的。在这种情况下,通过包括几何特征的历史的数据进一步定义建模的对象。建模的对象的确可以由自然人(即,设计者/用户)使用标准建模特征(例如,拉伸、转动、切割和/或倒圆)和/或标准表面特征(例如,扫掠、混合、放样、填充、变形和/或平滑化)来设计。支持这种建模功能的许多CAD***都是基于历史的***。这意味着设计特征的创建历史典型地通过非循环数据流保存,该非循环数据流通过输入链接和输出链接将所述几何特征链接在一起。自80年代初以来,基于历史的建模范例是公知的。建模的对象由以下两个持久数据表示描述:历史和B-rep(即,边界表示(boundaryrepresentation))。B-rep是历史中定义的计算的结果。当表示建模的对象时,显示在计算机的屏幕上的零件的形状为B-rep(例如,B-rep的曲面细分)。零件的历史就是设计意图。基本上,历史记录收集关于建模的对象已经经历的操作的信息。B-rep可以与历史记录一起保存,以使其更容易显示复杂的零件。历史记录可以与B-rep一起保存,以便允许根据设计意图对零件进行设计改变。
图2示出了***的示例,其中该***是客户端计算机***,例如,用户的工作站。
该示例的客户端计算机包括连接至内部通信总线1000的中央处理单元(CPU)1010、也连接至总线的随机存取存储器(RAM)1070。客户端计算机还被提供有图形处理单元(GPU)1110,该GPU 1110与连接到总线的视频随机存取存储器1100相关联。视频RAM 1100在本领域中也被称为帧缓冲器。大容量存储设备控制器1020管理对大容量存储器设备(例如,硬盘驱动器1030)的访问。适合于有形地体现计算机程序指令和数据的大容量存储器设备包括所有形式的非易失性存储器,通过示例的方式,大容量存储器设备包括:半导体存储器设备,例如,EPROM、EEPROM和闪速存储器设备;磁盘,例如,内部硬盘和可移除盘;磁光盘;和CD-ROM盘1040。前述内容中的任一项可以通过专门设计的ASIC(专用集成电路)进行补充或并入专门设计的ASIC。网络适配器1050管理对网络1060的访问。客户端计算机还可以包括触觉设备1090,例如,光标控制设备、键盘等。在客户端计算机中使用光标控制设备以允许用户将光标选择性地定位在显示器1080上的任何期望位置。另外地,光标控制设备允许用户选择各种命令并且输入控制信号。光标控制设备包括用于将控制信号输入到***的多个信号生成设备。典型地,光标控制设备可以是鼠标,该鼠标的按钮用于生成信号。可替代地或另外地,客户端计算机***可以包括敏感垫和/或敏感屏幕。
计算机程序可以包括可由计算机执行的指令,该指令包括用于使得上面的***执行方法的单元。程序可以是可记录在任何数据存储介质(包括***的存储器)上的。程序可以例如以数字电子电路或计算机硬件、固件、软件或其组合来实现。程序可以被实现为装置,例如,有形地体现在机器可读存储设备中以由可编程处理器执行的产品。方法步骤可以这样执行:通过可编程处理器执行指令的程序以通过对输入数据进行操作并且生成输出来执行方法的功能。因此,处理器可以是可编程的并且被耦合以从数据存储***、至少一个输入设备和至少一个输出设备接收数据和指令,并且向数据存储***、至少一个输入设备和至少一个输出设备发送数据和指令。如果期望的话,可以以高级过程语言或面向对象的编程语言或汇编或机器语言来实现应用程序。在任何情况下,语言可以是编译语言或解释语言。程序可以是完整的安装程序或更新程序。在任何情况下,程序在***上的应用会导致用于执行方法的指令。
方法可以被包括在制造过程中,该制造过程可以包括在执行该方法之后产生与建模的对象相对应的物理产品。在任何情况下,通过该方法设计的建模的对象都可以表示制造对象。因此,建模的对象可以是建模的实体(即,表示实体的建模的对象)。制造对象可以是产品,例如,零件或零件的组装件。
返回参考图1,现在讨论该方法的示例。提供3D场景(S10)。这意味着***可以访问3D场景的数据并对这些数据执行计算。
3D场景是定向的3D空间(例如,具有参考框架),使得3D场景中的每个对象具有相对于3D场景的位置。3D场景包括至少一个建模的对象,其典型地为3D建模的对象。
提供3D场景的第一3D视图(S10)。从3D场景的锁定的视点的平面显示第一3D视图。这意味着从其获得视点的相机位于平面上。平面位于3D空间中,相机具有在3D场景中的一个位置(也被称为3D位置),因此锁定的视点具有3D位置。
从3D场景的锁定的视点的平面显示3D场景的第一3D视图。如果3D场景包括2D图像(即,3D场景包括2D对象),该2D图像是3D空间中的2D平面,则可能会发生以下情况:相机位于可能与2D图像的2D平面平行的平面中。例如,这允许2D图像的3D视图不失真。
在示例中,从3D场景的锁定的视点的平面和3D目标位置显示3D场景的第一3D视图。3D目标位置是相机在平面上的位置。例如,在3D场景包括2D图像的情况下,可以将相机放置在平行于2D图像的2D平面的平面上的特定3D位置(3D目标位置)处。这有助于限制在第一3D视图中的2D图像的失真的影响。
在示例中,可以通过在3D场景中选择将用作目标对象的3D建模的对象来获得3D目标位置。一旦选择了3D建模的对象,就将相机放置在3D场景的锁定的视点的平面上,使得第一3D视图在3D场景的中心显示目标对象。相机因此朝向目标对象定向。必须理解,表述“3D场景的中心”可以涵盖其中目标对象没有在第一3D视图中精确地处于中心而是合理地处于中心的情况。相机在3D场景的锁定的视点的平面上的该位置被称为3D目标位置。
目标对象的选择可以由用户执行;用户通过执行选择操作(例如,用户点击目标对象)来选择对象。该选择可以由***自动执行。如果3D场景仅包括一个对象,则选择是直截了当的。如果3D场景包括两个或更多个3D建模的对象,则选择包括计算3D场景的3D建模的对象的平均中心,并且将该平均中心用作“虚拟目标对象”。可以通过使用3D场景中的3D建模的对象之间的欧几里得距离来获得平均中心。
可以确定目标对象的中心以用于在3D场景的中心中显示目标对象;因此,处于3D目标位置处的相机朝向目标对象的中心定向。可以通过使用目标对象的边界框来计算目标对象的中心。如本领域中已知的,边界框可以是完全包围目标物体的平行六面体。更一般地,边界框可以是边界体积。如果3D场景包括多个3D对象,则可以将3D对象的边界框用于计算“虚拟目标对象”:将3D对象的边界框的中心用于计算平均中心。可替代地,并且作为另一示例,可以将3D场景中的3D对象的集合包围在一个主边界体积(例如,边界框)中,该主边界框提供可以用于确定目标对象在3D场景的中心的显示的中心。
现在参考图3,现在讨论提供(S10)的示例。在该示例中,提供包括例如在图形用户接口(GUI)中显示3D场景。3D场景30包括两个对象。第一对象是2D图像,表示花园的视图。第二对象32是3D建模的对象,其为平行六面体。该3D场景是伪3D场景,因为它是2D(此处形成背景)和3D表示的混合。该3D场景上的视图被称为第一3D视图。从3D场景的锁定的视点的平面和3D目标位置显示该第一3D视图。该平面与表示花园的背景2D图像平行,并且平行六面体是目标对象。最初以目标对象为中心的第一3D视图已经由于相机(在平面中)的左平移而向右移动。
该3D场景与具有标准菜单栏的工具栏34以及底部和侧边工具栏(未示出)一起提供。这样的菜单栏和工具栏包含一组用户可选择的图标,每个图标与一个或多个操作或功能相关联,如本领域中已知的。这些图标中的一些与软件工具相关联,该软件工具适用于编辑GUI中显示的3D建模的对象32和/或在其上进行工作。可以将软件工具分组为工作台(workbench)。每个工作台包括软件工具的子集。特别地,工作台中的一个是编辑工作台,其适用于编辑建模的产品的几何特征。在操作中,设计者可以例如预先选择对象的一部分,然后通过选择适当的图标来发起操作(例如,改变尺寸、颜色等)或编辑几何约束。例如,典型的CAD操作是对显示在屏幕上的3D建模的对象的打孔或折叠进行建模。GUI可以例如显示与所显示的产品相关的数据。GUI可以进一步示出各种类型的图形工具,例如,以用于触发对所编辑的产品的操作的仿真或对所显示的产品的各种属性的渲染。可以通过触觉设备控制在锁定的视点的平面上的位置36a处的光标,以允许用户与图形工具进行交互。触觉设备可以是鼠标、显示器(如果该显示器是触敏显示器)等等。
返回参考图1,***检测到(S20)连续的用户交互。连续的用户交互包括平面上的第一位置与平面上的第二位置之间的位移。用户交互可以是利用诸如手指之类的附件或诸如触笔之类的设备执行的在触敏显示器上的滑动。在滑动期间,附件与触敏显示器持续地接触,例如,附件在触敏显示器上从第一位置到第二位置保持与触敏屏的接触。可以利用控制光标的触觉设备来执行用户交互;用户在移动触觉设备的同时保持按住触觉设备的按钮。要理解的是,可以执行任何其他连续的用户交互。
平面上的第一位置是已经开始连续的用户交互的位置。平面上的第二位置是平面上的已经检测到连续的用户交互的位置。
第二位置可以是平面上的用户停止执行连续的用户交互的位置,例如,手指不再与触敏显示器接触的位置或者用户已经释放了触觉设备的按钮的位置。
第二位置可以是平面上的用户已经停止移位用户交互的位置,例如,用户在保持手指与触敏显示器接触的同时不再移动其手指的位置、用户停止了移动光标的触觉动作但是仍然保持按住按钮的位置。要理解的是,如果位移再次从第二位置开始并且与先前的位移有连续性(例如,手指保持在显示器上、保持按住按钮),则***将先前的位移和当前位移视为形成一个单一的位移。
在3D场景的锁定的视点的平面上执行位移。换言之,在与相机被锁定的同一平面上执行位移。在用户执行位移的同时,计算S30平面上的第一位置与第二位置之间的距离。该距离可以是锁定的视点的平面上的欧几里得距离。因此,当第二位置移开第一位置时,距离增加,并且如果第二位置靠近第一位置,则距离减小。距离的计算是在用户例如针对当用户执行手势时***检测到的每个第二位置执行位移后进行的。
接下来,在S40处,在计算出的距离与预定距离之间执行比较。要理解的是,比较距离的值。在每次计算距离之后进行比较:针对第一位置与第二位置之间的每个获取的距离执行比较。
比较是确定连续的用户交互在平面上的行进是否超过被称为预定距离的阈值的测试。如果计算出的距离不大于预定距离,则什么也不发生。如果计算出的距离大于预定距离,则执行从3D场景的第一3D视图到第二3D视图的切换S50。切换触发相机在3D场景中的移动:锁定的视点被解锁。这种比较改进了人体工程学,因为只有在连续的用户交互作用下行进了最小距离时才触发切换:太小或非自愿的位移不会触发切换。表述“大于”可以意味着“大于或等于”(≥)或“大于”(>)。
在示例中,从第一3D视图切换到第二3D视图可以包括在平面上移动相机;第一3D视图的视点被解锁,但仍保留在平面上。
在示例中,3D场景的第二3D视图可以仅是关于3D对象的3D视图。这涉及如果3D场景上的第一视图包括2D元素,则将这些元素从3D场景中移除或将其显示为3D对象(例如,作为3D场景中的平面)。例如,图标(2D对象)可能被表示为3D空间中的2D表面。
在示例中,可以基于平面上的第一位置和第二位置来计算S42第二3D视图的视点。这意味着,平面上的第一位置与第二位置之间的距离和/或第二位置相对于第一位置的相对位置用于确定第二3D视图。可以在比较S40之后和/或在切换S50之后执行计算S42。在第一示例中,相机的位置的位移与所测量的距离成比例。在第二示例中,相机在平面上的移动的方向与第一位置与第二位置之间的位移的方向相同。在第三示例中,第一示例和第二示例被组合。在第四示例中,锁定的视点(通过锁定的相机获得)在3D场景中执行旋转。在基于第四示例的第五示例中,围绕定义旋转轴的目标对象执行旋转。在第六示例中,第一示例和/或第四示例和/或第五示例被组合。
在示例中,获得计算出的距离与预定距离之间的比率,以用于计算第二3D视图上的视点。比率的使用改进了人体工程学,因为用户交互需要较少的距离来计算第二3D视图的视点。在这些示例中,计算计算出的距离与预定距离之间的比率的值。可以在执行用户交互时(例如,当第二位置从第一位置移开或靠近第一位置时)计算该值,要理解的是,该计算是在比较S40之后执行的。然后,对第一3D视图上的锁定的视点进行解锁和修改以形成第二3D视图的视点,对锁定的视点的修改是基于计算出的比率的值。可以在执行用户交互时执行对锁定的视点的修改。可替代地,可以在执行切换之后执行对锁定的视点的修改。
当在执行用户交互时修改锁定的视点时,可以针对第二位置的每个检测到的位置来修改3D场景上的第一3D视图,并且可以显示针对每个检测到的位置的每次修改。这为用户提供了他们手势的实时图形反馈。
在示例中,比率的值可以用于计算根据两个旋转速度执行的锁定的视点的旋转。在示例中,如果计算出的比率的值被包括在P和Q之间,其中P和Q为实数且P<Q,则开始锁定的视点的以第一旋转速度的旋转。显示锁定的视点的改变。如果计算出的比率的值大于Q,则将继续显示锁定的视点的旋转,但以第二旋转速度显示。因此,该比率的值的增加可以控制三种状态:当该值不大于第一阈值P时什么也不发生;当达到第一阈值而未达到第二阈值Q时,锁定的视点被解锁并且开始被施加以第一旋转速度的旋转;当超过第二阈值Q时,将旋转速度改变为第二旋转速度。用户因此接收***所感知的手势的状态的视觉反馈。由于用户可以理解***何时准备好从第一视图切换到第二视图,因此这可以改进与***的交互。
在示例中,该比率的值是P=1且Q=2,并且第二旋转速度是第一旋转速度的10倍大。这改进了用户与***的交互。当该比率的值被包括在1和2之间时,第一3D视图的解锁的视点缓慢旋转,从而指示如果第一位置与第二位置之间的距离继续增加,则***处于准备好执行切换的状态。一旦达到值Q=2,就向用户显示第二视图,并且第二视图的解锁的视点的旋转可以以第二旋转速度继续。
在示例中,以第一旋转速度或第二旋转速度施加的旋转与第一位置和第二位置之间的距离成比例。这意味着旋转的角度随着距离(S30)的增加而逐渐增加。
在示例中,旋转的角度与计算出的距离(S30)之间的比例关系允许在第一距离与第二距离之间的距离减小的情况下施加反向旋转角度。例如,在切换之后,用户可以自由地旋转第二3D视图的视点,以配置第二3D视图的期望的解锁的视点。
如已经讨论的,用户交互是连续的;***会持续地检测交互。例如,***可以检测到用户已经停止了交互。换言之,释放了连续的用户交互。在这种情况下,如果尚未执行切换(S50),则仍向用户显示锁定的3D视图,或者如果视点已经被临时解锁,则在返回该视点的初始位置(第一3D视图的视点)后将再次锁定第一3D场景的视点。
在示例中,如果在计算出的比率的值被包括在P和Q之间时释放了连续的用户交互,则可以停止解锁的视点的旋转(即,不再受用户动作控制),并且解锁的视点可以返回其初始位置作为3D场景的第一3D视图的锁定的视点。可以显示返回到初始解锁的位置,例如,可以以第一旋转速度且通过施加反向旋转角度来执行该操作:对于用户而言,返回初始锁定的视点不那么突然,因此改进了针对用户的人体工程学。
在示例中,针对大于Q的比率的值,释放连续的用户交互,当前视点的旋转可以停止。然而,已经执行了切换S50,将旋转的解锁的视点设置为第二3D视图的视点。
已经讨论了具有旋转第一3D视图的解锁的视点的方法的示例。围绕位于3D场景中的旋转轴来执行旋转。用于执行旋转的计算可以如本领域中已知的那样进行。现在讨论轴的计算。在先前示例中(即,上述第五示例中),围绕定义旋转轴的目标对象执行旋转。可以如先前讨论的那样执行对目标对象的选择。要理解的是,在3D场景包括两个或更多个虚拟对象的情况下,可以使用“虚拟目标对象”。旋转轴可以被定义为以至少一个目标对象为中心。这意味着旋转轴包括目标对象的中心(或“虚拟目标对象”的中心)。在示例中,可以通过使用目标对象的边界框来计算目标对象的中心。可以在边界框上限定至少三个轴,每个轴穿过边界框的中心和两个相对面的中间。***可以选择默认轴,例如,其方向最接近定向的3D空间的主定向的轴。如果3D场景利用参考框架进行定向,则***选择的旋转轴可以是相对于3D场景的主方向具有最接近方向的旋转轴,或者是相对于参考框架提供的三个主方向中的一个具有最接近方向的旋转轴。要理解的是,可以使用其他标准来执行旋转轴的自动选择。
在示例中,可以根据用户动作(例如,在检测S20之前)来选择预定距离。
在示例中,可以根据执行方法的***的显示器的特性来计算预定距离。例如,预定距离被包括在显示器的宽度的欧几里得距离的15%至30%之间。在示例中,预定距离代表显示器的宽度的大约20%。要理解的是,也可以使用长度、对角线,例如,预定距离被包括在显示器的长度的欧几里得距离的15%至30%之间。根据显示器的特性来计算预定距离确保解锁的距离始终可用,无论设备的定向如何,例如,智能电话或平板电脑可以水平或垂直处理。
用户交互是连续的,第一位置是不改变的。取决于用户动作,只有第二位置可以改变。***在任何时候都知道第二用户交互位于何处。***会定期检查第二位置的位置。取决于***,检查频率可能会有所不同。在示例中,如果第二位置在两次检查之间不改变,则不执行该方法的后续步骤。在示例中,如果第二位置在两次检查之间已经改变,则执行后续步骤。
现在参考图3至图5示出该方法的示例。已经讨论了图3,并且图3示出了提供S10的示例。3D场景的第一视图的显示完成后,用户开始进行用户交互以触发从3D场景上的第一视图到第二视图的切换。第一位置是光标在3D场景的锁定的视点的平面上的位置36a。锁定的视图的平面与表示花园的背景图像平行。现在参考图4,用户已经将光标从第一位置36a移位到2.5D场景中的第二位置36b。第一位置可以有助于定义最终定向。实际上,第一位置36a在右上角,因此可用于移动的最大空间是在图的左侧的方向上。在光标从第一位置36a到第二位置36b的位移期间,计算计算出的距离与预定距离之间的比率的值。当比率的值超过或等于1时,将解锁3D场景上的第一视图。虽然该比率的值被包括在1和2之间,但解锁3D视图的相机围绕根据目标对象32的边界框定义的轴旋转。旋转与第一位置和第二位置之间的距离成比例,并且因此与比率成比例。仅出于解释的目的,轴33在图4中示出为线。要理解的是,轴可以通过用作旋转轴的点(其具有3D场景中的3D坐标)在3D场景中实体化。用户可以前后移位光标。因此,当比率被包括在0和2之间时,第一3D视图的解锁的视点根据连续的用户交互而旋转,并且如果用户释放了连续的用户交互,则再次显示锁定的3D视图,如图3上示出的。因此,一旦比率已经达到等于1的比率的值,用户就可以通过释放用户交互来取消手势。在该部分取消手势期间使用的第一旋转速度为用户提供了手势阻力的效果,因此,如果第一位置和第二位置之间的距离增加,则通知用户***准备好触发切换。针对被包括在P和Q之间的比率的手势的一部分允许用户准备第二3D视图中的视点,从而允许用户准备获取第二3D视图的期望的视点。
图5是在切换S50之后已经获得的3D场景的所显示的第二3D视图的表示。第二3D视图没有图3和图4的2D约束。实际上,已经从3D场景中移除了2D背景图像(花园),使得3D场景仅包括3D对象——平行六面体32。有趣的是,如果在切换后保持用户交互,则仍然可以配置3D视图上的解锁的视点,直到用户停止用户交互(例如,用户对第二3D视图的解锁的视点感到满意)为止。在切换之后,随着旋转速度的提高,用户可以更快地选择期望的视点,从而提高了人体工程学。一旦用户交互停止,视点将保持其最后位置,如图5所表示的。
Claims (14)
1.一种用于从3D场景的第一3D视图切换到所述3D场景的第二3D视图的计算机实现的方法,所述方法包括:
-提供(S10)从所述3D场景的锁定的视点的平面显示的所述第一3D视图;
-检测(S20)包括所述平面上的第一位置与所述平面上的第二位置之间的位移的连续的用户交互;
-针对所述第二位置的每次修改,计算(S30)所述平面上的所述第一位置与所述第二位置之间的距离;
-将计算出的距离与预定距离进行比较(S40);以及
-如果所述计算出的距离大于所述预定距离,则从所述第一3D视图切换(S50)到所述第二3D视图。
2.根据权利要求1所述的计算机实现的方法,还包括在所述比较之后:
-基于所述平面上的所述第一位置和所述第二位置来计算(S42)所述第二3D视图的视点。
3.根据权利要求2所述的计算机实现的方法,其中,所述计算(S42)所述第二3D视图上的视点包括:
-计算所述计算出的距离与所述预定距离之间的比率的值;
-解锁所述锁定的视点;
-修改解锁的视点以形成所述第二3D视图的所述视点,对所述解锁的视点的所述修改基于计算出的比率的值。
4.根据权利要求3所述的计算机实现的方法,其中:
-如果所述计算出的比率的值被包括在P和Q之间,其中,P和Q为实数且P<Q,则开始显示所述锁定的视点的以第一旋转速度的旋转;
-如果所述计算出的比率的值大于Q,则继续显示所述锁定的视点的以第二旋转速度的旋转。
5.根据权利要求4所述的计算机实现的方法,其中,对所述3D场景的所述第一3D视图执行开始显示所述解锁的视点的旋转,并且对所述3D场景的所述第二3D视图执行继续显示所述锁定的视点的旋转。
6.根据权利要求4至5中任一项所述的计算机实现的方法,其中,P=1,Q=2,并且所述第二旋转速度是所述第一旋转速度的10倍大。
7.根据权利要求4至6中任一项所述的计算机实现的方法,其中,如果在所述计算出的比率的值被包括在P和Q之间时释放了所述连续的用户交互,则:
-停止所述锁定的视点的所述旋转;并且
-以所述第一旋转速度返回到所述锁定的视点。
8.根据权利要求4至7中任一项所述的计算机实现的方法,其中,如果针对大于Q的比率的值释放了所述连续的用户交互,则:
-停止当前视点的旋转;并且
-将旋转的锁定的视点设置为所述第二3D视图上的所述视点。
9.根据权利要求4至8中任一项所述的计算机实现的方法,其中,所述3D场景包括至少一个3D建模的对象,并且其中,所述锁定的视点的所述旋转是围绕以至少一个目标对象为中心的旋转轴执行的。
10.根据权利要求1至9中任一项所述的计算机实现的方法,其中,所述预定距离被包括在显示所述提供(S10)的显示器的宽度的欧几里得距离的15%至30%之间。
11.一种计算机程序,包括用于执行根据权利要求1-10中任一项所述的方法的指令。
12.一种计算机可读存储介质,其上记录有根据权利要求11所述的计算机程序。
13.一种***,包括耦合到存储器的处理器和显示器,所述存储器上记录有根据权利要求11所述的计算机程序。
14.根据权利要求13所述的***,其中,所述显示器是用于接收和检测用户交互的触敏显示器。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP19306789.9 | 2019-12-30 | ||
EP19306789.9A EP3846014A1 (en) | 2019-12-30 | 2019-12-30 | Unlock of a 3d view |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113126861A true CN113126861A (zh) | 2021-07-16 |
Family
ID=69185276
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011589337.2A Pending CN113126861A (zh) | 2019-12-30 | 2020-12-29 | 3d视图的解锁 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11803287B2 (zh) |
EP (1) | EP3846014A1 (zh) |
JP (1) | JP2021111377A (zh) |
CN (1) | CN113126861A (zh) |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6426745B1 (en) * | 1997-04-28 | 2002-07-30 | Computer Associates Think, Inc. | Manipulating graphic objects in 3D scenes |
JP4203779B2 (ja) * | 1999-03-15 | 2009-01-07 | ソニー株式会社 | 表示要素立体化装置及びその方法 |
US8773425B2 (en) * | 2007-05-01 | 2014-07-08 | M.E.P. CAD Inc. | Methods and apparatuses for proposing resolutions to conflicts in a CAD drawing with reflections |
US8212812B2 (en) * | 2007-05-21 | 2012-07-03 | Siemens Corporation | Active shape model for vehicle modeling and re-identification |
US9250798B2 (en) * | 2011-01-24 | 2016-02-02 | Apple Inc. | Device, method, and graphical user interface with a dynamic gesture disambiguation threshold |
US8368723B1 (en) * | 2011-07-14 | 2013-02-05 | Google Inc. | User input combination of touch and user position |
US9324188B1 (en) * | 2012-04-30 | 2016-04-26 | Dr Systems, Inc. | Manipulation of 3D medical objects |
US10127722B2 (en) * | 2015-06-30 | 2018-11-13 | Matterport, Inc. | Mobile capture visualization incorporating three-dimensional and two-dimensional imagery |
US9829996B2 (en) * | 2012-06-25 | 2017-11-28 | Zspace, Inc. | Operations in a three dimensional display system |
GB2503654B (en) * | 2012-06-27 | 2015-10-28 | Samsung Electronics Co Ltd | A method and apparatus for outputting graphics to a display |
US9791897B2 (en) * | 2012-06-29 | 2017-10-17 | Monkeymedia, Inc. | Handheld display device for navigating a virtual environment |
US8732624B2 (en) * | 2012-09-20 | 2014-05-20 | Google Inc. | Protection for unintentional inputs |
US20140282161A1 (en) * | 2013-03-13 | 2014-09-18 | Honda Motor Co., Ltd. | Gesture-based control systems and methods |
US20140313203A1 (en) * | 2013-04-19 | 2014-10-23 | KTS Solutions, LLC | Virtual Structural Staging System and Method of Use |
US9181760B2 (en) * | 2013-07-24 | 2015-11-10 | Innovations, Inc. | Motion-based view scrolling with proportional and dynamic modes |
EP3040946B1 (en) * | 2014-12-30 | 2019-11-13 | Dassault Systèmes | Viewpoint selection in the rendering of a set of objects |
US11030810B1 (en) * | 2017-09-13 | 2021-06-08 | Lucasfilm Entertainment Company Ltd. | Shared mixed-reality environments responsive to motion-capture data |
US10417833B2 (en) * | 2017-11-06 | 2019-09-17 | Adobe Inc. | Automatic 3D camera alignment and object arrangment to match a 2D background image |
US10650610B2 (en) * | 2018-05-04 | 2020-05-12 | Microsoft Technology Licensing, Llc | Seamless switching between an authoring view and a consumption view of a three-dimensional scene |
US10949978B2 (en) * | 2019-01-22 | 2021-03-16 | Fyusion, Inc. | Automatic background replacement for single-image and multi-view captures |
-
2019
- 2019-12-30 EP EP19306789.9A patent/EP3846014A1/en active Pending
-
2020
- 2020-12-21 JP JP2020211255A patent/JP2021111377A/ja active Pending
- 2020-12-28 US US17/135,239 patent/US11803287B2/en active Active
- 2020-12-29 CN CN202011589337.2A patent/CN113126861A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
US11803287B2 (en) | 2023-10-31 |
JP2021111377A (ja) | 2021-08-02 |
US20210200421A1 (en) | 2021-07-01 |
EP3846014A1 (en) | 2021-07-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11733851B2 (en) | Generation of a color of an object displayed on a GUI | |
CA2776644C (en) | Method for designing a geometrical three-dimensional modeled object | |
CN105844711B (zh) | 在细分曲面上雕刻2d图像 | |
JP6823424B2 (ja) | 3次元モデル化オブジェクトの比較 | |
US11087051B2 (en) | Designing a multi-physics system | |
EP3674930B1 (en) | Designing a mechanical part | |
EP3761211A1 (en) | Designing a part featuring a bump | |
CN113126861A (zh) | 3d视图的解锁 | |
US11941773B2 (en) | Method for designing a three-dimensional mesh in a 3D scene | |
EP4202622A1 (en) | Setting typed parameter | |
US20210200322A1 (en) | Selection of a face with an immersive gesture in 3d modeling | |
EP4016465A1 (en) | Method for designing a 3d object by using a virtual 3d grid and hand drawn sketches |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |