CN101430693B - 三角网格曲面模型的空间查询方法 - Google Patents

三角网格曲面模型的空间查询方法 Download PDF

Info

Publication number
CN101430693B
CN101430693B CN2008101597480A CN200810159748A CN101430693B CN 101430693 B CN101430693 B CN 101430693B CN 2008101597480 A CN2008101597480 A CN 2008101597480A CN 200810159748 A CN200810159748 A CN 200810159748A CN 101430693 B CN101430693 B CN 101430693B
Authority
CN
China
Prior art keywords
node
bounding box
index
current
tri patch
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.)
Expired - Fee Related
Application number
CN2008101597480A
Other languages
English (en)
Other versions
CN101430693A (zh
Inventor
孙殿柱
田中朝
李心成
李延瑞
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shandong University of Technology
Original Assignee
Shandong University of Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shandong University of Technology filed Critical Shandong University of Technology
Priority to CN2008101597480A priority Critical patent/CN101430693B/zh
Publication of CN101430693A publication Critical patent/CN101430693A/zh
Application granted granted Critical
Publication of CN101430693B publication Critical patent/CN101430693B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Image Generation (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供一种三角网格曲面模型的空间查询方法,首先将表达产品型面信息的三角面片数据与索引结构中的结点均表达成相应的四维点对象,通过选择插入位置、采用四维聚类分簇方法实现结点分裂、索引结构中结点轴向包围盒及对应四维点对象调整等步骤对四维点对象进行空间聚类划分,实现三角网格曲面中三角面片的空间聚类划分,建立三角网格曲面模型索引结构,基于该结构可提高离散三角网格曲面模型各种空间查询操作效率,有效提高产品逆向工程数据处理速度,并保证处理结果的稳定性与准确性。

Description

三角网格曲面模型的空间查询方法
技术领域
本发明提供一种三角网格曲面模型的空间查询方法,属于产品逆向工程技术领域。
背景技术
在产品逆向工程中,三角网格曲面可快速灵活地重建复杂型面产品模型,为精确表达产品信息,三角网格曲面模型数据表现为数据量大、空间复杂度高且数据之间缺乏拓扑关系等特点,为三角网格曲面模型建立稳定、高效的索引结构对于提高三角网格曲面模型的精简与加密、三角网格曲面模型交线求解以及基于三角网格曲面模型的数控加工刀轨生成等的效率具有重要意义。
对现有的技术文献检索发现,王磊等在学术期刊《计算机应用研究》2004,9,P95-97上发表的论文“细分曲面的有序邻接顶点表数据结构”,根据三角网格曲面模型中离散三角面片的顶点信息和边信息,为每个三角面片建立邻接关系表,将三角面片邻接关系表中存放与该三角面片拓扑相邻的三角面片信息,仅适于快速三角网格曲面模型局部邻域数据,不能满足逆向工程中其他空间查询的高效率需求。
周海在其博士学位论文“细分曲面造型技术研究”中采用空间八叉树作为三角网格曲面模型索引结构,根据三角面片包围盒中心在空间八叉树中的位置将三角面片作为八叉树的结点插入,建立三角网格曲面模型索引结构,该索引方法仅适合于建立在空间范围内均匀分布的三角网格曲面模型索引结构,此外,以三角面片包围盒中心代替三角面片建立索引结构,丢失了三角面片信息,基于该索引结构进行空间查询,其查询结果不准确,常漏查三角面片。
王占礼在其博士学位论文“面向虚拟制造的数控加工仿真技术研究”中采用一个大包围盒包围三角网格曲面模型,将该包围盒作为根索引结点,然后将其中的三角面片分割成两个部分,每一部分用一个包围盒包围,再对每一个包围盒递推分割进行,直到一个包围盒只包含一个三角面片,建立三角网格曲面模型的非平衡二叉树索引结构,基于该结构提高了三角网格曲面模型各种查询操作的效率,由于该结构为非平衡二叉树,仅适合于三角面片数据均匀分布的三角网格曲面模型,当三角网格曲面模型数据分布疏密不均时,容易出现树的某一分支层数过多现象,导致数据结构急剧恶化,严重影响空间查询效率。
综上所述,为三角网格曲面模型数据建立有效的索引结构已成为本领域技术人员亟待解决的技术问题。
发明内容
本发明的目的在于提供一种三角网格曲面模型的空间查询方法,以缩短基于三角网格曲面模型的各种空间查询操作时间,提高逆向工程数据处理效率。其技术方案如下:
包含以下步骤:
一、从三角网格曲面模型数据文件读取三角网格曲面模型数据并建立数据结点,为每个三角面片建立轴向包围盒,根据轴向包围盒中心及轴向包围盒外接球半径将数据结点处理成四维点对象,建立数据结点链表;
二、基于三角面片的轴向包围盒及对应的四维点对象,建立三角网格曲面模型索引结构,其步骤为:为结点选择插入位置、采用四维聚类分簇方法实现结点分裂、索引结构中结点轴向包围盒及对应四维点对象调整,其中:
为结点选择插入位置的步骤具体是:1)指定要插入的新结点和插入层号,2)设当前结点为current_node,如果索引结构为空则返回空,否则令current_node为索引结构根结点、当前层号为1;3)令current_node的每个子结点包含欲插入到索引结构的新结点,计算包含新结点后结点的轴向包围盒外接球半径,与原结点外接球半径相比较,以外接球半径增量最小的结点作为current_node;4)如果存在大于或等于2个结点在包含新结点后符合外接球增量最小,则计算外接球增量最小的结点在插入新结点后与其兄弟结点的外接球重叠度增量,并选择重叠度增量较小的子结点作为current_node;5)如果存在大于或等于2个外接球重叠度增量最小的结点,则选择包含新结点后外接球半径最小的结点作为current_node,令当前层号加1;6)返回步骤3)直到当前层号等于新结点欲插入的层号;
索引结构中结点轴向包围盒及对应四维点对象调整的具体步骤是:1)设轴向包围盒发生变化的索引结点为src_node;2)调整索引结点src_node的轴向包围盒,使得src_node的轴向包围盒恰好包含src_node的所有子结点的轴向包围盒,并调整索引结点src_node对应的四维点坐标值;3)若src_node为根索引结点,程序返回,否则执行步骤4);4)令src_node为src_node的父结点,调整索引结点src_node轴向包围盒,使得src_node的轴向包围盒恰好包含src_node的所有子结点的轴向包围盒,并调整索引结点src_node对应的四维点坐标值,返回步骤3);
三、基于三角网格曲面模型索引结构,采用剪枝策略实现三角面片拓扑近邻三角面片查询和两三角网格曲面模型的相交区域查询,其中:
采用剪枝策略查询三角面片拓扑近邻三角面片的具体步骤是:1)设当前结点current_node为三角网格曲面模型索引结构的根索引结点;2)若current_node的轴向包围盒与目标三角面片的轴向包围盒相交则执行步骤3),若current_node的轴向包围盒与目标三角面片轴向包围盒不相交则返回;3)若current_node为非叶索引结点则执行步骤4),若current_node为叶索引结点,则依次比较current_node的子结点轴向包围盒与目标三角面片轴向包围盒是否相交,如果不相交则继续比较下一个子结点,如果相交则比较该子结点对应的三角面片是否与目标三角面片存在公共边,若存在公共边则将该子结点添加到目标三角面片的邻接关系表中,若不存公共边在则继续比较下一个子结点,直到比较完current_node所有子结点,程序返回;4)令current_node依次为current_node的子结点,执行步骤2);
采用剪枝策略查询两三角网格曲面模型相交区域的具体步骤是:1)设两三角网格曲面模型分别为S1和S2;2)遍历三角网格曲面模型S1中的三角面片,以S1中的每个三角面片作为目标三角面片执行步骤3);3)设当前结点current_node为三角网格曲面模型S2的索引结构的根索引结点;4)若current_node的轴向包围盒与目标三角面片的轴向包围盒相交则执行步骤5),若current_node的轴向包围盒与目标三角面片轴向包围盒不相交则返回;5)若current_node为叶索引结点,则依次比较current_node的子结点轴向包围盒与目标三角面片轴向包围盒是否相交,如果不相交则继续比较下一个子结点,如果相交则对该子结点对应的三角面片与目标三角面片进行求交运算,如果存在交点则将该子结点对应的三角面片标记为相交区域三角面片,同时标记目标三角面片为相交区域三角面片,若不存在则继续比较下一个子结点,直到比较完current_node所有子结点,程序返回,若current_node为非叶索引结点则执行步骤6);6)令current_node依次为current_node的子结点,执行步骤4)。所述的三角网格曲面模型的空间查询方法,在步骤一中,根据三角面片的三个顶点的坐标为每个三角面片建立沿坐标轴方向且恰好包围三角面片的轴向包围盒,根据轴向包围盒中心坐标(x,y,z)和轴向包围盒的外接球半径r建立四维点对象P(x,y,z,r),并建立数据结点链表,数据结点包含三角面片信息、轴向包围盒以及对应的四维点对象信息。
所述的三角网格曲面模型的空间查询方法,在步骤二中,结点包括数据结点和索引结点,索引结点包含根索引结点、内部索引结点和叶索引结点,索引结构的最上层结点为根索引结点、最下层结点为叶索引结点,其他索引结点为内部索引结点,定义索引结点的子结点上限值为大于2的整数M、下限值为小于或等于M/2的整数m,每个索引结点的子结点数小于等于M且除根索引结点外所有索引结点的子结点数大于等于m,所有叶索引结点均在同一层;索引结构中每个索引结点的轴向包围盒恰好包围该索引结点的所有子结点的轴向包围盒,每个索引结点都对应一个四维点对象,四维点对象坐标为(x,y,z,r),其中(x,y,z)为索引结点轴向包围盒中心坐标,r为索引结点轴向包围盒外接球半径。
本发明与现有技术相比,具有以下四个优点:
1)将三角面片、索引结构中的结点都表示成四维点对象,降低了复杂数据分簇的难度,且结点分裂过程采用四维聚类分簇方法,充分考虑了数据对象在空间内的体积特性,提高了结点在空间范围内的聚合性,分簇效果更合理;
2)采用外接球作为数据对象属性,可处理低维数据的分簇,即使对平面三角网格曲面模型数据也可建立有效的索引结构;
3)索引结构采用高度平衡树结构,避免索引结构某一分支层数过深而导致查询效率低的现象,同时采用最大、最小子结点数限制结点的子结点个数,使索引结构的平衡性更好;
4)采用嵌套的结点轴向包围盒,可快速缩小查询范围,提高空间查询操作的查询效率。
附图说明
图1是三角面片及其轴向包围盒。
图2是本发明索引结构的结点轴向包围盒示意图。
图3是本发明索引结构的结构图。
图4是本发明三角网格曲面模型数据索引结构新结点插入流程图。
图5a和图5b分别是本发明实施案例中所采用的三角网格曲面模型渲染效果和网格效果。
图6a至图6e是本发明的索引结构各层结点轴向包围盒示意图。
图7a和图7b分别为两相交三角网格曲面模型与获取的相交三角面片集合。
具体实施方式
图1是13个三角面片的集合。定义索引结点的子结点数上限值M=8、下限值m=3,图2是为图1所示的13个三角面片建立的索引结构中结点轴向包围盒示意图,图3为索引结构的结构示意图,结点A是根索引结点,B、C为叶索引结点,D、E、F、G、H、I、J、K、L、M、N、O、P、Q为数据结点。
本发明采用C程序设计语言实现三角网格曲面模型索引结构的建立。三角网格曲面模型索引结构的结点分为根索引结点、内部索引结点和叶索引结点,其中内部索引结点中存储了其父结点地址、子结点(可能是内部索引结点,也可能是叶索引结点)地址表、索引结点的轴向包围盒信息(轴向包围盒两对角顶点信息)及对应的四维点对象信息。叶索引结点中存储了其父结点地址、数据结点地址表、结点的轴向包围盒信息及对应的四维点对象信息。三角网格曲面模型索引结构的根索引结点可能同时也是叶索引结点,根索引结点的父结点地址为空。三角网格曲面模型索引结构中的数据结点存储三角面片对象信息的地址。在各类索引结点的实现中,本发明采用标识位区分不同类型的索引结点,在程序运行过程中,根据结点标识位的值识别结点类型。对于三角网格曲面模型索引结构中每个索引结点的子结点数上限值M和下限值m由用户根据三角网格曲面模型中面片规模自行设置,一般情况下取m=0.4×M。本发明的三角网格曲面模型数据索引与查询方法包括以下步骤:三角网格曲面模型数据读入及建立数据结点链表、新结点插入位置选择及基于三角网格曲面模型数据索引结构采用剪枝策略实现三角面片拓扑近邻查询和两三角网格曲面模型的相交区域查询,新结点插入模块包括选择插入位置程序、结点分裂处理程序、索引结构中结点轴向包围盒及对应四维点对象调整程序。
所述三角网格曲面模型数据读取及数据结点链表建立模块用于读取三角网格曲面模型数据,根据三角面片的三个顶点的坐标为每个三角面片建立沿坐标轴方向且恰好包围三角面片的轴向包围盒,根据轴向包围盒中心坐标(x,y,z)和轴向包围盒的外接球半径r建立四维点对象P(x,y,z,r),并建立数据结点链表,数据结点包含三角面片信息、轴向包围盒以及对应的四维点对象信息。
所述的新结点插入模块用于将结点插入到索引结构中,如果索引结构的根索引结点为空则新建根索引结点,将欲插入结点作为根索引结点的子结点插入;若索引结构非空,图4所示为结点插入流程,根据欲插入结点P、插入层号L及结点的子结点数上限值M、下限值m,1)调用结点选择插入位置程序查询最优插入位置N;2)将结点P作为结点N的子结点插入到索引结构中;3)如果结点N插入新结点后子结点个数未超出子结点数上限值M,则执行步骤6);如果结点N插入新结点后子结点个数大于子结点数上限值M,则调用结点分裂处理程序将结点N分为两个结点N和N′,调整结点N和N′的轴向包围盒及对应四维点对象信息,将新结点N′作为结点N的父结点的子结点插入到索引结构中;4)令N为N的父结点,如果N为根索引结点则执行步骤5),否则执行步骤2);5)如果结点N的子结点数大于子结点数上限值M,则将结点分裂为两个结点N和N′,调整结点N和N′的轴向包围盒及对应四维点对象信息,新建根索引结点R,将结点N和N′作为R的子结点插入,令索引结构的根索引结点指针指向R,令N=R;6)从结点N开始向上调整索引结构中各层结点的轴向包围盒及对因的四维点对象信息。
选择插入位置模块接受新插入结点和欲插入的层号L,选择插入位置步骤如下:1)如果当前索引结构为空,则返回空,否则设当前结点current_node为索引结构的根索引结点、设当前层号current_1为1;2)如果current_1大于等于L,返回当前结点current_node,否则执行步骤3);3)current_1加1,将结点依次插入到curren_node的每个子结点中,选择插入新结点后结点对应的包围盒的外接球增量最小的作为current_node,如果存在大于或等于2个结点在插入新结点后外接球增量最小,则计算外接球增量最小的结点在插入新结点后与其兄弟结点的外接球重叠度增量,设结点的兄弟结点个数为n、轴向包围盒中心坐标分别为(xi,yi,zi)i=1,2,...,n、外接球半径分别为ri i=1,2,...,n,轴向包围盒中心坐标为(x,y,z)、外接球半径为r的结点与其兄弟结点外接球重叠度计算方法为:
S = Σ i = 1 n r + r i ( x - x i ) 2 + ( y - y i ) 2 + ( z - z i ) 2 ,
计算插入新结点前后的外接球重叠度,从而求得插入新结点后外接球重叠度增量,选择重叠度增量较小的子结点作为current_node,如果存在大于或等于2个结点外接球重叠度增量最小,则选择插入新结点后外接球半径最小的结点作为current_node,返回步骤2)继续向下查询插入位置。
所述的结点分裂处理用于当索引结点的子结点数大于定义的最大子结点上限值M而溢出时处理结点分裂,结点分裂程序接受传入的溢出结点N以及N所在索引层的层号L1,则采用四维聚类分簇方法进行结点分裂的步骤如下:1)结点N的子结点集合形成结点集合C;2)以轴向包围盒中心相距最远的一对结点的中心作为初始分簇中心;3)依次计算集合C中每个结点的中心到两分簇中心的距离,将结点插入分簇中心距其中心较近的分簇中;4)两簇结点个数分别为n1和n2,两簇结点对应的四维点坐标分别为(xi1,yi1,zi1,ri1)i1=1,2,...,n1和(xi2,yi2,zi2,ri2)i2=1,2,...,n2;5)根据分簇结果重新计算分簇中心,两分簇中心的新分簇中心分别为(x1,y1,z1)和(x2,y2,z2),其中
x ‾ 1 = Σ i 1 = 1 n 1 x i 1 · r i 1 Σ i 1 = 1 n 1 r i 1 , y ‾ 1 = Σ i 1 = 1 n 1 y i 1 · r i 1 Σ i 1 = 1 n 1 r i 1 , z ‾ 1 = Σ i 1 = 1 n 1 z i 1 · r i 1 Σ i 1 = 1 n 1 r i 1 ,
x ‾ 2 = Σ i 2 = 1 n 2 x i 2 · r i 2 Σ i 2 = 1 n 2 r i 2 , y ‾ 2 = Σ i 2 = 1 n 2 y i 2 · r i 2 Σ i 2 = 1 n 2 r i 2 , z ‾ 2 = Σ i 2 = 1 n 2 z i 2 · r i 2 Σ i 2 = 1 n 2 r i 2 ,
以(x1,y1,z1)和(x2,y2,z2)更新两分簇中心;6)若分簇次数大于或等于2(M+1)则结束分簇,若分簇次数小于2(M+1)则执行步骤7)继续分簇,否则执行步骤8);7)比较前后两次各分簇中心是否发生变化,如果变化则返回步骤3)继续分簇,否则执行步骤8);8)若某簇中结点个数nk(k=1或2)小于指定子结点下限值m,则将另一簇中距离Ck最近的m-nk个结点插入到分簇Ck中执行步骤9),否则直接执行步骤9);9)更新分簇中心建立新结点N′,将两簇结点分别作为结点N和N’的子结点。
所述的索引结构中结点轴向包围盒及对应四维点对象调整用于在结点插入结束后从发生变化的结点向上调整索引结构中结点的轴向包围盒及对应四维点对象信息,设结点轴向包围盒发生变化的源结点为src_node,索引结构中结点轴向包围盒及对应四维点对象调整的执行步骤如下:1)调整结点src_node的轴向包围盒,使得src_node的轴向包围盒恰好包含src_node的所有子结点的轴向包围盒,并调整结点src_node对应的四维点坐标值;2)若src_node为根索引结点,程序返回,否则执行步骤3);3)令src_node为src_node的父结点,调整结点src_node轴向包围盒,使得src_node的轴向包围盒恰好包含src_node的所有子结点的轴向包围盒,并调整结点src_node对应的四维点坐标值,返回步骤2)。
指定目标三角面片,邻接三角面片的查询程序用于在三角网格曲面模型中搜索与目标三角面片存在公共边的三角面片,采用剪枝策略查询的步骤如下:1)令current_node指向三角网格曲面模型数据索引结构的根索引结点;2)若current_node的轴向包围盒与目标三角面片的轴向包围盒相交则执行步骤3),若current_node的轴向包围盒与目标三角面片轴向包围盒不相交则返回;3)若current_node为叶索引结点,则依次比较current_node的子结点轴向包围盒与目标三角面片轴向包围盒是否相交,如果不相交则继续比较下一个,如果相交则比较该子结点是否与目标三角面片存在公共点或公共边,若存在则将该子结点存入目标三角面片的邻接关系表中,若不存在则继续比较下一个子结点,直到比较完current_node所有子结点,程序返回,若current_node为非叶索引结点则执行步骤4);4)令current_node依次为current_node的子结点,执行步骤2)。
基于所述的三角网格曲面模型数据索引结构,两三角网格曲面模型分别为S1和S2,采用剪枝策略查询两三角网格曲面模型相交区域的步骤如下:1)遍历三角网格曲面模型S1中的三角面片,以S1中的每个三角面片作为目标三角面片执行步骤2);2)令current_node指向三角网格曲面模型S2的索引结构的根索引结点;3)若current_node的轴向包围盒与目标三角面片的轴向包围盒相交则执行步骤4),若current_node的轴向包围盒与目标三角面片轴向包围盒不相交则返回;4)若current_node为叶索引结点,则依次比较current_node的子结点轴向包围盒与目标三角面片轴向包围盒是否相交,如果不相交则继续比较下一个,如果相交则对该子结点对应的三角面片与目标三角面片进行求交运算,如果存在交点则将该子结点对应的三角面片标记为相交区域三角面片,同时标记目标三角面片为相交区域三角面片,若不存在则继续比较下一个子结点,直到比较完current_node所有子结点,程序返回,若current_node为非叶索引结点则执行步骤5);5)令current_node依次为current_node的子结点,执行步骤3)。
如图5为本文实施案例中所采用的三角网格曲面模型,图5a和图5b分别为渲染图、网格效果图,其中三角面片数为69469。取M=20、m=8、k=5对图5所示三角网格曲面模型建立索引结构,建立的索引结构分为5层,图6a~图6d分别为索引结构第二层、第三层、第三层和叶索引结点层结点轴向包围盒效果,图6e为数据结点层轴向包围盒效果。
图7a为两相交的三角网格模型,两模型的三角面片数均为12000,图7b为采用本发明的三角网格曲面模型查询方法获取的相交三角面片集合。
其它三角网格曲面模型的索引与查询方法同上。

Claims (3)

1.一种三角网格曲面模型的空间查询方法,其特征在于包含以下步骤:
一、从三角网格曲面模型数据文件读取三角网格曲面模型数据并建立数据结点,为每个三角面片建立轴向包围盒,根据轴向包围盒中心及轴向包围盒外接球半径将数据结点处理成四维点对象,建立数据结点链表;
二、基于三角面片的轴向包围盒及对应的四维点对象,建立三角网格曲面模型索引结构,其步骤为:为结点选择插入位置、采用四维聚类分簇方法实现结点分裂、索引结构中结点轴向包围盒及对应四维点对象调整,其中:
为结点选择插入位置的步骤具体是:1)指定要插入的新结点和插入层号,2)设当前结点为current_node,如果索引结构为空则返回空,否则令current_node为索引结构根结点、当前层号为1;3)令current_node的每个子结点包含欲插入到索引结构的新结点,计算包含新结点后结点的轴向包围盒外接球半径,与原结点外接球半径相比较,以外接球半径增量最小的结点作为current_node;4)如果存在大于或等于2个结点在包含新结点后符合外接球增量最小,则计算外接球增量最小的结点在插入新结点后与其兄弟结点的外接球重叠度增量,并选择重叠度增量较小的子结点作为current_node;5)如果存在大于或等于2个外接球重叠度增量最小的结点,则选择包含新结点后外接球半径最小的结点作为current_node,令当前层号加1;6)返回步骤3)直到当前层号等于新结点欲插入的层号;
索引结构中结点轴向包围盒及对应四维点对象调整的具体步骤是:1)设轴向包围盒发生变化的索引结点为src_node;2)调整索引结点src_node的轴向包围盒,使得src_node的轴向包围盒恰好包含src_node的所有子结点的轴向包围盒,并调整索引结点src_node对应的四维点坐标值;3)若src_node为根索引结点,程序返回,否则执行步骤4);4)令src_node为src_node的父结点,调整索引结点src_node轴向包围盒,使得src_node的轴向包围盒恰好包含src_node的所有子结点的轴向包围盒,并调整索引结点src_node对应的四维点坐标值,返回步骤3);
三、基于三角网格曲面模型索引结构,采用剪枝策略实现三角面片拓扑近邻三角面片查询和两三角网格曲面模型的相交区域查询,其中:
采用剪枝策略查询三角面片拓扑近邻三角面片的具体步骤是:1)设当前结点current_node为三角网格曲面模型索引结构的根索引结点;2)若current_node的轴向包围盒与目标三角面片的轴向包围盒相交则执行步骤3),若current_node的轴向包围盒与目标三角面片轴向包围盒不相交则返回;3)若current_node为非叶索引结点则执行步骤4),若current_node为叶索引结点,则依次比较current_node的子结点轴向包围盒与目标三角面片轴向包围盒是否相交,如果不相交则继续比较下一个子结点,如果相交则比较该子结点对应的三角面片是否与目标三角面片存在公共边,若存在公共边则将该子结点添加到目标三角面片的邻接关系表中,若不存公共边在则继续比较下一个子结点,直到比较完current_node所有子结点,程序返回;4)令current_node依次为current_node的子结点,执行步骤2);
采用剪枝策略查询两三角网格曲面模型相交区域的具体步骤是:1)设两三角网格曲面模型分别为S1和S2;2)遍历三角网格曲面模型S1中的三角面片,以S1中的每个三角面片作为目标三角面片执行步骤3);3)设当前结点current_node为三角网格曲面模型S2的索引结构的根索引结点;4)若current_node的轴向包围盒与目标三角面片的轴向包围盒相交则执行步骤5),若current_node的轴向包围盒与目标三角面片轴向包围盒不相交则返回;5)若current_node为叶索引结点,则依次比较current_node的子结点轴向包围盒与目标三角面片轴向包围盒是否相交,如果不相交则继续比较下一个子结点,如果相交则对该子结点对应的三角面片与目标三角面片进行求交运算,如果存在交点则将该子结点对应的三角面片标记为相交区域三角面片,同时标记目标三角面片为相交区域三角面片,若不存在则继续比较下一个子结点,直到比较完current_node所有子结点,程序返回,若current_node为非叶索引结点则执行步骤6);6)令current_node依次为current_node的子结点,执行步骤4)。
2.如权利要求1所述的三角网格曲面模型的空间查询方法,其特征在于:在步骤一中,根据三角面片的三个顶点的坐标为每个三角面片建立沿坐标轴方向且恰好包围三角面片的轴向包围盒,根据轴向包围盒中心坐标(x,y,z)和轴向包围盒的外接球半径r建立四维点对象P(x,y,z,r),并建立数据结点链表,数据结点包含三角面片信息、轴向包围盒以及对应的四维点对象信息。
3.如权利要求1所述的三角网格曲面模型的空间查询方法,其特征在于:在步骤二中,结点包括数据结点和索引结点,索引结点包含根索引结点、内部索引结点和叶索引结点,索引结构的最上层结点为根索引结点、最下层结点为叶索引结点,其他索引结点为内部索引结点,定义索引结点的子结点上限值为大于2的整数M、下限值为小于或等于M/2的整数m,每个索引结点的子结点数小于等于M且除根索引结点外所有索引结点的子结点数大于等于m,所有叶索引结点均在同一层;索引结构中每个索引结点的轴向包围盒恰好包围该索引结点的所有子结点的轴向包围盒,每个索引结点都对应一个四维点对象,四维点对象坐标为(x,y,z,r),其中(x,y,z)为索引结点轴向包围盒中心坐标,r为索引结点轴向包围盒外接球半径。
CN2008101597480A 2008-11-12 2008-11-12 三角网格曲面模型的空间查询方法 Expired - Fee Related CN101430693B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2008101597480A CN101430693B (zh) 2008-11-12 2008-11-12 三角网格曲面模型的空间查询方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2008101597480A CN101430693B (zh) 2008-11-12 2008-11-12 三角网格曲面模型的空间查询方法

Publications (2)

Publication Number Publication Date
CN101430693A CN101430693A (zh) 2009-05-13
CN101430693B true CN101430693B (zh) 2010-08-11

Family

ID=40646096

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008101597480A Expired - Fee Related CN101430693B (zh) 2008-11-12 2008-11-12 三角网格曲面模型的空间查询方法

Country Status (1)

Country Link
CN (1) CN101430693B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102831241A (zh) * 2012-09-11 2012-12-19 山东理工大学 产品逆向工程数据动态索引多目标自适应构建方法

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101853526A (zh) * 2010-06-04 2010-10-06 浙江工业大学 一种自适应密度的非均匀点云简化处理方法
CN101853485A (zh) * 2010-06-04 2010-10-06 浙江工业大学 一种基于近邻传播聚类的非均匀点云简化处理方法
CN102012908B (zh) * 2010-11-12 2012-11-21 浙江大学 障碍物环境中可视移动近邻的查询方法
CN102880675A (zh) * 2012-09-11 2013-01-16 山东理工大学 基于均值漂移产品逆向工程数据动态索引自适应构建方法
CN107766445B (zh) * 2017-09-23 2021-06-01 湖南胜云光电科技有限公司 一种支持多维度检索的高效快速数据检索方法
CN111854683B (zh) * 2020-07-17 2022-06-17 重庆市勘测院 用于三维空间数据高程采样的方法及装置、设备

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102831241A (zh) * 2012-09-11 2012-12-19 山东理工大学 产品逆向工程数据动态索引多目标自适应构建方法

Also Published As

Publication number Publication date
CN101430693A (zh) 2009-05-13

Similar Documents

Publication Publication Date Title
CN101430693B (zh) 三角网格曲面模型的空间查询方法
CN101510225B (zh) 产品stl模型布尔运算方法
CN102682103B (zh) 一种面向海量激光雷达点云模型的三维空间索引方法
Zhu et al. An efficient 3D R-tree spatial index method for virtual geographic environments
CN102663801B (zh) 一种提高三维模型渲染性能的方法
CN101692230A (zh) 顾及多细节层次的三维r树空间索引方法
US20140052711A1 (en) Constructing multidimensional histograms for complex spatial geometry objects
CN106095907A (zh) 基于八叉树与三维r星树集成的激光点云数据管理方法
CN102306180A (zh) 一种基于海量激光雷达栅格点云数据的建模方法
CN102063486A (zh) 一种面向多维数据管理的云计算平台查询处理方法
CN102298795A (zh) Stl三角网格模型的三维分段方法
CN102508973B (zh) 产品stl模型快速求交方法
CN101510315B (zh) 产品stl模型的空间索引结构建立方法
CN111813778B (zh) 一种面向大规模路网数据的近似关键字存储和查询方法
CN107391745A (zh) 大规模空间数据分级快速索引方法和装置
CN102012908B (zh) 障碍物环境中可视移动近邻的查询方法
CN109712229A (zh) 一种单株树木骨架点提取方法、装置、设备及存储介质
CN104731984A (zh) R树上溢结点分裂问题的增量式聚类优化求解方法
CN113094463A (zh) 一种非结构化点云存储方法、装置、设备及介质
CN110287508A (zh) 一种多源三维城市模型的可视化融合系统
CN111427978B (zh) 基于城市形态学和r树的三维模型索引方法
CN102831241A (zh) 产品逆向工程数据动态索引多目标自适应构建方法
CN117331947A (zh) 一种多维自适应增量r树索引构建方法
CN113342999B (zh) 一种基于多层跳序树结构的变分辨率点云简化方法
CN113901156B (zh) 三维自适应网格r+树混合索引构建、维护、查询方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20100811

Termination date: 20101112