一种基于网络拓扑的三角形剖分方法

文档序号:6436250阅读:532来源:国知局
专利名称:一种基于网络拓扑的三角形剖分方法
技术领域
本发明涉及计算机图形学领域,特别是涉及一种基于网络拓扑的三角形剖分方法。
背景技术
现有的散点集的三角剖分中,狄洛尼(Delaimay)三角网在剖分拟合方面表现最为出色,因此常被采用。应用随机增量法,扫描线法等是平面投影法中常用的剖分算法,这些算法编程简单,占用内存少,但是计算速度较慢。当散点较少时,执行三角剖分的效率差别不大,但是当面对大量散点集合时这些剖分算法的效率会呈现几何级的递减。基于网络拓扑的三角形剖分可以有效的解决大数据三角剖分效率慢的问题。
因而,目前需要本领域技术人员迫切解决的一个技术问题就是如何找到一种新型的基于网络拓扑的三角形剖分方法,可以有效的解决目前基于网络拓扑的三角形剖分方法中大数据三角剖分效率慢的问题。发明内容
本发明所要解决的一个技术问题是提供一种基于网络拓扑的三角形剖分方法,该方法可以有效的解决目前基于网络拓扑的三角形剖分方法中大数据三角剖分效率慢的问题。
为了解决上述问题,本发明公开了一种基于网络拓扑的三角形剖分方法,包括
对数据点及剖分三角形进行定义,获得数据点的数据结构及剖分三角形的数据结构;
为进行基于网络拓扑的三角形剖分做数据准备;
初始化三角形链表;
定位剖分三角形;
对目标三角形进行剖分并优化完成剖分过程。
优选的,所述为进行基于网络拓扑的三角形剖分做数据准备的步骤,包括
将点集赋值给自定义的数据结构,获得赋值的数据结构;
依据赋值的数据结构,计算点集的范围,获得点集的计算范围;
依据点集的计算范围,计算包围三角形的范围,获得包围三角形的范围;
依据包围三角形的范围,为进行基于网络拓扑的三角形剖分做数据准备。
优选的,所述初始化三角形链表的步骤,包括
依据散点集的范围,构造一个包含所有待剖分散点集的三角形;
将包含所有剖分散点集的三角形放到三角形链表中,进行初始化三角形链表。
优选的,所述定位剖分三角形的步骤,包括
依据搜索规则,依次从点集取出当前点在链表中进行最小包围三角形搜索过程;
其中,所述搜索规则是对后添加的三角形先进行搜索过程,对先添加的三角形后进行搜索过程。
优选的,所述依据搜索规则,依次从点集取出当前点在链表中进行最小包围三角形搜索过程的步骤,包括
若点集中的取出点在三角形链表的首个三角形中,则首个三角形即为剖分的目标三角形;
若点集中的取出点不在三角形链表的首个三角形中,则通过进行网络拓扑关系的判断来找到剖分的目标三角形。
优选的,所述通过进行网络拓扑关系的判断来找到剖分的目标三角形的步骤,包括
通过新加入点和链表的首个三角形重心连线与三角形边的相交情况找出与上个三角形相比距离加入点的绝对数值小的三角形,直到找到包含该点的目标三角形。
优选的,所述定位剖分三角形的步骤,包括
收集进行定位剖分的散点集,获得进行定位剖分的散点集;
依据进行定位剖分的散点集的数量,相应的执行进行定位剖分的剖分过程或不执行进行定位剖分的剖分过程。
优选的,所述依据进行定位剖分的散点集的数量,相应的进行定位剖分的剖分过程或不执行进行定位剖分的剖分过程的步骤,包括
若进行定位剖分的散点集的数量为大于三,则执行进行定位剖分的剖分过程;
若进行定位剖分的散点集的数量为三或小于三,则执行不进行定位剖分的剖分过程。
优选的,所述若进行定位剖分的散点集的数量为大于三,则执行进行定位剖分的剖分过程的步骤,包括
初始化三角形链表;
添加数据点;
依据剖分规则,查找剖分三角形;若选取点在三角形内,则对三角形进行剖分;若选取点不在三角内,则返回执行查找剖分三角形的步骤,至到找到查找剖分三角形,再对找到的三角形进行剖分;
若在对三角形进行剖分的过程中,选取完所有的散点集中的数据点,则接收停止进行剖分的指令,结束进行定位剖分的剖分过程;
若在对三角形进行剖分的过程中,未选取完所有的散点集中的数据点,则返回执行添加数据点的步骤,并重复执行从添加数据点到对三角形进行剖分的步骤,至到选取完散点集中的数据点,则接收停止进行剖分的指令,结束进行定位剖分的剖分过程。
优选的,所述对目标三角形进行剖分并优化完成剖分过程的步骤,包括
通过加入点对目标三角形进行剖分,获得目标三角形的剖分结果;
对与剖分三角形有公共边的三角形进行同步优化,获得目标三角形的优化剖分结果及与剖分三角形有公共边的三角形的优化剖分结果。
与现有技术相比,本发明具有以下优点
1、针对现有算法进行了相应的改进,改进的算法将不同位置的点剖分存储到相应的链表中,有效地降低了搜索剖分三角形的时间,提高了剖分的速度。
2、采用同步优化方法,大大地提高了剖分三角形的质量,形成的三角形表面质量尚ο
3、本发明所采用的改进的算法不仅速度快,且占用的内存小。
总之,本发明提供了一种基于网络拓扑的三角形剖分方法,该方法可以有效的解决目前基于网络拓扑的三角形剖分方法中大数据三角剖分效率慢的问题。


图1是本发明一种基于网络拓扑的三角形剖分方法实施例1的步骤流程图2是本发明中的散列点的结构示意图3是本发明中的定位剖分三角形的搜索路径的示意图4是本发明中的三角形剖分结果示意图5是本发明一种基于网络拓扑的三角形剖分方法实施例2的步骤流程图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式
对本发明作进一步详细的说明。
本发明的核心思想之一是提供了一种基于网络拓扑的三角形剖分方法,包括对数据点及剖分三角形进行定义,获得数据点的数据结构及剖分三角形的数据结构;为进行基于网络拓扑的三角形剖分做数据准备;初始化三角形链表;定位剖分三角形;对目标三角形进行剖分并优化完成剖分过程;该方法可以有效的解决目前基于网络拓扑的三角形剖分方法中大数据三角剖分效率慢的问题。
参照图1,示出了本发明一种基于网络拓扑的三角形剖分方法实施例1的步骤流程图,具体可以包括
步骤101、对数据点及剖分三角形进行定义,获得数据点的数据结构及剖分三角形的数据结构。
其中,
数据结构主要包含数据点和剖分三角形的定义。
如下所述,表1示出了 点的结构体用Vertex表示,为单向链表。
权利要求
1.一种基于网络拓扑的三角形剖分方法,其特征在于,包括对数据点及剖分三角形进行定义,获得数据点的数据结构及剖分三角形的数据结构; 为进行基于网络拓扑的三角形剖分做数据准备; 初始化三角形链表; 定位剖分三角形;对目标三角形进行剖分并优化完成剖分过程。
2.如权利要求1所述的方法,其特征在于,所述为进行基于网络拓扑的三角形剖分做数据准备的步骤,包括将点集赋值给自定义的数据结构,获得赋值的数据结构; 依据赋值的数据结构,计算点集的范围,获得点集的计算范围; 依据点集的计算范围,计算包围三角形的范围,获得包围三角形的范围; 依据包围三角形的范围,为进行基于网络拓扑的三角形剖分做数据准备。
3.如权利要求1所述的方法,其特征在于,所述初始化三角形链表的步骤,包括 依据散点集的范围,构造一个包含所有待剖分散点集的三角形;将包含所有剖分散点集的三角形放到三角形链表中,进行初始化三角形链表。
4.如权利要求1所述的方法,其特征在于,所述定位剖分三角形的步骤,包括 依据搜索规则,依次从点集取出当前点在链表中进行最小包围三角形搜索过程;其中,所述搜索规则是对后添加的三角形先进行搜索过程,对先添加的三角形后进行搜索过程。
5.如权利要求4所述的方法,其特征在于,所述依据搜索规则,依次从点集取出当前点在链表中进行最小包围三角形搜索过程的步骤,包括若点集中的取出点在三角形链表的首个三角形中,则首个三角形即为剖分的目标三角形;若点集中的取出点不在三角形链表的首个三角形中,则通过进行网络拓扑关系的判断来找到剖分的目标三角形。
6.如权利要求5所述的方法,其特征在于,所述通过进行网络拓扑关系的判断来找到剖分的目标三角形的步骤,包括通过新加入点和链表的首个三角形重心连线与三角形边的相交情况找出与上个三角形相比距离加入点的绝对数值小的三角形,直到找到包含该点的目标三角形。
7.如权利要求1所述的方法,其特征在于,所述定位剖分三角形的步骤,包括 收集进行定位剖分的散点集,获得进行定位剖分的散点集;依据进行定位剖分的散点集的数量,相应的执行进行定位剖分的剖分过程或不执行进行定位剖分的剖分过程。
8.如权利要求7所述的方法,其特征在于,所述依据进行定位剖分的散点集的数量,相应的进行定位剖分的剖分过程或不执行进行定位剖分的剖分过程的步骤,包括若进行定位剖分的散点集的数量为大于三,则执行进行定位剖分的剖分过程; 若进行定位剖分的散点集的数量为三或小于三,则执行不进行定位剖分的剖分过程。
9.如权利要求8所述的方法,其特征在于,所述若进行定位剖分的散点集的数量为大于三,则执行进行定位剖分的剖分过程的步骤,包括初始化三角形链表; 添加数据点;依据剖分规则,查找剖分三角形;若选取点在三角形内,则对三角形进行剖分;若选取点不在三角内,则返回执行查找剖分三角形的步骤,至到找到查找剖分三角形,再对找到的三角形进行剖分;若在对三角形进行剖分的过程中,选取完所有的散点集中的数据点,则接收停止进行剖分的指令,结束进行定位剖分的剖分过程;若在对三角形进行剖分的过程中,未选取完所有的散点集中的数据点,则返回执行添加数据点的步骤,并重复执行从添加数据点到对三角形进行剖分的步骤,至到选取完散点集中的数据点,则接收停止进行剖分的指令,结束进行定位剖分的剖分过程。
10.如权利要求1所述的方法,其特征在于,所述对目标三角形进行剖分并优化完成剖分过程的步骤,包括通过加入点对目标三角形进行剖分,获得目标三角形的剖分结果; 对与剖分三角形有公共边的三角形进行同步优化,获得目标三角形的优化剖分结果及与剖分三角形有公共边的三角形的优化剖分结果。
全文摘要
本发明提供了一种基于网络拓扑的三角形剖分方法,包括对数据点及剖分三角形进行定义,获得数据点的数据结构及剖分三角形的数据结构;为进行基于网络拓扑的三角形剖分做数据准备;初始化三角形链表;定位剖分三角形;对目标三角形进行剖分并优化完成剖分过程;该方法可以有效的解决目前基于网络拓扑的三角形剖分方法中大数据三角剖分效率慢的问题。
文档编号G06T17/20GK102496186SQ20111032513
公开日2012年6月13日 申请日期2011年10月24日 优先权日2011年10月24日
发明者卢文波, 杜田春 申请人:克拉玛依红有软件有限责任公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1