利索能及
我要发布
收藏
专利号: 2019105835700
申请人: 南京泛在地理信息产业研究院有限公司
专利类型:发明专利
专利状态:已下证
更新日期:2025-08-18
缴费截止日期: 暂无
联系人

摘要:

权利要求书:

1.一种实现ESRI TIN模型转换为OBJ三维模型的方法,其特征在于包括:(1)读取地质的ESRI TIN模型数据,从中提取出所有节点,生成节点图层LayerPts;

(2)基于节点图层LayerPts,构建二维节点K‑D树nodeKdTree;

(3)从地质的ESRI TIN模型数据中提取出所有三角面,生成三角面图层LayerTris;

(4)根据用户指定OBJ文件的名称和存储位置,创建空的OBJ文件;

(5)遍历节点图层LayerPts中所有节点,将每个节点的横坐标、纵坐标和高程信息按照OBJ文件顶点格式规范写入创建的OBJ文件中;

(6)遍历三角面图层LayerTris中所有三角面,并根据K‑D树nodeKdTree,查询每一个三角面的3个端点的索引值,将其写入创建的OBJ文件中,此时的OBJ文件即为转换得到的OBJ三维模型数据,具体包括:(6‑1)读取三角面图层LayerTris;

(6‑2)读取LayerTris中的任意一个三角面Trii,将三角面Trii的3个端点保存至三角面端点集合EdgePonintsi={epj|j=1,2,3},epj表示集合中第j个端点;

(6‑3)对于端点集合EdgePonintsi中每一端点,根据二维节点K‑D树nodeKdTree,利用KNN算法,查询nodeKdTree中横纵坐标与该端点的横纵坐标相同的树节点,获取其索引值并保存至索引值集合Indexi={idxk|k=1,2,3},idxk表示集合中第k个索引值;

(6‑4)按照OBJ文件几何面格式规范,将三角面Trii的3个端点的索引值写入OBJ文件中;

(6‑5)重复步骤(6‑2)至步骤(6‑4),直至处理完所有三角面;

(6‑6)信息写入完成后的OBJ文件即为转换得到的OBJ三维模型数据。

2.根据权利要求1所述的实现ESRI TIN模型转换为OBJ三维模型的方法,其特征在于:步骤(2)具体包括:

(2‑1)遍历节点图层LayerPts中所有的节点,并将其保存至节点数据集合Points;

(2‑2)利用K‑D树构建方法,以节点数据集合Points中所有节点的横纵坐标作为空间分割依据,以节点的横纵坐标和索引值作为K‑D树节点的数据项,构建二维节点K‑D树,生成二维节点K‑D树nodeKdTree。

3.根据权利要求1所述的实现ESRI TIN模型转换为OBJ三维模型的方法,其特征在于:步骤(5)中将节点信息写入创建的OBJ文件中的具体格式为:一行写入一个节点信息,包括从前到后写入的字符v、该节点横坐标x、该节点纵坐标y和该节点高程z[w],其中,w为可选项,表示颜色值,其范围为0到1.0,默认值为1.0。

4.根据权利要求1所述的实现ESRI TIN模型转换为OBJ三维模型的方法,其特征在于:步骤(6‑4)中将三角面Trii的3个端点的索引值写入OBJ文件的具体格式为:一行写入一个三角面信息,包括从前到后写入的字符f、第一个端点索引值、第二个端点索引值和第三个端点索引值。

5.一种实现ESRI TIN模型转换为OBJ三维模型的系统,其特征在于包括:节点图层生成模块,用于读取地质的ESRI TIN模型数据,从中提取出所有节点,生成节点图层LayerPts;

K‑D树构建模块,用于基于节点图层LayerPts,构建二维节点K‑D树nodeKdTree;

三角面图层生成模块,用于从地质的ESRI TIN模型数据中提取出所有三角面,生成三角面图层LayerTris;

OBJ文件创建模块,用于根据用户指定OBJ文件的名称和存储位置,创建空的OBJ文件;

顶点信息写入模块,用于遍历节点图层LayerPts中所有节点,将每个节点的横坐标、纵坐标和高程信息按照OBJ文件顶点格式规范写入创建的OBJ文件中;

三角面信息写入模块,用于遍历三角面图层LayerTris中所有三角面,并根据K‑D树nodeKdTree,查询每一个三角面的3个端点的索引值,将其写入创建的OBJ文件中,此时的OBJ文件即为转换得到的OBJ三维模型数据,具体包括:(6‑1)读取三角面图层LayerTris;

(6‑2)读取LayerTris中的任意一个三角面Trii,将三角面Trii的3个端点保存至三角面端点集合EdgePonintsi={epj|j=1,2,3},epj表示集合中第j个端点;

(6‑3)对于端点集合EdgePonintsi中每一端点,根据二维节点K‑D树nodeKdTree,利用KNN算法,查询nodeKdTree中横纵坐标与该端点的横纵坐标相同的树节点,获取其索引值并保存至索引值集合Indexi={idxk|k=1,2,3},idxk表示集合中第k个索引值;

(6‑4)按照OBJ文件几何面格式规范,将三角面Trii的3个端点的索引值写入OBJ文件中;

(6‑5)重复步骤(6‑2)至步骤(6‑4),直至处理完所有三角面;

(6‑6)信息写入完成后的OBJ文件即为转换得到的OBJ三维模型数据。

6.根据权利要求5所述的实现ESRI TIN模型转换为OBJ三维模型的系统,其特征在于:所述K‑D树构建模块具体包括:

节点提取单元,用于遍历节点图层LayerPts中所有的节点,并将其保存至节点数据集合Points;

K‑D树生成单元,用于利用K‑D树构建方法,以节点数据集合Points中所有节点的横纵坐标作为空间分割依据,以节点的横纵坐标和索引值作为K‑D树节点的数据项,生成二维节点K‑D树nodeKdTree。

7.根据权利要求5所述的实现ESRI TIN模型转换为OBJ三维模型的系统,其特征在于:所述顶点信息写入模块中将节点信息写入创建的OBJ文件中的具体格式为:一行写入一个节点信息,包括从前到后写入的字符v、该节点横坐标x、该节点纵坐标y和该节点高程z[w],其中,w为可选项,表示颜色值,其范围为0到1.0,默认值为1.0。

8.根据权利要求5所述的实现ESRITIN模型转换为OBJ三维模型的系统,其特征在于:所述三角面信息写入模块将三角面Trii的3个端点的索引值写入OBJ文件的具体格式为:一行写入一个三角面信息,包括从前到后写入的字符f、第一个端点索引值、第二个端点索引值和第三个端点索引值。