拓扑关系 topological relation
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
拓扑关系 topological relation
指满足拓扑几何学原理的各空间数据间的相互关系。
即用结点、弧段和多边形所表示的实体之间的邻接、关联、包含和连通关系。
如:点与点的邻接关系、点与面的包含关系、线与面的相离关系、面与面的重合关系等。
拓扑关系是指图形元素之间相互空间上的连接、邻接关系并不考虑具体位置.这种拓扑关系是由数字化的点、线、面数据形成的以用户的查询或应用分析要求进行图形选取、叠合、合并等操作
拓扑关系是地理对象在空间位置上的相互关系,如节点与线、线与面之间的连接关系,空间实体之间的拓扑关系是GIS进行空间分析和决策的基础之一,是否具有高效、可靠的拓扑处理功能已成为衡量GIS软件的重要标准。
空间拓扑关系描述的是基本的空间目标点、线、面之间的邻接、关联和包含关系。
GIS传统的基于矢量数据结构的结点-弧段-多边形,用于描述地理实体之间的连通性、邻接性和区域性。
这种拓扑关系难以直接描述空间上虽相邻但并不相连的离散地物之间的空间关系。
拓扑关系作为GIS中主要表达和分析的空间关系之一,其表达有利于空间数据组织、空间分析、空间查询、空间推理和空间一致性检验[8]。
Guo Wei, Zhan Ping, Chen Jun. Topological data model for 3D GIS [J].IAPRS,1998,32(4):657-661.
在对四面体拓扑关系进行精心设计的基础上,利用面向对象的思想,对点、线、面、体在不同层次上进行逻辑分离,并提出对象管理器的概念进行针对性地组织、管理。
采用适当的数据结构描述四面体的拓扑关系,加快了切面切割四面体的速度,很大程度上提高了模拟巷道开挖的生成速度。
文中按照拓扑对象点、线、面、体的顺序,层层
构建,层层关联。
每一个拓扑对象中都包含着与自
身相邻接的拓扑对象的信息。
如在拓扑边中,包含
了构建自身的邻接节点信息以及由该拓扑边构建
的邻接拓扑面的信息,具体组织如图3所示。
同类
拓扑对象之间的拓扑信息,由下一级拓扑对象来体现。
如果两个拓扑面同在一条拓扑边的邻接面列表
中,则该两个面以该边为公共边相邻接。
如果两个
拓扑面各有一边共用顶点,则该两面为顶点邻接。
同理,体元之间的相邻、相离等拓扑属性也是通过
构成这个体的拓扑面来体现的。
这样,点、线、面、
体元之间的拓扑关系便可以清晰表现。
这些具备严
格复杂拓扑关系的对象在存储中必须遵循唯一性
原则,才能保证整个拓扑系统的有效性。
文中引入对象管理器以实现空间数据的分离
(层)思想,并对三维空间对象及其拓扑关系提供针
对性的组织管理。
在剖分阶段,采用合适的数据结
构对不同的三维对象进行组织存储,以加快游离拓
扑对象的固化过程,从而实现大规模空间拓扑对象
的快速构建,并提供一系列必要的操作,维系空间
对象及其相互间的拓扑关系。
其设计逻辑模型如图
6所示。
考虑到在剖分阶段,拓扑对象的固化是大量空间对象快速创建的瓶颈,而固化过
程中的匹配是
以顶点为依据,控制好顶点的快速匹配,是解决这
一问题的关键。
所以,对节点采用了平衡二叉树结
构,这种结构的查询匹配具备对数复杂度,可以大
大缩短拓扑节点匹配固化的过程。
在此基础上,利
用拓扑关系进行游离拓扑边的固化,进而快速固化
拓扑面、拓扑体。
这种平衡二叉树存储节点结合拓
扑关系的方法可以大大缩短三维对象匹配固化过
程,加快拓扑对象的生成速度。
特别当大量的拓扑
对象生成时,其功效是十分显著的。
对象管理器使
得对三维对象的管理具有针对性、可扩展性,以及
良好的可操作性。
在地学应用中,对空间模型进行平面切割是
比较常用的分析和操作。
在四面体集成模型中,
对象管理器作为主要构件,是所有空间数据对象
的承载容器,所以切割的主要操作都封装在对象
管理器中。
对象管理器通过判别,首先将所有的
四面体对象按照与切割面的位置关系进行分组,
将被切割到的四面体沿切割面进行分解,并按照
一定的方式在切割面的两侧分别进行四面体重
组,最后得到以切割面为分界的两部分数据对象。
在此基础上,构建两个对象管理器分别对这两部
分数据对象进行组织管理,完善各自的空间数据
拓扑体系,从而建立两个分离的空间对象模型,完
成对四面体集成模型的切割。
根据平面与四面体之间的空间位置关系,
图2所示的4种情况会产生确切的切割重组。
可
以得知,四面体经过平面切割后,可以分解成四面
体、金字塔体、类三棱柱体(类棱台体),为了重新
组建对象的四面体模型,需要将非四面体对象再
次分解为若干四面体的组合。
对金字塔体采取下
列的分解方法:将金字塔底端的四边形沿两条对
角线分解为4个三角面,它们分别与金字塔体的
顶点构成4个四面体。
对于类三棱柱体,首先将
其周边的每个四边形按照上述方法分解为4个三
角面,再加上上、下两个三角面,共14个三角面,
分别与三棱柱内部确定的一点(文中采用上下两
个三角面的内心的连线中点)构建14个四面体
对象。
按照上面的切割以及重组方法,在对象管理器
中的实现步骤如下:①对象管理器遍历节点,计算
每一个节点相对于平面的位置,并记录在节点对象
的cutFlag字段中。
②遍历拓扑边,根据拓扑边所
关联的节点的cutFlag字段来判断拓扑边相对于平
面的位置。
如果拓扑边的两个节点处于平面的两
侧,则该边必然被平面切割,计算出该边与平面的
交点,存储在字段cutVpnt中,并将所有与该边相
关联的四面体的cutFlag字段设置为被切割状态。
③遍历四面体列表,根据设置的标记将其分为三
组:处于平面法线正方向的四面体、处于平面法线负方向的四面体、被平面切割的四面体。
方法如
下:遍历四面体列表,如果四面体的cutFlag被设置
为切割状态,则该四面体归为第二组;如果没有,则
该四面体必然在平面的两侧,其相对于平面的位置
与其任一个不在平面上的顶点相对于平面的位置
一致,据此将该四面体归为相应的第一组或者第
二组。
④遍历被切割的四面体列表,进行逐个处
理,首先根据该四面体与平面相切割的棱的个数
来判断属于哪一种切割,然后进行分解、重组。
根
据与平面的位置关系,将分解得到的小四面体加
入到相应的第一组或者第二组中。
⑤重新构造两个独立的对象管理器,分别承载第一组和第二
组中的四面体数据,完善各自的空间体系,进而实
现两个独立的三维空间对象模型的建立。