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

三维模型构件的拾取方法、装置、设备及存储介质与流程

2022-11-02 03:00:11 来源:中国专利 TAG:


1.本发明涉及建筑信息化技术领域,具体涉及一种三维模型构件的拾取方法、装置、设备及存储介质。


背景技术:

2.建筑信息模型(bim)是建筑学、工程学以及土木工程的新工具,用以表示以三维图形为主、物件导向、建筑学有关的电脑辅助设计。bim技术通过对建筑的数据化、信息模型整合,在提高生产效率、节约成本和缩短工期方面发挥重要作用。它具备可视化、协调性、模拟性、优化性、可出图性五个特点。webgl是一种3d绘图协议,webgl可以实现在浏览器里更流畅地展示3d场景和建筑信息模型,而无需浏览器插件的支持。
3.基于webgl的bim引擎在显示bim模型时,需要根据鼠标点击对bim模型进行拾取和操作。而当用户有意愿点选,但鼠标位置接近却并未完全落入bim模型的屏幕像素范围内时,则无法选中目标模型。


技术实现要素:

4.针对以上现有技术的缺陷,本发明提供一种三维模型构件的拾取方法、装置、设备及存储介质,利用射线检测法结合屏幕投影法的方式,实现在距离鼠标点击位置一预设像素距离范围内能够拾取三维模型,以提高用户拾取三维模型的准确度并降低操作难度。
5.为实现上述目的,本发明的实施例提供了一种三维模型构件的拾取方法,所述方法包括:基于拾取点位置构建检测射线,并确定所述检测射线与待拾取的三维模型构件是否相交;若确定所述检测射线与所述待拾取的三维模型构件不相交,则根据预设规则获取所述待拾取的三维模型构件的第一模型子构件组;将所述第一模型子构件组投影至显示平面以获得第二模型子构件组;确定所述显示平面中的拾取点位置与所述第二模型子构件组中的至少一个子构件之间的距离是否小于预设阈值;以及若所述显示平面中的拾取点位置与所述第二模型子构件组中的至少一个子构件之间的距离小于预设阈值,则拾取所述待拾取的三维模型构件。
6.所述确定所述检测射线与待拾取的三维模型构件是否相交进一步包括:判断所述待拾取的三维模型构件是否存在包围盒;若所述待拾取的三维模型构件存在所述包围盒,则获取所述包围盒并判断所述检测射线与所述包围盒是否相交;以及若所述待拾取的三维模型构件不存在包围盒,或者所述待拾取的三维模型构件存在包围盒但判断出所述检测射线与所述包围盒不相交,则确定所述检测射线与所述待拾取的三维模型构件不相交。
7.进一步地,若下列中至少一项存在,则判断所述待拾取的三维模型构件不存在包围盒:所述待拾取的三维模型构件为具有单个顶点的点状构件;或在所述待拾取的三维模型构件为具有两个顶点的线状构件的情况下,所述线状构件与预设多个平面的至少一个平面平行。
8.所述方法进一步包括:在存在所述包围盒且判断出所述检测射线与所述包围盒相
交的情况下,判断所述待拾取的三维模型构件的顶点连线所组成的多边形与所述检测射线是否相交。
9.判断所述待拾取的三维模型构件的顶点连线所组成的多边形与所述检测射线是否相交包括:判断所述待拾取的三维模型构件的任意三个顶点的连线所组成的三角形与所述检测射线是否相交;以及若所有由任意三个顶点的连线所组成的三角形与所述检测射线都不相交,则确定所述检测射线与所述待拾取的三维模型构件不相交。
10.根据预设规则获取所述待拾取的三维模型构件的第一模型子构件组进一步包括:根据待拾取的三维模型构件的索引数据获取第一模型子构件组,其中:当待拾取的三维模型构件仅包括具有单个顶点的点状子构件或具有两个顶点的线状子构件时,所述第一模型子构件组分别为所述点状子构件或所述线状子构件;以及当待拾取的三维模型构件包括除点状子构件或线状子构件以外的三维模型子构件时,所述第一模型子构件组包括根据所述索引数据对待拾取的三维模型构件进行拆分后所形成的具有两个顶点的线状子构件的组合。
11.本发明的实施例还提供了一种三维模型构件的拾取装置,所述装置包括:获取模块,用于在确定检测射线与待拾取的三维模型构件不相交的情况下,根据预设规则获取所述待拾取的三维模型构件的第一模型子构件组;投影模块,用于将所述第一模型子构件组投影至显示平面以获得第二模型子构件组;以及确定模块,用于当确定所述显示平面中的拾取点位置与所述第二模型子构件中的至少一个子构件之间的距离小于预设阈值时,拾取所述待拾取的三维模型构件。进一步地,所述装置还包括判断模块,用于基于拾取点位置构建检测射线,并确定所述检测射线与待拾取的三维模型构件是否相交。
12.本发明的实施例还提供了一种计算机设备,包括存储器、处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以上任一实施例所述的三维模型构件的拾取方法的步骤。
13.本发明的实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以上任一实施例所述的三维模型构件的拾取方法的步骤。
14.本发明的优点在于,通过利用射线检测法结合屏幕投影法的方式,实现在距离鼠标点击位置一预设像素距离范围内能够拾取三维模型,特别是当该三维模型仅为点状或线段构件时,能够拾取该三维模型构件,以提高用户拾取三维模型的准确度并降低操作难度。
附图说明
15.下面结合附图,通过对本发明的具体实施方式详细描述,将使本发明的技术方案及其它有益效果显而易见。
16.图1示出了本发明的第一实施例所提供的三维模型构件的拾取方法的流程示意图。
17.图2示出了本发明的第一实施例所提供的三维模型构件的拾取方法的又一流程示意图。
18.图3至图6分别示出了本发明的第一实施例所提供的三维模型构件的拾取方法的应用场景一至场景四的示意图。
19.图7示出了本发明的第二实施例所提供的三维模型构件的拾取装置的结构示意
图。
20.图8示出了本发明的实施例提供的计算机设备的结构示意图。
具体实施方式
21.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
22.本发明的说明书和权利要求书以及附图中的术语“第一”“第二”“第三”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应当理解,这样描述的对象在适当情况下可以互换。在本发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体地限定。此外,术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排它的包含。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件电路或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
23.在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接或可以相互通讯;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
24.为使本发明的目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
25.图1示出了本发明的第一实施例所提供的三维模型构件的拾取方法的流程示意图。本实施例提供的三维模型构件的拾取方法,可以适用于计算机设备中。所述计算机设备可以为智能手机、平板电脑、笔记本电脑、台式电脑或个人数字助理等具有安装绘图应用程序的电子设备,本实施例对计算机设备的具体形式不做限定。
26.另外,本发明第一实施例提供的三维模型构件的拾取方法,其执行主体可以是如第二实施例提供的三维模型构件的拾取装置,所述装置可以通过软件、硬件或者软硬件结合的方式实现成为计算机设备的部分或者全部。下述方法实施例的执行主体以计算机设备为例来进行说明,以实现例如在webgl环境下,能够在距鼠标点击位置一预设像素距离范围内拾取三维模型构件,以提高用户拾取三维模型构件的准确度并降低操作难度。
27.参考图1,本发明的第一实施例所提供的三维模型构件的拾取方法包括以下步骤:
28.步骤s10,基于拾取点位置构建检测射线,并确定所述检测射线与待拾取的三维模型构件是否相交;
29.步骤s20,若确定所述检测射线与所述待拾取的三维模型构件不相交,则根据预设规则获取所述待拾取的三维模型构件的第一模型子构件组;
30.步骤s30,将所述第一模型子构件组投影至显示平面以获得第二模型子构件组;
31.步骤s40,确定所述显示平面中的拾取点位置与所述第二模型子构件组中的至少
一个子构件之间的距离是否小于预设阈值;
32.步骤s50,若所述显示平面中的拾取点位置与所述第二模型子构件组中的至少一个子构件之间的距离小于预设阈值,则拾取所述待拾取的三维模型构件。
33.以下将进一步描述本实施例所述方法的每一步骤。
34.在步骤s10,在计算机设备中,可以通过建筑类软件加载建筑信息模型(即,bim模型)于计算机设备所提供的浏览器中并在计算机设备的二维屏幕上呈现。在bim模型加载完毕之后,将模型构件的数据按顶点、索引的方式存储到内存。其中,所述内存可以位于浏览器、计算机本地硬盘或远程服务器中,在此不做限定。针对每一个bim模型构件,记录唯一的识别号(即,id值)、一份顶点信息以及一份索引信息,并将bim模型构件和相机对象加入三维场景(即三维空间)作为鼠标拾取的前提条件。其中,所述三维场景是指以视点(即相机)为原点的相机视点的坐标系定义的三维空间。
35.在本实施例中,通过存储的索引信息能够获取模型构件的顶点信息,同时识别模型构件为具有多个顶点的模型构件、具有单个顶点的点状构件,或具有两个顶点的线状构件。具体的,模型构件顶点数据中索引值对应于获取顶点信息的方式,例如,顶点数组[v,v,v],其中v代表顶点,索引值是一个类型数组(typedarray),其存储尺寸就决定了获取数据的类型,例如,存储尺寸为1,就是从顶点数组获取1个点来使用,构造成点状构件;存储尺寸为2,则取两个点连接线段;存储尺寸为3,取三点依次连接成角形。
[0036]
图3和图4分别示出了本发明的第一实施例所提供的三维模型构件的拾取方法的应用场景一和场景二的示意图。具体的,如图3和图4所示,以相机1为三维空间中的视点原点,模型构件2为三维空间中显示的模型构件,模型构件3为模型构件1经过坐标变换、投影等操作后在屏幕空间4(即二维平面)中所显示的对应的模型构件。当加载场景并生成bim模型构件的相关数据后,鼠标点击屏幕上呈现的模型构件3,记录鼠标点击位置(亦即,拾取点位置)的屏幕坐标。
[0037]
当获取鼠标点击位置的屏幕坐标后,判断检测射线与待拾取的模型构件2是否相交。当判断出检测射线与待拾取的模型构件2相交时,则直接拾取模型构件2。当判断出检测射线与待拾取的模型构件2不相交时,则需要通过后续的投影法进一步判断是否拾取模型构件2。图2示出了本发明的第一实施例所提供的三维模型构件的拾取方法的又一流程示意图,其具体示出了通过检测射线法判断是否拾取模型构件的步骤,主要包括:
[0038]
步骤s11,判断模型构件是否存在包围盒,若存在,则获取模型构件的包围盒,若不存在,则视为检测射线与待拾取的三维模型构件不相交,并通过投影法进一步判断是否拾取模型构件;
[0039]
步骤s12,判断检测射线与所获取的包围盒是否相交;
[0040]
步骤s121,当检测射线与所述包围盒相交时,则进一步判断该模型构件的顶点连线所组成的多边形与检测射线是否相交,若相交,则拾取模型构件,若不相交,则确定检测射线与待拾取的模型构件不相交,需要通过投影法进一步判断是否拾取模型构件;
[0041]
步骤s122,当检测射线与所述包围盒不相交时,确定检测射线与待拾取的模型构件不相交,需要通过投影法进一步判断是否拾取模型构件。
[0042]
在本实施例中,以图3中的场景一为例,检测射线5被设置为从三维场景的相机1为射线起点o,经鼠标点击位置生成的一条射线,该鼠标点击位置可以被理解为点击位置的屏
幕坐标或点击位置在三维空间中的投影坐标。检测射线5的射线方向d可以根据以下步骤获得:根据相机投影矩阵将点击位置的二维屏幕坐标点d(x,y)转换到三维空间内,获得对应的三维空间的投影点坐标p(x’,y’),设置默认z坐标值,最后通过三维空间的投影点坐标和相机位置坐标点,可确定射线方向d。
[0043]
在步骤s11,判断检测射线与待拾取的模型构件2是否相交进一步包括判断模型构件2是否存在包围盒,若存在,则获取模型构件的包围盒,若不存在,则视为检测射线与待拾取的三维模型构件不相交,并通过投影法进一步判断是否拾取模型构件2。在本实施例中,包围盒是指能够包容物体的立方体。
[0044]
图5示出了本发明的第一实施例所提供的三维模型构件的拾取方法的场景三的示意图,该场景三为模型构件不存在包围盒的情况,即无法计算包围盒的情况。具体的,如图5所示,模型构件不存在包围盒(或视为不存在包围盒)包括以下至少一种情况:待拾取的三维模型构件为具有单个顶点的点状构件41;或当待拾取的三维模型构件为具有两个顶点(即端点)的线状构件42且所述线状构件42与如下所述的笛卡尔坐标系中6个方向上的平面(-x,x,-y,y,-z,z)中的至少一个平面平行。应当理解,可以通过前述索引值识别模型构件为具有多个顶点的模型构件、具有单个顶点的点状构件,或具有两个顶点的线状构件。当模型构件不存在包围盒时,无法通过判断检测射线与包围盒是否相交的方法确定是否拾取模型构件(即,射线法失效),从而需要通过投影法进一步判断是否拾取模型构件。
[0045]
在本实施例中,当确定模型构件2存在包围盒时,则获取模型构件2的包围盒。为了便于理解,在图3和图4所示的场景一和场景二中,模型构件2为矩形,其包围盒即为模型构件2本身,以矩形包围盒为例,可以通过以下平面公式获取包围盒的6个平面:
[0046][0047][0048][0049]
其中,-x,x,-y,y,-z,z是笛卡尔坐标系中6个方向上的平面,pi为顶点坐标。这6个面相交围成的空间,就是包围一个模型构件的长方体,即矩形包围盒。
[0050]
需要说明的是,对于本步骤中模型构件的包围盒的具体方式,可以由设计人员根据实际场景和用户需求自行设置。获取该模型构件的包围盒可以是获取预置的包围盒,例如,预设bim模型的包围盒;也可以为根据模型构件生成包围盒。只要本步骤中处理器可以获取模型构件的包围盒,本实施例对此不做任何限制。
[0051]
在步骤s12,判断检测射线与所获取的包围盒是否相交。在本实施例中,判断检测射线5与上述包围盒是否相交的过程包括:设o为射线起点,d为射线方向,n为平面法线,p0表示平面上的一个点,p表示平面上的任意点(即待求交点),且当p=p0时,0
·
n=0,则平面方程(p-p0)
·
n=0,所以(o d
·
t-p0)
·
n=0,则(o-p0)
·
n d
·n·
t=0,最终获得t=(p0-o)
·
n/d
·
n(其中d
·
n≠0)。其中,t为一标量,当t无解时(即d
·
n=0),则视为检测射线5与该平面无交点。在遍历包围盒的所有平面后,若检测射线5与所有平面都无交点,则判断检测射线5与上述包围盒不相交,如图4的场景二所示。反之,当检测射线5与至少一个平面有交点,则判断检测射线5与上述包围盒相交,如图3的场景一所示。
[0052]
步骤s121,如图3的场景一所示,当检测射线5与所述包围盒相交时,则进一步判断该模型构件2的顶点连线所组成的多边形与检测射线5是否相交,若相交,则直接执行拾取模型构件2的操作,若不相交,则确定检测射线5与待拾取的模型构件2不相交,需要通过投影法进一步判断是否拾取模型构件2。
[0053]
其中,判断所述模型构件2的顶点连线所组成的多边形与所述检测射线是否相交可以采用如下三角形相交算法:判断所述模型构件2的任意三个顶点的连线所组成的三角形与所述检测射线5是否相交;以及当所有由任意三个顶点的连线所组成的三角形与所述检测射线5都不相交时,确定检测射线与待拾取的三维模型构件不相交。其中,该三角形相交算法可以采用本领域技术人员熟知的三角形相交算法,例如重心法、同向法等。以三角形相交算法的重心法为例,三角形的三个顶点是通过模型构件的索引信息从顶点列表取得的三维坐标点a,b,c,因此对于平面内任意一点p(即待求交点),都可以由如下方程来表示:
[0054]
p=a u*(c-a) v*(b-a)
[0055]
如果系数u或v为负值,那么相当于朝相反的方向移动,即ba或ca方向。那么如果想让p位于三角形abc内部,当u=0且v=0时,就是点a,当u=0,v=1时,就是点b,而当u=1,v=0时,就是点c,整理上述方程得到p-a=u(c-a) v(b-a),令v0=c-a,v1=b-a,v2=p-a,则v2=u*v0 v*v1,将等式两边分别点乘v0和v1后得到两个等式:
[0056]
(v2)
·
v0=(u*v0 v*v1)
·
v0;以及
[0057]
(v2)
·
v1=(u*v0 v*v1)
·
v1
[0058]
注意,u和v是数值,而v0,v1和v2是向量,所以可以将点积展开得到:
[0059]
v2
·
v0=u*(v0
·
v0) v*(v1
·
v0);以及
[0060]
v2
·
v1=u*(v0
·
v1) v*(v1
·
v1)
[0061]
解这个方程得到:
[0062]
u=((v1
·
v1)(v2
·
v0)-(v1
·
v0)(v2
·
v1))/((v0
·
v0)(v1
·
v1)-(v0
·
v1)(v1
·
v0))
[0063]
v=((v0
·
v0)(v2
·
v1)-(v0
·
v1)(v2
·
v0))/((v0
·
v0)(v1
·
v1)-(v0
·
v1)(v1
·
v0))
[0064]
求得u和v,即如果满足如下三个条件:
[0065]
u》=0
[0066]
v》=0
[0067]
u v《=1
[0068]
则检测射线在三角形内有交点,如果与三角形判断相交,则与模型构件相交,按此方法判断全部相交的模型构件的信息,并按需拾取和操作。
[0069]
在步骤s122,当检测射线5与所述包围盒不相交时,则确定检测射线5与待拾取的模型构件2不相交,需要通过后续的投影法判断是否拾取模型构件2。
[0070]
在步骤s20,当确定检测射线与待拾取的三维模型构件不相交时,即通过检测射线与包围盒的相交算法和三角形相交算法仍未能获得拾取模型构件的结果时,需要执行投影法判断是否拾取模型构件2。具体的,根据待拾取的模型构件的索引数据获取第一模型子构件组,其中:当待拾取的模型构件仅包括具有单个顶点的点状构件或具有两个顶点的线状构件时,所述第一模型子构件组分别为所述点状构件或所述线状构件;以及当待拾取的模
型构件包括除点状构件或线状构件以外的三维模型构件时,所述第一模型子构件组包括根据所述索引数据对待拾取的三维模型构件进行拆分后所形成的具有两个顶点的线状构件的组合。具体的,根据索引值取顶点数组中的两个点连成线段。
[0071]
在步骤s30,将所述第一模型子构件组投影至显示平面,例如屏幕,以获得第二模型子构件组。例如,当待拾取的模型构件仅包括具有单个顶点的点状构件或具有两个顶点的线状构件时,将其顶点在三维空间中的坐标通过相机投影矩阵转换到屏幕坐标,得到屏幕上的投影线段;当待拾取的模型构件包括除点状构件或线状构件以外的三维模型构件时,同样地,将拆分后的第一模型子构件组中的线段两端点(即顶点)在三维空间中的坐标通过相机投影矩阵转换到屏幕坐标,得到屏幕上的投影线段,其中,模型空间到屏幕空间的变换公式为:
[0072]
屏幕坐标点p_screen=p_world
·
m_camera^(-1)
·
m_projection;
[0073]
其中p_world为线段端点的世界坐标点,相机矩阵为m_camera,投影矩阵为m_projection。
[0074]
在步骤s40,当确定所述显示平面中的拾取点位置与所述第二模型子构件中的至少一个子构件之间的距离小于预设阈值时,拾取所述三维模型构件。具体的,图6示出了本发明的第一实施例所提供的三维模型构件的拾取方法的应用场景四的示意图。如图6所示,模型构件2的线段31的端点a和端点b在三维空间中的坐标通过相机投影矩阵转换到屏幕坐标(端点a’和端点b’),根据鼠标点击的屏幕位置d和转换后的投影线段32之间的距离d进行判断,如果距离d小于预设的像素距离,则视为成功获取构件点选结果,并返回拾取模型构件2的结果。当遍历模型构件2中所有的线段构件,其投影线段与鼠标点击的屏幕位置d之间的距离d都大于预设的像素距离,则获得确定构件点选失败的结果,并返回不拾取模型构件2的结果。本领域普通技术人员应当理解,计算屏幕位置点d到投影线段的距离可以采用切线法或类似的本领域技术人员熟知的计算方法,本实施例在此不做限制。
[0075]
图7示出了本发明的第二实施例所提供的三维模型构件的拾取装置100的结构示意图。所述装置100包括:获取模块10,用于在确定检测射线与待拾取的三维模型构件不相交的情况下,根据预设规则获取所述待拾取的三维模型构件的第一模型子构件组;投影模块20,用于将所述第一模型子构件组投影至显示平面以获得第二模型子构件组;以及确定模块30,用于当确定所述显示平面中的拾取点位置与所述第二模型子构件中的至少一个子构件之间的距离小于预设阈值时,拾取所述待拾取的三维模型构件。所述装置100还包括判断模块40,用于基于拾取点位置构建检测射线,并确定所述检测射线与待拾取的三维模型构件是否相交。
[0076]
同时应当理解,第二实施例与第一实施例中的相关特征可相互参考、借鉴,此处不再一一赘述。
[0077]
本发明通过射线检测与投影检测相结合的方式,实现了当检测射线位于模型构件外部但与模型构件十分接近时进行准确拾取、同时对检测射线无法检测到的线状构件、点状构件进行准确拾取的效果。
[0078]
图8示出了本发明的实施例提供的计算机设备200的结构示意图。该计算机设备包括通过系统总线300连接的处理器310、存储器320、网络接口330、显示屏340和输入装置350。其中,该计算机设备200的处理器310用于提供计算和控制能力。该计算机设备200的存
储器320包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备200的网络接口330用于与外部的计算机设备通过网络连接通信。该计算机程序被处理器310执行时以实现三维模型构件的拾取方法。该计算机设备200的显示屏340可以是液晶显示屏或者电子墨水显示屏,该计算机设备200的输入装置350可以是显示屏340上覆盖的触摸层,也可以是计算机设备200外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
[0079]
本领域技术人员可以理解,图8中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
[0080]
在一个实施例中,提供了一种计算机设备,包括存储器、处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
[0081]
基于拾取点位置构建检测射线,并确定所述检测射线与待拾取的三维模型构件是否相交;若确定所述检测射线与所述待拾取的三维模型构件不相交,则根据预设规则获取所述待拾取的三维模型构件的第一模型子构件组;将所述第一模型子构件组投影至显示平面以获得第二模型子构件组;确定所述显示平面中的拾取点位置与所述第二模型子构件组中的至少一个子构件之间的距离是否小于预设阈值;以及若所述显示平面中的拾取点位置与所述第二模型子构件组中的至少一个子构件之间的距离小于预设阈值,则拾取所述待拾取的三维模型构件。
[0082]
对上述步骤的具体限定和实现方式可以参看上述实施例一,在此不再赘述。
[0083]
在另一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,程序被处理器执行时实现以下用于三维模型构件的拾取方法的步骤:
[0084]
基于拾取点位置构建检测射线,并确定所述检测射线与待拾取的三维模型构件是否相交;若确定所述检测射线与所述待拾取的三维模型构件不相交,则根据预设规则获取所述待拾取的三维模型构件的第一模型子构件组;将所述第一模型子构件组投影至显示平面以获得第二模型子构件组;确定所述显示平面中的拾取点位置与所述第二模型子构件组中的至少一个子构件之间的距离是否小于预设阈值;以及若所述显示平面中的拾取点位置与所述第二模型子构件组中的至少一个子构件之间的距离小于预设阈值,则拾取所述待拾取的三维模型构件。
[0085]
对上述步骤的具体限定和实现方式可以参看上述实施例一,在此不再赘述。
[0086]
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强
型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
[0087]
以上对本发明实施例所提供的一种三维模型构件的拾取方法、装置、设备及存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的技术方案及其核心思想;本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例的技术方案的范围。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

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

相关文献