GMaps拓扑数据结构

作者&投稿:项钩 (若有异议请与网页底部的电邮联系)
~

A.数据结构

三角剖分要求能够表达TIN中各几何元素之间完整的几何信息与拓扑关系,并且允许对其进行查询和修改。结点(node)、边(edge)和三角单元(triangle)是最基本的几何元素,对基本几何元素的下列操作是必不可少的:

(1)已知一个点,查找与该点所关联的三角单元;

(2)已知一个边,查找该边的左三角单元和右三角单元;

(3)已知一个三角单元,查找邻接的三角单元;

(4)增加或删除三角单元、边或结点等。

要实现上述操作,数据结构的选择对算法的实现效率具有重要影响(Øyvind,2000;孟宪海等,2005)。数据结构应当方便、快捷地实现几何元素的上述查询或增删操作。为了查询或操作方便,必须建立各几何元素间的拓扑关系,且引入其他辅助操作。在数据结构设计时,除了需要考虑时间的因素外,还要考虑空间的因素,即模型所占计算机内存的大小,但往往这两方面是此消彼长的。要想各个几何元素之间查询迅速,必然要建立各元素之间的广泛联系,这样就会增加存储空间的占用量,反过来则会增加计算机运行时间,而半边数据结构很好地权衡了空间和时间的问题。

半边数据结构以边为核心,但为了方便表达拓扑关系,它将一条边表示成拓扑意义上方向相反的两条“半边”,图3.1a所示是一个由6个三角单元组成三角剖分的半边表示方法。

图3.1 半边数据结构

由图3.1a可以看出,若三角单元按逆时针方向排序,任何一条半边都有其前驱半边(PreHalfEdge)、后继半边(NextHalfEdge)和兄弟半边(TwinHalfEdge)(若为边界边,则为空)。孟宪海等(2005)在研究三角剖分数据结构时,已从传统上常用的翼边(winged-edge)数据结构改进为半边数据结构,但仍然存在数据冗余,这里则进行了进一步精简。半边采用类似矢量的概念来说明,仅用一个起点和一个方向来表示(图3.1b),起始点称之为源点(sourceNode),记录了该点的几何位置,终点则不显示记录,而是通过它的下一条半边的起始点获得。

为了保证半边所包含信息的完备性,除了保留源点指针外,还保留其后继半边指针(事实上,也可以保留前驱指针,但习惯上三角单元采用逆时针表示,故保留后继指针)和兄弟半边指针,三个指针可以实现三角单元几何信息与拓扑关系的完备性。

采用面向对象的程序设计方法,自然会考虑将三角剖分过程中需要的几何实体描述为类:Node(点)、HalfEdge(半边)、Triangle(三角形)。Node类是最基本的类,包含的是空间位置的几何信息;HalfEdge是整个数据结构的核心,三个首尾相接的HalfEdge则可构成Triangle(图3.1b)。Node和HalfEdge的数据结构表示如下:

classs Node{

private:

double:m_x,m_y,m_z;

int index;

};

classs HalfEdge{

private:

Node *SourceNode;

HalfEdge*TwinHalfEdge;

HalfEdge*NextHalfEdgeInFace;

};

B.GMaps理论基础

GMaps是GoCAD软件系统所采用的拓扑数据模型,有着深厚的数学、计算几何及拓扑学等理论基础(Bertrandetal.,1994;Dehlinger et al.,2004a,b)。抛开这些复杂的理论,可以从计算机专业基础课程《数据结构》中的图论(graph)来理解(殷人昆等,1999;Øyvind et al.,2006),并加以改进和扩展。图是由顶点集合及顶点间的关系集组合的一种数据结构:

数字地下空间与工程三维地质建模及应用研究

其中,V= {x|x∈ 某个数据对象}是顶点的有穷非空集合;E= {(x,y)|x,y∈V}是顶点之间关系的有穷集合,这里则是边的集合。

基于半边数据结构的特殊设计,最终目的是为了实现结点、边和三角单元的相互访问,快速而有效地获得三角剖分所需要的必要信息。GMaps采用一种拓扑单元,称之为dart,是由一个三元组构成,即d=(Vi,Ej,Tk),这里Vi为半边Ej一个结点,Vi和Ej是三角形Tk的一个结点和与该结点相连的半边。用一个dart可以完整地表达一个三角形单元,如图3.2a所示。从几何角度,表达一个三角单元,可以通过首尾相连的三条边来表示,也可以通过三个不共线的点来表示,这里则通过拓扑单元d来表示。简单地讲,d可以用数据结构中的半边来表示,Vi作为半边Ej的源点(图3.2a),为了由拓扑单元d得到几何上的三角单元Tk,要么通过一定方法得到另外两个点Vi+1和Vi+2,要么得到另外两条半边Ej+1和Ej+2。为此,可以定义特定的函数实现这样的功能。

这里定义三个拓扑映射函数:α0,α1,α2,如图3.2b所示,其含义分别如下:

图3.2 拓扑三角单元(a)及拓扑变换(b)

α0(d):实现d的源点Vi到其所在半边Ej的另一端点Vi+1的映射,这里称Vi+1为Vi的目标点;

α1(d):实现d的半边Ej到与其共享同一源点且同一单元的另外一条半边Ej+2的映射;

α2(d):实现d的半边Ej到与其共享同一源点的相邻兄弟半边的映射。这样,可以由当前拓扑单元转向下一个单元。

也就是说,α0(d)、α1(d)、α2(d)分别映射拓扑单元d的结点、边和三角形,而拓扑单元的其他性质保持不变。如果边Ej所在的三元组d=(Vi,Ej,Tk)位于边界上,那么α2(d)=d,因此,结点、边和三角形都保持不变。这样,三角剖分结果就可以用一个GMaps来完全表示,即G(D,α0,α1,α2)。这里,D是d的集合。可以看出此式与式(3.1)无论在形式上还是所要表达的功能上都比较接近。

C.GMaps拓扑变换

定义了α0(d)、α1(d)、α2(d)三个映射函数,就可以通过对拓扑单元d(可以简单地理解为包含了拓扑信息的一条半边)的复合变换来实现预定的目标。在nGMaps中,定义了对拓扑单元d的n重复合操作(Simon et al.,2006),来实现n维空间对象的空间剖分,即αij(…αk(d)…)),简化为

)。这里不需要如此复杂的表达,平面三角剖分过程中只需要做n=2即可。这样,由α0、α1、α2可以衍生出对应的三个拓扑变换(图3.3):

图3.3 复合变换

应用

反复迭代,能够遍历共享一个公共点的所有边和三角形,称之为0-Orbit(图3.3a);

应用

反复迭代,能够访问共享一条边的两个三角形,称之为1-Orbit(图3.3b);

应用

反复迭代,能够遍历三角形中所有的结点和边,称之为2-Orbit(图3.3c);

上述迭代过程的终止条件是

i-Orbit(i=0,1,2)具有其相应的应用之处:

0-Orbit:得到共享某一结点的所有三角单元所构成的闭合区域,在采用凸耳消元法(ear elimination,EE)(Devillers,1999)进行点删除时可以用到。

1-Orbit:实现由当前三角单元向邻近单元的转换,若待插入点不在当前三角单元内,则需要转入相邻三角单元继续进行判断。

2-Orbit:实现由三角拓扑单元到三角几何信息的转换,得到三角单元的几何信息后,在Delaunay逐点插入法剖分中可以用来判断待插入点是否为某一个三角单元内。




哪些usb无线网卡支持frame injection
图2-1 总线的拓扑结构 图2-1显示了USB总线的拓扑结构。标准USB规范有四根线,分别是电压正负极,两根数据线。外观为扁平的方形接口。USB传送信号和电源是通过一种四线的电缆,图2-2中的两根线是用于发送信号。电缆中包括VBUS、GND二条线,向设备提供电源 。VBUS使用+5V电源。US...

移动地理信息系统的开发平台
支持地图样式的配置、矢量要素的查询渲染;3, 地图查询,支持属性查询、空间查询、以及属性和空间的混合查询;4, 要素编辑,支持shp矢量要素的添加、删除、修改,其中包括要素几何的节点编辑、属性编辑修改等;5,数据缓存,支持移动端的瓦片或矢量存储;6, 数据同步,支持移动GIS、服务端GIS数据库的数据...

2009 Maya 等级如何考取?
拓扑结构 Inbetween方式 『 融合变形动画控制 (★★★) 『 创建晶格变形器(Create Lattice) (★★...『 导出权重贴图(Export Skin Weight Maps) (★★) 『 导入权重贴图(Import Skin Weight Waps) (...『 布料缓存数据处理 (★★) 『 拖拽控制器 (★) 九,毛发——Fur&Hair[4分] 9.1 Fur(1题) ...

JDK7.0 与 JDK6.0 区别 及 JDK7的新特性
类加载器体系结构类加载器已经升级到了可以在无等级类加载器拓扑中避免死锁。JDK7中包含了一个对于多线程自定义类加载器的增强实现,名字为具有并行能力的类加载器。使用平行能力的类加载器加载class,会同步到类加载器和类名。Locale类的改进Java Locale避免由于小的变化导致数据丢失。除此,Locale应该提供更多的特性,...

企业数据可视化大屏用什么工具去实现?
思迈特软件Smartbi的的分析工具就可以实现,全面的需求满足能力。大数据分析平台拥有全面的需求满足能力,无论你是哪种用户,在BI的哪个阶段流程,有什么需求场景都能得到满足。1、全阶段:融合传统BI、自助BI、智能BI,满足BI定义所有阶段的需求。2、全流程:提供数据连接、数据准备、数据分析、数据应用等...

思维导图APP软件哪个最好用
思维导图软件免费下载 链接:https:\/\/pan.baidu.com\/s\/1kTwYjKtsr4VwOuhbB65oKw 提取码:1ypq 思维导图,英文是The Mind Map,又名心智导图,是表达发散性思维的有效图形思维工具 ,它简单却又很有效同时又很高效,是一种实用性的思维工具。

英语翻译,谁能通过下面一小段话,概括出 tonotopy 这个词是什么意思...
在生理、tonotopy(来自希腊tono——和惯用语句=地方)是空间安排在不同的频率的声音在大脑中处理。音调接近对方从频率是反映在大脑中的拓扑邻近地区。地图是一种特殊情况下音质oftopographic组织,retinotopy相似的视觉系统。Tonotopy在听觉系统始于耳蜗,小蜗牛式结构在内耳,发送信息 ...

策略路由与访问控制列表的区别
策略路由是一种路由规划,它可以使数据包按照用户指定的策略进行转发。对于某些管理目的,如QoS需求或VPN拓扑结构,要求某些路由必须经过特定的路径,就可以使用策略路由。例如,一个策略可以指定从某个网络发出的数据包只能转发到某个特定的接口。策略路由使用rout maps 实现的,它和访问控制列表很相似。如下...

策略路由和动态路由的区别?
没什么直接关系,策略路由是在路由上做了策略,改变转化规则。动态路由是指路由会根据拓扑变化而变化,与静态路由相对。策略路由在动态与静态路由上都可以做。

策略路由和动态路由的区别?
策略路由是一种路由规划,它可以使数据包按照用户指定的策略进行转发。例如,一个策略可以指定从某个网络发出的数据包只能转发到某个特定的接口。 策略路由使用rout maps 实现的。动态路由是由路由器捕获得的网络状况来计算最短的路径以传递数据报。他可以根据网络的拓扑结构的变化而自动变化更新路由表.

镇海区18678885914: 常见的网络拓扑结构的工作原理和它们的优缺点是什么 -
衷莺重组: 计算机网络的拓扑结构是指网络中各个站点相互连接的形式,在局域网中明确一点讲就是文件服务器、工作站和电缆等的连接形式.现在最主要的拓扑结构有总线型拓扑、星型拓扑、环型拓扑以及它们的混合型.顾名思义,总线型其实就是将文件...

镇海区18678885914: 常见网络拓扑结构有哪些?各有什么特点?
衷莺重组: 网络拓扑结构 1、星形拓扑 星形拓扑是由中央节点和通过点到到通信链路接到中央节点的各个站点组成. 星形拓扑结构具有以下优点: (1)控制简单. (2)故障诊断和隔离容易. (3)方便服务. 星形拓扑结构的缺点: (1)电缆长度和安装工作...

镇海区18678885914: 计算机网络中常用的扩扑结构有哪几种,特点各是什么 -
衷莺重组: 计算机网络的最主要的拓扑结构有总线型拓扑、环形拓扑、树形拓扑、星形拓扑、混合型拓扑以及网状拓扑.其中环形拓扑、星形拓扑、总线型拓扑是三个最基本的拓扑结构.在局域网中,使用最多的是星形结构. (1)总线型拓扑结构是将网络...

镇海区18678885914: 网络的七层结构?网络的拓扑结构有? -
衷莺重组: 七层:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层 网络的拓扑结构有:总线拓扑结构 星型拓扑结构 环形拓扑结构 树型拓扑 网状拓扑结构 混合型拓扑结构 蜂窝拓扑结构 卫星通信拓扑结构

镇海区18678885914: 计算机网络的主要拓扑结构类型及各自特点 -
衷莺重组: 网络拓扑结构分类网络的拓扑(Topology)结构是指网络中通信线路和站点(计算机或设备)的相互连接的几何形式.按照拓扑结构的不同,可以将网络分为星型网络、环型网络、总线型网络三种基本类型.在这三种类型的网络结构基础上,...

镇海区18678885914: 什么是网络的拓扑结构、常见的网络拓扑结构有哪些? 3 OSI模型分几层,描述各层的作用. -
衷莺重组: 有线网络的拓扑结构大致有以下三种: 总线结构——所有节点均处于一条同轴电缆上,同轴电缆的两端有终端匹配器.例如:早期的3+网和Novell网; 环形结构——所有节点处于由光纤构成的环路上.例如:早期的FDDI网络以及目前的大型城域网; 星形结构——目前最常见的网络拓扑结构,以网络交换机为中心,向四周辐射,并且可以级连多层交换机构建多层结构形成树状结构.

镇海区18678885914: 计算机网络的6种拓补结构是什么? -
衷莺重组: 3.2.1 星型拓补 (1) 星型拓补由中央节点和通过点到点链路接到中央节点的各个站点组成,采用星型拓补的交换方式主要有报文交换和线路交换,线路交换更为普遍,现有的数据处理和声音通信的信息网大多采用这种拓补结构,目前流行的...

镇海区18678885914: 网络拓扑结构? -
衷莺重组: 网络拓扑结构是指用传输媒体互连各种设备的物理布局,就是用什么方式把网络中的计算机等设备连接起来.拓扑图给出网络服务器、工作站的网络配置和相互间的连接,它的结构主要有星型结构、环型结构、总线结构、分布式结构、树型结构...

镇海区18678885914: 什么是网络拓扑结构?计算机网络有哪些拓扑结构,各有什么优缺点? -
衷莺重组: 拓扑结构是指网络中各个站点相互连接的形式,在局域网中明确一点讲就是文件服务器、工作站和电缆等的连接形式.现在最主要的拓扑结构有总线型拓扑、星形拓扑、环形拓扑、树形拓扑(由总线型演变而来)以及它们的混合型

镇海区18678885914: 局域网拓朴结构类型、特点 -
衷莺重组: 局域网中常用的三种网络拓朴结构 1、 星型 所有的计算机都连接到一个中心节点上,该中心节点一般为主机或集线器.中心接点负责接收工作站的信息,再转发给相应的工作站,它具有中继和数据处理功能. 2、 环型 由连接成封闭回路的网络...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网