三维模型剖切的方法、系统、电子设备和介质转让专利

申请号 : CN202010192951.9

文献号 : CN111524220B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 路志越冯琰顾星晔

申请人 : 上海刻羽信息科技有限公司

摘要 :

本发明公开了一种三维模型剖切的方法、系统、电子设备和介质,其中三维模型剖切的方法包括以下步骤:根据底层三维模型数据生成辅助数据;检索剖切目标;将剖切线重构成剖切面,利用剖切面与剖切目标集合进行剖切以得到剖面图;根据剖面图得到图廓尺寸;显示剖面图。本发明能够快速实现断面分析。

权利要求 :

1.一种三维模型剖切的方法,其特征在于,包括以下步骤:S1、根据底层三维模型数据生成辅助数据;

S2、检索剖切目标;

S3、将剖切线重构成剖切面,利用所述剖切面与所述剖切目标进行剖切以得到剖面图;

S4、根据所述剖面图得到图廓尺寸;

S5、显示所述剖面图;

步骤S1包括:

将所述底层三维模型数据批量转换至ARCGIS格式的GDB模型数据,将所述GDB模型数据按照Multipatch格式进行组织以生成Multipatch模型数据;

根据目标编码格式对所述Multipatch模型数据进行编码,所述目标编码格式与三维模型对象一一对应;

根据所述Multipatch模型数据生成二维投影面数据,所述二维投影面数据用于标识模型的平面范围;

步骤S2包括:

获取所述剖切线的端点的平面坐标值,所述端点包括起始点和终点;

根据所述端点的平面坐标值生成平面剖切线;

获取与所述平面剖切线接触的二维对象;

获取与所述二维对象对应的三维模型作为所述剖切目标。

2.如权利要求1所述的三维模型剖切的方法,其特征在于,步骤S3包括:根据所述剖切线的端点以垂直于地面方向进行剖切面重构;

获取所述剖切面与所述剖切目标的三角面的相交线段和端点索引;

根据所述端点索引对所述相交线段进行连接和图形重构以形成断面图形。

3.如权利要求2所述的三维模型剖切的方法,其特征在于,步骤S4包括:根据所述剖切线的端点获取剖切的水平长度,并根据所述剖面图的实际展示图面尺寸获取参考比例,所述参考比例为所述水平长度作为图廓水平范围的比例;

根据所述端点索引获取目标高差,所述目标高差为所述剖切目标的最高点与最低点的绝对高差,根据所述参考比例得到垂直范围图面长度。

4.如权利要求3所述的三维模型剖切的方法,其特征在于,步骤S5包括:根据所述剖面图生成目标图片,所述目标图片为png格式图片;

根据所述目标图片进行图面位置计算,并将所述目标图片设置于坐标轴指定位置;

对所述目标图片进行量测标识。

5.一种三维模型剖切的系统,其特征在于,包括辅助数据生成单元、检索单元、剖切单元、图廓获取单元、显示单元;

所述辅助数据生成单元用于根据底层三维模型数据生成辅助数据;

所述检索单元用于检索剖切目标;

所述剖切单元用于将剖切线重构成剖切面,利用所述剖切面与所述剖切目标进行剖切以得到剖面图;

所述图廓获取单元用于根据所述剖面图得到图廓尺寸;

所述显示单元用于显示所述剖面图;

所述辅助数据生成单元还用于:将所述底层三维模型数据批量转换至ARCGIS格式的GDB模型数据,将所述GDB模型数据按照Multipatch格式进行组织以生成Multipatch模型数据;

根据目标编码格式对所述Multipatch模型数据进行编码,所述目标编码格式与三维模型对象一一对应;

根据所述Multipatch模型数据生成二维投影面数据,所述二维投影面数据用于标识模型的平面范围;

所述检索单元还用于:

获取所述剖切线的端点的平面坐标值,所述端点包括起始点和终点;

根据所述端点的平面坐标值生成平面剖切线;

获取与所述平面剖切线接触的二维对象;

获取与所述二维对象对应的三维模型作为所述剖切目标。

6.如权利要求5所述的三维模型剖切的系统,其特征在于,所述剖切单元还用于:根据所述剖切线的端点以垂直于地面方向进行剖切面重构;

获取所述剖切面与所述剖切目标的三角面的相交线段和端点索引;

根据所述端点索引对所述相交线段进行连接和图形重构以形成断面图形。

7.如权利要求6所述的三维模型剖切的系统,其特征在于,所述图廓获取单元还用于:根据所述剖切线的端点获取剖切的水平长度,并根据所述剖面图的实际展示图面尺寸获取参考比例,所述参考比例为所述水平长度作为图廓水平范围的比例;

根据所述端点索引获取目标高差,所述目标高差为所述剖切目标的最高点与最低点的绝对高差,根据所述参考比例得到垂直范围图面长度。

8.如权利要求7所述的三维模型剖切的系统,其特征在于,所述显示单元还用于:根据所述剖面图生成目标图片,所述目标图片为png格式图片;

根据所述目标图片进行图面位置计算,并将所述目标图片设置于坐标轴指定位置;

对所述目标图片进行量测标识。

9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1‑4中任一项所述的三维模型剖切的方法。

10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1‑4中任一项所述的三维模型剖切的方法的步骤。

说明书 :

三维模型剖切的方法、系统、电子设备和介质

技术领域

[0001] 本发明属于三维模型剖切技术领域,尤其涉及一种三维模型剖切的方法、系统、电子设备和介质。

背景技术

[0002] 城市级三维可视化技术在地理信息、城市建设、运维管理等领域已经体现出越来越不可替代的优势。透过将真实世界的三维场景化,管理者和用户可以对真实世界正在发
生的信息交流实现直观的知识获取与监控管理。除此之外,三维可视化技术不止是对真实
世界外在的直观显示,还可以通过图形学手段和空间分析手段实现真实对象在计算机内的
视觉拆分、剖切、组合、拓扑关系分析、视觉关联分析等抽象化的辅助分析,用以辅助使用者
对真实场景更深入的了解与管理。其中实现快速、动态、可量测的任意模型剖切,对于工程
管理、运维管理等大型项目都具有重大的意义。
[0003] 但由于城市级三维可视化主要针对海量三维模型数据进行组织渲染,同时模型需要编译发布成特定格式进行可视化平台展示,因而对任意模型、任意断面的剖切,都存在以
下几个问题亟待解决:
[0004] (1)无法对编译发布格式的模型直接进行剖切分析;
[0005] (2)无法在海量数据中快速检索到指定模型的分析数据;
[0006] (3)对于复杂模型无法实现任意断面的剖切效果;
[0007] (4)剖切结果无法实现自动化的量测标识。
[0008] 目前主流的城市级三维可视化引擎与平台,主要支持定制化的发布模型格式,为了能够支持海量级的三维模型与大场景,这类格式的模型通常进行了算法级别的LOD
(Levels of Detail,多细节层次)优化与格式编码,因为无法简单对其进行空间剖切得到
剖面分析结果。即使勉强进行剖切,其剖切结果也无法准确体现模型断面特征,更无法进行
量测标注,因而对于使用者来说不具备分析和参考价值。同时,针对海量的模型数据,采用
后台分析服务进行分析运算时,数据的检索也将产生巨大的性能消耗,大大减弱用户体验
与功能实用性。

发明内容

[0009] 本发明要解决的技术问题是为了克服现有技术中三维可视化引擎与平台难以进行空间剖切得到剖面分析结果的缺陷,提供一种三维模型剖切的方法、系统、电子设备和介
质。
[0010] 本发明是通过下述技术方案来解决上述技术问题:
[0011] 本发明提供一种三维模型剖切的方法,包括以下步骤:
[0012] S1、根据底层三维模型数据生成辅助数据;
[0013] S2、检索剖切目标;
[0014] S3、将剖切线重构成剖切面,利用剖切面与剖切目标进行剖切以得到剖面图;
[0015] S4、根据剖面图得到图廓尺寸;
[0016] S5、显示剖面图。
[0017] 较佳地,步骤S1包括:
[0018] 将底层三维模型数据批量转换至ARCGIS(一种地理信息系统)格式的GDB模型数据,将GDB模型数据按照Multipatch(多面体)格式进行组织以生成Multipatch模型数据;
[0019] 根据目标编码格式对Multipatch模型数据进行编码,目标编码格式与三维模型对象一一对应;
[0020] 根据Multipatch模型数据生成二维投影面数据,二维投影面数据用于标识模型的平面范围。
[0021] 较佳地,步骤S2包括:
[0022] 获取剖切线的端点的平面坐标值,端点包括起始点和终点;
[0023] 根据端点的平面坐标值生成平面剖切线;
[0024] 获取与平面剖切线接触的二维对象;
[0025] 获取与二维对象对应的三维模型作为剖切目标。
[0026] 较佳地,步骤S3包括:
[0027] 根据剖切线的端点以垂直于地面方向进行剖切面重构;
[0028] 获取剖切面与剖切目标的三角面的相交线段和端点索引;
[0029] 根据端点索引对相交线段进行连接和图形重构以形成断面图形。
[0030] 较佳地,步骤S4包括:
[0031] 根据剖切线的端点获取剖切的水平长度,并根据剖面图的实际展示图面尺寸获取参考比例,参考比例为水平长度作为图廓水平范围的比例;
[0032] 根据端点索引获取目标高差,目标高差为剖切目标的最高点与最低点的绝对高差,根据参考比例得到垂直范围图面长度。
[0033] 较佳地,步骤S5包括:
[0034] 根据剖面图生成目标图片,目标图片为png(一种图片格式)格式图片;
[0035] 根据目标图片进行图面位置计算,并将目标图片设置于坐标轴指定位置;
[0036] 对目标图片进行量测标识。
[0037] 本发明还提供一种三维模型剖切的系统,包括辅助数据生成单元、检索单元、剖切单元、图廓获取单元、显示单元;
[0038] 辅助数据生成单元用于根据底层三维模型数据生成辅助数据;
[0039] 检索单元用于检索剖切目标;
[0040] 剖切单元用于将剖切线重构成剖切面,利用剖切面与剖切目标进行剖切以得到剖面图;
[0041] 图廓获取单元用于根据剖面图得到图廓尺寸;
[0042] 显示单元用于显示剖面图。
[0043] 较佳地,辅助数据生成单元还用于:
[0044] 将底层三维模型数据批量转换至ARCGIS格式的GDB模型数据,将GDB模型数据按照Multipatch格式进行组织以生成Multipatch模型数据;
[0045] 根据目标编码格式对Multipatch模型数据进行编码,目标编码格式与三维模型对象一一对应;
[0046] 根据Multipatch模型数据生成二维投影面数据,二维投影面数据用于标识模型的平面范围。
[0047] 较佳地,检索单元还用于:
[0048] 获取剖切线的端点的平面坐标值,端点包括起始点和终点;
[0049] 根据端点的平面坐标值生成平面剖切线;
[0050] 获取与平面剖切线接触的二维对象;
[0051] 获取与二维对象对应的三维模型作为剖切目标。
[0052] 较佳地,剖切单元还用于:
[0053] 根据剖切线的端点以垂直于地面方向进行剖切面重构;
[0054] 获取剖切面与剖切目标的三角面的相交线段和端点索引;
[0055] 根据端点索引对相交线段进行连接和图形重构以形成断面图形。
[0056] 较佳地,图廓获取单元还用于:
[0057] 根据剖切线的端点获取剖切的水平长度,并根据剖面图的实际展示图面尺寸获取参考比例,参考比例为水平长度作为图廓水平范围的比例;
[0058] 根据端点索引获取目标高差,目标高差为剖切目标的最高点与最低点的绝对高差,根据参考比例得到垂直范围图面长度。
[0059] 较佳地,显示单元还用于:
[0060] 根据剖面图生成目标图片,目标图片为png格式图片;
[0061] 根据目标图片进行图面位置计算,并将目标图片设置于坐标轴指定位置;
[0062] 对目标图片进行量测标识。
[0063] 本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现本发明的三维模型剖切的方法。
[0064] 本发明还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现本发明的三维模型剖切的方法的步骤。
[0065] 本发明的积极进步效果在于:本发明通过结合海量数据检索、模型空间切割、几何重构、量测标定等方法,形成一整套三维模型可视化平台发布模型的动态可量测任意断面
剖切解决方案,能够快速实现工程、运维管理等大型工程类项目任意场景、重点地物、核心
配件、地质结构的断面分析,为工程实施过程中的结构风险监测、地下要素冲突、地物碰撞
风险等环节提供科学依据与智能化辅助。

附图说明

[0066] 图1为本发明的实施例1的三维模型剖切的方法的流程图。
[0067] 图2为本发明的实施例1的三维模型剖切的方法的步骤S11的流程图。
[0068] 图3为本发明的实施例1的三维模型剖切的方法的步骤S12的流程图。
[0069] 图4为本发明的实施例1的三维模型剖切的方法的步骤S13的流程图。
[0070] 图5为本发明的实施例1的三维模型剖切的方法的步骤S14的流程图。
[0071] 图6为本发明的实施例1的三维模型剖切的方法的步骤S15的流程图。
[0072] 图7为本发明的实施例2的三维模型剖切的系统的结构示意图。
[0073] 图8为本发明的实施例3的电子设备的结构示意图。

具体实施方式

[0074] 下面通过实施例的方式进一步说明本发明,但并不因此将本发明限制在所述的实施例范围之中。
[0075] 实施例1
[0076] 本实施例提供一种三维模型剖切的方法。参照图1,该三维模型剖切的方法包括以下步骤:
[0077] 步骤S11、根据底层三维模型数据生成辅助数据。
[0078] 步骤S12、检索剖切目标。
[0079] 步骤S13、将剖切线重构成剖切面,利用剖切面与剖切目标进行剖切以得到剖面图。
[0080] 步骤S14、根据剖面图得到图廓尺寸。
[0081] 步骤S15、显示剖面图。
[0082] 具体实施时,该三维模型剖切的方法应用于三维可视化平台。三维可视化平台由于要满足后台众多分析功能,都具备一套底层三维模型库用于分析服务。数据剖切主要针
对这种保留较完整信息的原始模型数据进行处理和分析。作为一种可选的实施方式,参照
图2,步骤S11包括以下几步:
[0083] 步骤S111、将底层三维模型数据批量转换至ARCGIS格式的GDB模型数据,将GDB模型数据按照Multipatch格式进行组织以生成Multipatch模型数据。利用数据转换工具,将
底层三维模型数据批量转换至ARCGIS格式的GDB模型数据,模型数据按照Multipatch格式
进行组织。
[0084] 步骤S112、根据目标编码格式对Multipatch模型数据进行编码。目标编码格式与三维模型对象一一对应。对GDB中的Multipatch数据进行编码,编码格式与场景中的三维模
型对象一一对应并保证唯一性。
[0085] 步骤S113、根据Multipatch模型数据生成二维投影面数据,二维投影面数据用于标识模型的平面范围。对Multipatch模型数据进行快速批量化投影面生成,生成二维投影
面数据用于标识模型的平面范围。为了能够精确生成模型的投影面数据,需要对
Multipatch数据进行解析重构。Multipatch模型是由多个三角面组合而成,解析
Multipatch模型的时候需要获取到每一个三角面片的端点三维坐标值,通过定义光线照射
矢量,将所有空间点位投射到平面位置再进行拓扑重组。由于计算断面采用的是正投影,只
需将三角面的高度值直接同化到DEM(Digital Elevation Model,数字高程模型)高度即
可。
[0086] 投影坐标通用转换关系如下:
[0087] Xconv=X*cosθ‑Y*sinθ
[0088]
[0089] 其中,Xconv,Yconv表示转换后的坐标值,X,Y表示原始坐标值,θ代表投影线垂直角,代表水平角。
[0090] 对于投影好的三角面集合,需要进行图形溶解处理,将图形重复区域溶解合并,最终形成最简化的三维模型外轮廓面。
[0091] 在步骤S11中,还生成三维场景中的其他地物辅助运算数据,如:车道面、管线、地下构筑物等。
[0092] 通过以上准备,则为城市级三维场景数据生成了更加丰富的底层分析数据。
[0093] 在步骤S12中,分析目标的快速检索。
[0094] 对于大场景中三维模型的剖切,往往不是只对某一个固定模型进行剖切,而是采用勾绘二维剖切线的方式,在三维场景中进行场景级别的剖切,二维剖切线范围内的场景
需要整体实现空间剖切运算。运算的第一步,就需要在底层数据中快速寻找到剖切目标。作
为一种可选的实施方式,参照图3,步骤S12包括以下步骤:
[0095] 步骤S121、获取剖切线的端点的平面坐标值。端点包括起始点和终点。快速获取剖切线的起始点和终点的平面坐标值。
[0096] 步骤S122、根据端点的平面坐标值生成平面剖切线。将端点平面坐标值传送至后端辅助分析服务处,在内存中生成平面剖切线,并与底层二维分析模型数据进行空间相交
查询分析。由于是进行二维平面分析,对于海量查询结果的性能将有极大优化。
[0097] 步骤S123、获取与平面剖切线接触的二维对象。空间查询分析将会快速返回剖切线接触到的所有二维对象,此时需要对剖切边界进行设定,以起点和终点作为剖切边界,对
于与剖切线相交,但是超出实体边界的二维对象,需要进行边界分割标定。
[0098] 步骤S124、获取与二维对象对应的三维模型作为剖切目标。将查询到的二维对象快速唯一ID返回,由于二维投影对象与三维实体模型有ID的一一对应关系,因此可以快速
找到对应的实体模型进行下一步剖切分析运算。
[0099] 在步骤S13中,进行模型剖切分析运算。模型实时剖切分析,主要是将任意方向的剖切线重构成剖切面,利用剖切面与查找的剖切对象进行剖切运算。作为一种可选的实施
方式,参照图4,步骤S13具体如下:
[0100] 步骤S131、根据剖切线的端点以垂直于地面方向进行剖切面重构。利用得到的剖切线端点,以垂直于地面方向进行剖切面重构,计算得到剖切面的方程参数。
[0101] 步骤S132、获取剖切面与剖切目标的三角面的相交线段和端点索引。利用剖切面与模型实体的三角面进行遍历计算判定,判断该剖切面是否与某个或多个三角面相交,如
果相交,则计算交线,加注端点索引;如果不相交,则跳过该三角面,开始计算下一个三角
形,直到计算完成实体对象的全部三角形。与三角面的相交性计算公式如下:
[0102] A=(Ypt_inter‑Ypt_s)*(Zpt_inter‑Zpt_s)‑(Zpt_e‑Zpt_s)*(Ypt_inter‑Ypt_s)
[0103] B=(Xpt_inter‑Xpt_s)*(Zpt_e‑Zpt_s)‑(Xpt_e‑Xpt_s)*(Zpt_inter‑Zpt_s)
[0104] C=(Xpt_e‑Xpt_s)*(Ypt_inter‑Ypt_s)‑(Xpt_inter‑Xpt_s)*(Ypt_e‑Ypt_s)
[0105] D=‑(A*Xpt_s+B*Ypt_s+C*Zpt_s)
[0106] MORP=(A*X1+B*Y1+C*Z1+D)*(A*X2+B*Y2+C*Z2+D)
[0107] 其中A、B、C分别为三角面所在平面方程的系数,D为常量。MORP为平面相交向量,若MORP<0,证明两空间平面相交,(Xpt_s,Ypt_s,Zpt_s)表示断面线起始点三维坐标值,(Xpt_e,
Ypt_e,Zpt_e)表示断面线终点三维坐标值,(Xpt_inter,Ypt_inter,Zpt_inter)表示空间相交点三维坐
标值,(X1,Y1,Z1),(X2,Y2,Z2)分别代表两个相交平面的变量值。
[0108] 步骤S133、根据端点索引对相交线段进行连接和图形重构以形成断面图形。对某一个模型实体的全部三角形遍历计算完成之后,由于得到的相交线顺序没有固定规则,需
要根据之前的端点索引,将得到的所有相交线段进行连接与图形重构,检查判断端点的拓
扑关系,对于索引一致切拓扑关系正确的端点进行端点融合,最终形成断面图形。
[0109] 将所有对象进行图形重构后,可以利用端点索引所标识的空间位置,可以在内存中对关键位置进行比例、尺寸的量算,最后对图形对象进行几何量算标注,定义图形的框架
尺寸与比例关系。
[0110] 在步骤S14中,进行图廓尺寸运算。由于任意剖面剖切条件复杂,可能会剖切到尺寸较大的实体对象。而剖面图由于具有可量测性,需要真实反映实体对象尺寸相对比例与
相对位置关系,因此可能会由于个别对象尺寸过大导致整体图廓无法正常显示。本算法会
根据剖切结果,对图廓进行整体适宜性运算。作为一种可选的实施方式,参照图5,步骤S14
包括以下步骤:
[0111] 步骤S141、根据剖切线的端点获取剖切的水平长度,并根据剖面图的实际展示图面尺寸获取参考比例,参考比例为水平长度作为图廓水平范围的比例。根据剖切线端点计
算剖切的水平长度,并根据剖面图实际展示图面尺寸计算此长度作为图廓水平范围的参考
比例。
[0112] 步骤S142、根据端点索引获取目标高差,目标高差为剖切目标的最高点与最低点的绝对高差,根据参考比例得到垂直范围图面长度。根据端点索引,计算出实体模型对象最
高点和最低点的绝对高差,根据之前水平参考比例进行换算,得到垂直范围图面尺寸。
[0113] 垂直图面长度与图面范围长度进行比较,如果超出了图面原始长度限制,则说明比例值过大,需要以垂直比例进行重新计算。最终得到垂直方向与水平向均不超过限制的
最大图廓比例。
[0114] 在步骤S15中,剖切图实时返回与展示。在一种可选的实施方式中,该三维模型剖切的方法应用于大型实时三维应用平台,因而会针对B/S架构和C/S架构平台给出不同展示
方式。C/S架构平台基于桌面运算程序,对数据量与图形绘制不具备过多限制,因此将运算
结果直接以数据流形式返回至桌面程序即可;对于B/S架构系统,后台剖切的图面结果通常
会有较大的数据流需要进行绘制,如果依赖于浏览器进行绘制,则可能导致浏览器出现长
时间停滞甚至假死状态。作为一种可选的实施方式,参照图6,步骤S15包括以下步骤:
[0115] 步骤S151、根据剖面图生成目标图片,目标图片为png格式图片。利用C++动态库进行png图片创建,将剖面图运算结果以png图片格式生成至服务器端,本过程将大大提升图
面数据生成效率。
[0116] 步骤S152、根据目标图片进行图面位置计算,并将目标图片设置于坐标轴指定位置。将生成的png图片返回至浏览器端,浏览器通过图面位置计算,将图片放置于坐标轴指
定位置。该位置需要进行精确计算,才能保证剖面图的真实可量测性。
[0117] 步骤S153、对目标图片进行量测标识。在浏览器端完成图面的量测标识与修饰。
[0118] 本实施例的三维模型剖切的方法通过结合海量数据检索、模型空间切割、几何重构、量测标定等方法,形成一整套三维模型可视化平台发布模型的动态可量测任意断面剖
切解决方案与算法,能够快速实现工程、运维管理等大型工程类项目任意场景、重点地物、
核心配件、地质结构的断面分析,为工程实施过程中的结构风险监测、地下要素冲突、地物
碰撞风险等环节提供科学依据与智能化辅助。
[0119] 实施例2
[0120] 本实施例提供一种三维模型剖切的系统。参照图7,该三维模型剖切的系统包括辅助数据生成单元201、检索单元202、剖切单元203、图廓获取单元204、显示单元205。辅助数
据生成单元201用于根据底层三维模型数据生成辅助数据;检索单元202用于检索剖切目
标;剖切单元203用于将剖切线重构成剖切面,利用剖切面与剖切目标进行剖切以得到剖面
图;图廓获取单元204用于根据剖面图得到图廓尺寸;显示单元205用于显示剖面图。
[0121] 具体实施时,该三维模型剖切的系统应用于三维可视化平台。三维可视化平台由于要满足后台众多分析功能,都具备一套底层三维模型库用于分析服务。数据剖切主要针
对这种保留较完整信息的原始模型数据进行处理和分析。辅助数据生成单元201还用于:
[0122] 将底层三维模型数据批量转换至ARCGIS格式的GDB模型数据,将GDB模型数据按照Multipatch格式进行组织以生成Multipatch模型数据。利用数据转换工具,将底层三维模
型数据批量转换至ARCGIS格式的GDB模型数据,模型数据按照Multipatch格式进行组织;
[0123] 根据目标编码格式对Multipatch模型数据进行编码,目标编码格式与三维模型对象一一对应。对GDB中的Multipatch数据进行编码,编码格式与场景中的三维模型对象一一
对应并保证唯一性;
[0124] 根据Multipatch模型数据生成二维投影面数据,二维投影面数据用于标识模型的平面范围。对Multipatch模型数据进行快速批量化投影面生成,生成二维投影面数据用于
标识模型的平面范围。为了能够精确生成模型的投影面数据,需要对Multipatch数据进行
解析重构。Multipatch模型是由多个三角面组合而成,解析Multipatch模型的时候需要获
取到每一个三角面片的端点三维坐标值,通过定义光线照射矢量,将所有空间点位投射到
平面位置再进行拓扑重组。由于计算断面采用的是正投影,只需将三角面的高度值直接同
化到DEM高度即可。投影坐标通用转换关系如下:
[0125] Xconv=X*cosθ‑Y*sinθ
[0126]
[0127] 其中,Xconv,Yconv表示转换后的坐标值,X,Y表示原始坐标值,θ代表投影线垂直角,代表水平角。
[0128] 对于投影好的三角面集合,需要进行图形溶解处理,将图形重复区域溶解合并,最终形成最简化的三维模型外轮廓面;
[0129] 辅助数据生成单元201还生成三维场景中的其他地物辅助运算数据,如:车道面、管线、地下构筑物等。
[0130] 通过以上准备,则为城市级三维场景数据生成了更加丰富的底层分析数据。
[0131] 然后检索单元202实现分析目标的快速检索。
[0132] 对于大场景中三维模型的剖切,往往不是只对某一个固定模型进行剖切,而是采用勾绘二维剖切线的方式,在三维场景中进行场景级别的剖切,二维剖切线范围内的场景
需要整体实现空间剖切运算。运算的第一步,就需要在底层数据中快速寻找到剖切目标。检
索单元202具体实现的操作如下:
[0133] 获取剖切线的端点的平面坐标值,端点包括起始点和终点。快速获取剖切线的起始点和终点的平面坐标值;
[0134] 根据端点的平面坐标值生成平面剖切线。将端点平面坐标值传送至后端辅助分析服务处,在内存中生成平面剖切线,并与底层二维分析模型数据进行空间相交查询分析。由
于是进行二维平面分析,对于海量查询结果的性能将有极大优化;
[0135] 获取与平面剖切线接触的二维对象。空间查询分析将会快速返回剖切线接触到的所有二维对象,此时需要对剖切边界进行设定,以起点和终点作为剖切边界,对于与剖切线
相交,但是超出实体边界的二维对象,需要进行边界分割标定;
[0136] 获取与二维对象对应的三维模型作为剖切目标。将查询到的二维对象快速唯一ID返回,由于二维投影对象与三维实体模型有ID的一一对应关系,因此可以快速找到对应的
实体模型进行下一步剖切分析运算。
[0137] 然后,剖切单元203进行模型剖切分析运算。模型实时剖切分析,主要是将任意方向的剖切线重构成剖切面,利用剖切面与查找的剖切对象进行剖切运算。剖切单元203实现
的具体操作如下:
[0138] 根据剖切线的端点以垂直于地面方向进行剖切面重构。利用得到的剖切线端点,以垂直于地面方向进行剖切面重构,计算得到剖切面的方程参数;
[0139] 获取剖切面与剖切目标的三角面的相交线段和端点索引。利用剖切面与模型实体的三角面进行遍历计算判定,判断该剖切面是否与某个或多个三角面相交,如果相交,则计
算交线,加注端点索引;如果不相交,则跳过该三角面,开始计算下一个三角形,直到计算完
成实体对象的全部三角形。与三角面的相交性计算公式如下:
[0140] A=(Ypt_inter‑Ypt_s)*(Zpt_inter‑Zpt_s)‑(Zpt_e‑Zpt_s)*(Ypt_inter‑Ypt_s)
[0141] B=(Xpt_inter‑Xpt_s)*(Zpt_e‑Zpt_s)‑(Xpt_e‑Xpt_s)*(Zpt_inter‑Zpt_s)
[0142] C=(Xpt_e‑Xpt_s)*(Ypt_inter‑Ypt_s)‑(Xpt_inter‑Xpt_s)*(Ypt_e‑Ypt_s)
[0143] D=‑(A*Xpt_s+B*Ypt_s+C*Zpt_s)
[0144] MORP=(A*X1+B*Y1+C*Z1+D)*(A*X2+B*Y2+C*Z2+D);
[0145] 其中A、B、C分别为三角面所在平面方程的系数,D为常量。MORP为平面相交向量,若MORP<0,证明两空间平面相交,(Xpt_s,Ypt_s,Zpt_s)表示断面线起始点三维坐标值,(Xpt_e,
Ypt_e,Zpt_e)表示断面线终点三维坐标值,(Xpt_inter,Ypt_inter,Zpt_inter)表示空间相交点三维坐
标值,(X1,Y1,Z1),(X2,Y2,Z2)分别代表两个相交平面的变量值。
[0146] 根据端点索引对相交线段进行连接和图形重构以形成断面图形。对某一个模型实体的全部三角形遍历计算完成之后,由于得到的相交线顺序没有固定规则,需要根据之前
的端点索引,将得到的所有相交线段进行连接与图形重构,检查判断端点的拓扑关系,对于
索引一致切拓扑关系正确的端点进行端点融合,最终形成断面图形。
[0147] 将所有对象进行图形重构后,剖切单元203还利用端点索引所标识的空间位置,可以在内存中对关键位置进行比例、尺寸的量算,最后对图形对象进行几何量算标注,定义图
形的框架尺寸与比例关系。
[0148] 然后,图廓获取单元204进行图廓尺寸运算。由于任意剖面剖切条件复杂,可能会剖切到尺寸较大的实体对象。而剖面图由于具有可量测性,需要真实反映实体对象尺寸相
对比例与相对位置关系,因此可能会由于个别对象尺寸过大导致整体图廓无法正常显示。
本算法会根据剖切结果,对图廓进行整体适宜性运算。图廓获取单元204具体实现以下操
作:
[0149] 根据剖切线的端点获取剖切的水平长度,并根据剖面图的实际展示图面尺寸获取参考比例,参考比例为水平长度作为图廓水平范围的比例。根据剖切线端点计算剖切的水
平长度,并根据剖面图实际展示图面尺寸计算此长度作为图廓水平范围的参考比例;
[0150] 根据端点索引获取目标高差,目标高差为剖切目标的最高点与最低点的绝对高差,根据参考比例得到垂直范围图面长度。根据端点索引,计算出实体模型对象最高点和最
低点的绝对高差,根据之前水平参考比例进行换算,得到垂直范围图面尺寸。
[0151] 垂直图面长度与图面范围长度进行比较,如果超出了图面原始长度限制,则说明比例值过大,图廓获取单元204以垂直比例进行重新计算,最终得到垂直方向与水平向均不
超过限制的最大图廓比例。
[0152] 最后,显示单元205对剖切图实时返回与展示。在一种可选的实施方式中,该三维模型剖切的方法应用于大型实时三维应用平台,因而会针对B/S架构和C/S架构平台给出不
同展示方式。C/S架构平台基于桌面运算程序,对数据量与图形绘制不具备过多限制,因此
将运算结果直接以数据流形式返回至桌面程序即可;对于B/S架构系统,后台剖切的图面结
果通常会有较大的数据流需要进行绘制,如果依赖于浏览器进行绘制,则可能导致浏览器
出现长时间停滞甚至假死状态。作为一种可选的实施方式,显示单元205具体实现以下操
作:
[0153] 根据剖面图生成目标图片,目标图片为png格式图片。利用C++动态库进行png图片创建,将剖面图运算结果以png图片格式生成至服务器端,本过程将大大提升图面数据生成
效率;
[0154] 根据目标图片进行图面位置计算,并将目标图片设置于坐标轴指定位置。将生成的png图片返回至浏览器端,浏览器通过图面位置计算,将图片放置于坐标轴指定位置。该
位置需要进行精确计算,才能保证剖面图的真实可量测性;
[0155] 对目标图片进行量测标识。在浏览器端完成图面的量测标识与修饰。
[0156] 本实施例的三维模型剖切的系统通过结合海量数据检索、模型空间切割、几何重构、量测标定等方法,形成一整套三维模型可视化平台发布模型的动态可量测任意断面剖
切解决方案与算法,能够快速实现工程、运维管理等大型工程类项目任意场景、重点地物、
核心配件、地质结构的断面分析,为工程实施过程中的结构风险监测、地下要素冲突、地物
碰撞风险等环节提供科学依据与智能化辅助。
[0157] 实施例3
[0158] 图8为本实施例提供的一种电子设备的结构示意图。所述电子设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序。在一种可选的实施方式中,所
述处理器执行所述程序时实现实施例1的三维模型剖切的方法。图8显示的电子设备30仅仅
是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
[0159] 如图8所示,电子设备30可以以通用计算设备的形式表现,例如其可以为服务器设备。电子设备30的组件可以包括但不限于:上述至少一个处理器31、上述至少一个存储器
32、连接不同系统组件(包括存储器32和处理器31)的总线33。
[0160] 总线33包括数据总线、地址总线和控制总线。
[0161] 存储器32可以包括易失性存储器,例如随机存取存储器(RAM)321和/或高速缓存存储器322,还可以进一步包括只读存储器(ROM)323。
[0162] 存储器32还可以包括具有一组(至少一个)程序模块324的程序/实用工具325,这样的程序模块324包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程
序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
[0163] 处理器31通过运行存储在存储器32中的计算机程序,从而执行各种功能应用以及数据处理,例如本发明实施例1的三维模型剖切的方法。
[0164] 电子设备30也可以与一个或多个外部设备34(例如键盘、指向设备等)通信。这种通信可以通过输入/输出(I/O)接口35进行。并且,模型生成的设备30还可以通过网络适配
器36与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通
信。如图所示,网络适配器36通过总线33与模型生成的设备30的其它模块通信。应当明白,
尽管图中未示出,可以结合模型生成的设备30使用其它硬件和/或软件模块,包括但不限
于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、RAID(磁盘阵列)系统、磁带驱动
器以及数据备份存储系统等。
[0165] 应当注意,尽管在上文详细描述中提及了电子设备的若干单元/模块或子单元/模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描
述的两个或更多单元/模块的特征和功能可以在一个单元/模块中具体化。反之,上文描述
的一个单元/模块的特征和功能可以进一步划分为由多个单元/模块来具体化。
[0166] 实施例4
[0167] 本实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现实施例1的三维模型剖切的方法的步骤。
[0168] 其中,可读存储介质可以采用的更具体可以包括但不限于:便携式盘、硬盘、随机存取存储器、只读存储器、可擦拭可编程只读存储器、光存储器件、磁存储器件或上述的任
意合适的组合。
[0169] 在可能的实施方式中,本发明还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行实现实
施例1的三维模型剖切的方法的步骤。
[0170] 其中,可以以一种或多种程序设计语言的任意组合来编写用于执行本发明的程序代码,所述程序代码可以完全地在用户设备上执行、部分地在用户设备上执行、作为一个独
立的软件包执行、部分在用户设备上部分在远程设备上执行或完全在远程设备上执行。
[0171] 虽然以上描述了本发明的具体实施方式,但是本领域的技术人员应当理解,这仅是举例说明,本发明的保护范围是由所附权利要求书限定的。本领域的技术人员在不背离
本发明的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,但这些变更和
修改均落入本发明的保护范围。