本发明专利技术涉及一种基于邻接边二叉树的DNC面几何构造方法,包括以下步骤:(1)读取一个面号;(2)创建一个面;(3)搜寻边表中左面或右面为的所有边,组成候选边集合;(4)从边集合取一条边,创建边邻接二叉树,以根节点创建一个环;(5)判断边是否为孤立边或者自身构环,是则将边加入环,并且从边集合中删除该边,执行步骤(8);否则执行步骤(6);(6)将当前边设为该边,将当前节点设为根;(7)采用递归方法构造邻边二叉树组成环;(8)将环存入面;(9)如果边集合不空的话,则循环执行步骤(4)至(9);(10)计算所有环中外接矩形最大的一个作为外环,从而得到DNC面几何。本发明专利技术利用边表数据信息,实现DNC数据内部所有环、面几何的构造,可广泛用于面拓扑的构建和数据恢复。
【技术实现步骤摘要】
本专利技术属于数字图形处理领域,尤其是一种基于邻接边二叉树的DNC面几何构造方法。
技术介绍
DNC(Digital Nautical Chart)是数字海图中的一类重要数据类型,由于DNC内部拓扑结构较为复杂,尤其是翼边拓扑(Winged-edge)的采用,使得DNC与其它类型地理空间数据在组织方式上存在较大区别,表现在面几何上的区别为(I)面内的孤立边被当作内环,与内环相连接的悬挂边被当作内环的组成边之一;(2)对于组成面几何的任意一个环,DNC数据中只给出了其中一条边,即起始边(start edge) ; (3)每一个环通常具有内环(夕卜部面)和外环(内部面)双重角色(特例全域面的最大外环为空;孤立边不具备外环的角 色)。在DNC数据的实际应用过程中,对DNC数据进行数据解析是实现DNC数据显示、转换与分析的基础,而DNC面的几何构造是实现DNC数据解析的关键。目前,现有算法在进行DNC面几何构造时,需要同时利用面表、环表和边表信息,其大致过程为通过面表中的面ID寻找环表中相关的环ID,由环ID寻找边表的起始边ID。现有算法过程繁琐,并且如果遇到面表或环表损坏,则算法失效。
技术实现思路
本专利技术的目的在于克服现有技术的不足,提供一种设计合理、快速有效的基于邻接边二叉树的DNC面几何构造方法。本专利技术解决其技术问题是采取以下技术方案实现的一种基于邻接边二叉树的DNC面几何构造方法,包括以下步骤(I)读取一个面号 faceID ;(2)创建一个面 face ;(3)搜寻边表中左面或右面为faceID的所有边,组成候选边集合EdgePool ;(4)从边集合EdgePool取一条边Edge,仓丨」建边邻接二叉树,以根节点RootNode创建一个环Ring ;(5)判断边Edge是否为孤立边或者自身构环,是则将边Edge加入环Ring,并且从边集合EdgePool中删除该边Edge,执行步骤(8);否则执行步骤(6);(6)将当前边CurEdge设为该边Edge,将当前节点CurNode设为根RootNode ;(7)采用递归方法构造邻边二叉树组成环Ring ;(8)将环 Ring 存入面 face ;(9)边集合EdgePool是否为空,如果不为空的话,则循环执行步骤(4)至(9),否则执行下一步;(10)计算所有环中外接矩形最大的一个,作为外环,从而得到DNC面几何。而且,所述步骤(10)后还包括从DNC面几何中剔除孤立边和悬挂边的步骤,得到常规面几何并完成DNC数据内部所有环、面几何的构造。而且,所述步骤(7)采用递归方法构造邻边二叉树组成环Ring包括如下步骤(I)获取当前边CurEdge的左边LeftEdge和后边RightEdge,创建当前节点CurNode 的左子点 LeftChild 和后子点 RightChild ;(2)判断左边LeftEdge是否属于边集合EdgePool且不属于环Ring,不是则执行步骤(3),否则将当前边CurEdge设为左边LeftEdge,当前节点CurNode设为左子点LeftChild,左子点LeftChild设为左边LeftEdge,将左边LeftEdge加入环Ring,在边集合EdgePool中删除左边LeftEdge,然后递归构造邻边二叉树,执行步骤(3);(3)判断右边RightEdge是否属于边集合EdgePool且不属于环Ring,不是则执行步骤(4),否则将前边CurEdge设为右边RightEdge,当前节点CurNode设为右子点RightChild,右子点RightChild设为右边RightEdge,将右边RightEdge加入环Ring,在边 集合EdgePool中删除右边RightEdge,然后递归构造邻边二叉树,执行步骤(4);(4)递归构造邻边二叉树处理结束并返回。本专利技术的优点和积极效果是本专利技术只需利用边表数据信息,通过递归构造邻接边二叉树,获得每个环的所有组成边;在邻接边二叉树中去掉孤立边和悬挂边,左序遍历或右序遍历二叉树,形成常规的面几何数据,从而完成DNC数据内部所有环、面几何的构造,可广泛用于面拓扑的构建和数据恢复。附图说明图I是一个DNC翼边拓扑结构示意图,其中图Ia为原始数据,图Ib为DNC拓扑结构示意图;图2是DNC翼边拓扑原理图;图3是面几何相关拓扑结构简化图;图4是面几何构造方法流程图;图5是递归构造邻边二叉树的流程图;图6是面几何构建过程示意图。具体实施例方式以下结合附图对本专利技术实施例做进一步详述一种基于邻接边二叉树的DNC面几何构造方法,是在对DNC内部结构进行深入分析的基础上,根据边的拓扑信息实现DNC数据内部所有环、面几何的构造功能。通过对DNC内部结构进行分析可以看出,DNC采用了翼边拓扑结构。如图I所示,图Ia表示的是原始数据,图Ib是用DNC数据表示的带有悬挂边的环的拓扑结构,图中的数字表示边ID。作为全域面(外部面)的一个内环,它是通过“起始边162”给出的,包含了5个悬挂边,分别是“边160”、“边162”、“边167”、“边168”和“边169” ;作为FaceN(内部面)的外环,它是通过“起始边163”给出的,不包含悬挂边。下面对DNC拓扑结构进行分析。DNC采用的是翼边拓扑结构,翼边拓扑的最主要特征在于“边-边”和“边-面”的左右邻接关系,对于任意一条边Edge〈StartNode,EndNode>,StartNode为Edge的起始节点(起点),EndNode为Edge的终止节点(终点),Edge的左边和右边分别是StartNode和EndNode按照逆时针方向搜寻到的第一条边;Edge的左面和右面分别是沿着Edge方向的左侧面和右侧面。图2给出了翼边拓扑的示意图,其中“边1”〈A,B〉的左边是“边5”〈A,F〉,右边是“边2”〈B,C〉。面几何的拓扑组织,如图3所示,该图给出了面几何相关拓扑结构的简化关系,数据组织方式可以总结为如下几点1、面表(FAC)只存储每个面的外环在环表中的指针;2、环表(RNG)按照面ID的顺序,依次存储每个面组成环的起始边指针,且每个面的第一个起始边指针表示外环;3、边表(EDGE)中每个边记录都包含了其左边、右边、左面、右面,以及起点和终点。通过DNC拓扑结构进行分析,我们可以得出以下结论I、任给一条边Li,Al是Li的左面,Ar是Li的右面,则Li G Ar,且Li G Al。2、任给一个面Ai,设Ai相应边表中所有边组成的集合为L,Ai可能包含的边组成的集合为LH (关联边候选集合),则LH = {Li I Li G L,且Li. Al = Ai或者Li. Ar = Aij。3、任给一条边Li G LH, Ai是一个面,且Li G Ai,如果LI是Li的左边,Lr是Li的右边,则至少存在一条边Lk,使得Lk G {LI,Lr} G Ai。4、任给一条边Li,Ai是一个面,Ri是Ai的一个环,如果Li G Ri n Li G Ai存在,则Ai,Ri是唯一的。5、任给一条边Li G LH,LI是Li的左边,Lr是Li的右边,令Li为根节点,LI、Lr是Li的左、右子节点,依此类推,则可形成一个LH的递归二叉树LTree。如果3 G LTr本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种基于邻接边二叉树的DNC面几何构造方法,其特征在于包括以下步骤 (1)读取一个面号faceID; (2)创建一个面face; (3)搜寻边表中左面或右面为faceID的所有边,组成候选边集合EdgePool; (4)从边集合EdgePool取一条边Edge,仓Il建边邻接二叉树,以根节点RootNode创建一个环Ring ; (5)判断边Edge是否为孤立边或者自身构环,是则将边Edge加入环Ring,并且从边集合EdgePool中删除该边Edge,执行步骤(8);否则执行步骤(6); (6)将当前边CurEdge设为该边Edge,将当前节点CurNode设为根RootNode; (7)采用递归方法构造邻边二叉树组成环Ring; (8)将环Ring存入面face; (9)边集合EdgePool是否为空,如果不为空的话,则循环执行步骤(4)至(9),否则执行下一步; (10)计算所有环中外接矩形最大的一个,作为外环,从而得到DNC面几何。2.根据权利要求I所述的基于邻接边二叉树的DNC面几何构造方法,其特征在于所述步骤(10)后还包括从DNC面几何中剔除孤立边和悬挂边的步骤,得到常规面几何并完成DNC数据内部所有环、面几何的构造。3.根据权利要求I或2所述的基于邻...
【专利技术属性】
技术研发人员:翟京生,陈长林,陆毅,黄辰虎,牛红光,
申请(专利权)人:中国人民解放军九二八五九部队,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。