码迷,mamicode.com
首页 > 编程语言 > 详细

基于3DGIS技术的梯形格网构建及其简化算法设计

时间:2020-04-08 10:14:43      阅读:82      评论:0      收藏:0      [点我收藏+]

标签:检查   矢量   png   参数   公式   面积   变更   符号表   follow   

传统矢量地图LOD绘制流程包含简化、剖分与渲染三个步骤。由上述分析可知,传统矢量地图LOD绘制流程中简化与剖分是两个独立的过程,重复的剖分计算导致其渲染效率相对低下。梯形格网方法解决了传统方法中重复剖分的问题,但该方法是在二维场景下的实现且不支持线要素的渲染。本文借鉴梯形格网结构与简化思想,顾及投影方式对地图简化的影响,设计透视投影下梯形格网的简化算法,实现透视投影下矢量地图LOD方法简化与剖分的统一,从而加速地图的渲染。
1矢量数据结构
矢量数据结构通过记录空间实体及其空间关系,用以精确的表达空间点,空间线,空间面等地理实体空间位置。矢量数据按照空间要素的几何形态可以分为点状、线状、面状几何要素。针对本文的研究内容,下面主要介绍线状、面状几何要素的概念和种类。
1.1线几何要素的定义
在几何图形学中,线通常是指曲线,点与点进行线性插值,每对连续的点定义一个线段,如下图所示。在3DGIS中,线状几何要素由一组连续的点连接而成,是有方向、长度而没有面积和体积的一维实体。线要素通常用于表示沿某个方向的地理要素,如道路、河流和铁路等。
技术图片
1.2面几何要素的定义
在几何图形学中,面通常是指由1个外部边界和0个或多个内部边界定义的平面,每个内部边界在多边形中表示一个孔状区域,如下图所示。在GIS中,面状几何要素通常是指由一个封闭曲线围成的二维平面,有周长和面积,但没有厚度,通常用来表达如岛屿、湖泊、建筑物和行政区域等面状地理实体。
技术图片
2矢量几何要素的剖分
本文介绍矢量几何要素的剖分方法,针对线、面几何要素的数据结构的差异性,矢量要素的剖分可以分为线几何要素的剖分和面几何要素的剖分。由于GPU提供的图形绘制方法如GL -POINT, GL -LINE, GL -POLYGON是像素级别的绘制方法且支持的绘制图元种类较为单一,难以满足多样式地图渲染的需求。根据当前矢量地图渲染的流程,矢量要素必须处理成图形API支持的基本图元用于地图渲染。本文为使用梯形格网结构,需将线、面几何要素剖分成梯形,以下分别进行介绍。
2.1线几何要素的剖分
从可视化的角度出发,线符号的连接样式分为斜角、平角和圆角连接。本文针对线要素拐角的连接样式,采用平行线推移算法进行线要素的剖分操作。如下图所示,点Q(Xq,Yq)、 W(Xw,Yw)、R(Xr,Yr)作为一个V形结构,设原点为O(0,0),线段宽度为w,对线段QW以w/2宽度向外侧进行推移生成线段Q1W1,Q2W2。假设e→是垂直于线段QW的单位向量,则e→可以通过公式(一)计算得到,通过向量运算得到外推线的坐标公式(二)。但使用平行线推移算法,V型结构的独立剖分会导致线要素产生缺口和重叠绘制的问题。本文通过对线段张角内侧计算内推线的交点,对张角外侧计算外推线的插值点或交点,对交点和插值点进行组织以完成折线的正确剖分,解决平行线推移算法产生的重叠和缺口问题。依据线符号的连接样式,下文对线符号的剖分方法进行细致的探讨。
技术图片
技术图片
(一)
技术图片
(二)
(1)斜角连接剖分
依据斜角连接线符号的绘制需求进行斜角连接剖分。如下图所示P1点为Q1W1直线延长线与W3R1直线延长线的交点,P2为Q2W2与W4R2线段的交点。通过对部分外推点和P1、P2的组织完成斜角连接的剖分。
技术图片
(2)平角连接剖分
依据平角连接线符号的绘制需求进行平角连接剖分。如下图所示P1点为Q1W与WR直线延长线的交点,P2为QW与W3R1线段的交点。通过对部分外推点和P1、P2的组织完成平角连接的剖分。
技术图片
(3)圆角连接剖分
依据圆角连接线符号的绘制需求进行圆角连接剖分。本文通过对剖分节点的拟圆化处理完成拐角的平滑过渡,如下图所示。假设折线的宽度为d,两线段相交W点(XW,YW),直线QW和直线WR相对于平面的角度为α和β,剖分参数为t(相邻剖分节点与圆心的夹角为2π/t ),则拐角的第n个节点的坐标值可以由下列公式得到。通过将剖分节点与张角内侧的交点组织成三角扇的形式实现拐角的平滑过渡,最终完成圆角连接的剖分。
技术图片
技术图片
2.2面几何要素的剖分
本文借鉴扫描线算法对多边形进行梯形剖分。主要思路是对多边形原始顶点的纵坐标进行排序,依据纵坐标值生成x方向水平的扫描线,将多边形划分成按行分布的梯形面片,其空间位置由所在梯形四个顶点坐标值所决定。梯形剖分算法如下:
Step 1:以排序后多边形原始节点Y值构建扫描线数组。对多边形顶点进行Y方向从大到小的唯一值(消除相同的Y值)快速排序,依据排序结果建立扫描线数组S1、S2、.…、Sn ;
Step2:以边节点的最小Y值构建边链表。依据节点顺序构建边数组,以边数组的中每一条边的最小Y值为Key值,按照从小到大的顺序快速排序,插入至边链表;
Step3:从扫描线S1开始,计算与当前扫描线Scur相交的所有边,对边与扫描线的交点依据x值进行快速排序,x值相同再依据边的斜率进行排序。
Step4:取下一条扫描线Snext,再次进行Step3,把两次计算的结果组成水平方向连续的梯形组。
Step5:接着更新Scur为Snext进行下一个循环,直至Scur=Sn,扫描结束。
逐个提取梯形组中的梯形,即可实现多边形的梯形剖分。但剖分多边形的顶端和尾端可能会出现三角形,本文通过存储两个相同的上顶点进行三角形的存储,同时也通过梯形具备两个相同的上顶点完成对梯形是否是三角形的判断。
技术图片
3梯形格网构建
梯形格网作为一种简化与剖分统一的数据结构,简化结果可以直接用于渲染。本文首先介绍梯形连通图的概念并详细分析梯形节点、梯形链与梯形简化的关系,基于线、面几何要素的剖分结果进行梯形格网的构建。这里先引出本文设计的四种梯形格网简化规则:合并、消融、退化和调整。
3.1梯形连通图
梯形连通图是用以存储和表达剖分后梯形之间关系的图结构,以梯形为节点进行构建,节点之间采用链进行连接。首先对剖分后的数据依据自上而下,自左而右的方式进行编号,然后依据剖分梯形之间的连接关系,对梯形节点进行有序的链接,生成梯形连通图,如下图所示。
技术图片
(1)梯形节点与梯形链的构造
梯形连通图以梯形为节点,节点之间采用链相连,链分为实链与虚链两种类型。首先,对梯形节点依据从上至下,从左至右的方式依次编号,然后依据梯形之间的关系进行连接。直接相连的两个梯形节点之间具有相邻关系,采用实链连接,上图(b)中T2与T3以实链相连;对于含岛的多边形,分支节点以虚链相连,上图(b)中T2与T6以虚链相连。
(2)梯形节点的分类及对简化的影响
依据与梯形节点具有的实链个数将梯形节点分为单连接节点,双连接节点和多连接节点。单连接节点的梯形可能发生退化、消融、合并。双连接节点的梯形可能发生调整、合并。多连接节点的梯形可能发生合并,如下表所示。
技术图片
(3)简化还原过程中梯形节点的变化情况
本文中节点类型的变更包含四种方式:消失、退化、不变与进化。其中,单连接节点的的消失称为消失;多连接节点至双连接节点的变化,双连接节点至单连接节点的变化称为退化;单连接节点至双连接节点的变化和双连接节点至多连接节点的变化称为进化。
梯形节点的类型随着梯形的简化还原会发生变更。在一次与此节点相关的简化过程中,不考虑连续合并,单连接节点可能会消失或不变;双连接节点存在不变,退化为单连接节点两种情况;多连接节点存在不变和退化为多连接或双连接节点,如下表所示。
技术图片
在一次与此节点相关的还原过程中,不考虑连续合并。单连接节点可能会不变或进化:双连接节点存在不变和进化两种情况,多连接节点可能出现梯形顶点数据增多,但仍为多连接节点,如下表所示。
技术图片
3.2线梯形格网构建
主要依据上文线几何要素的剖分结果进行线梯形格网的构建。由于文中选用平行线推移算法依据线几何要素的节点顺序进行剖分,因此可基于线几何要素的节点顺序构建线梯形格网。观察上文中剖分结果,斜角连接剖分的结果可通过梯形进行组织,但平角连接和圆角连接剖分的结果包含三角形或三角扇数据,无法只通过梯形进行组织。本文将剖分产生的梯形称为梯形数据,将三角形或三角扇成为样式数据,采用梯形数据与样式数据结合的方式对线几何要素的剖分结果进行组织。
(1)斜角连接样式的线梯形格网构建
如下图为采用斜角连接样式的剖分结果,其剖分结果只包含梯形数据,将梯形节点依次链接构建梯形格网。线梯形格网只包含单连接节点和双连接节点两种节点类型,不包含多连接节点。下图中T2可能和T1发生简化,退化为单连接节点,也能和T3发生简化,节点类型不发生改变。针对单线要素,只存在一条链,可以发生跳跃合并。
技术图片
(2)平角连接样式的线梯形格网构建
如下图为采用平角连接样式的剖分结果,包含梯形和三角形,不可只通过梯形进行组织,文中将其分为梯形数据和样式数据(Sn),将梯形节点依次链接构建梯形格网。平角连接样式数据的节点皆为梯形节点,没有产生新增的节点。平角连接的简化情况与斜角连接相似,不同的是需要考虑简化后样式数据的组织,如T2和T1发生简化后,样式数据S1会被移除。针对单线要素,只存在一条链,可以发生跳跃合并。
技术图片
(3)圆角连接样式的线梯形格网构建
如下图为采用圆角连接样式的剖分结果,包含梯形和三角扇,不可只通过梯形进行组织,文中将其分为梯形数据和样式数据(Sn),将梯形节点依次链接构建梯形格网。圆角连接样式数据产生了梯形节点以外的新节点,需要进行处理。圆角连接的简化情况也与上述简化情况相似,同样需考虑样式数据的组织,如T2和T1发生简化后,样式数据S1会被移除。针对单线要素,只存在一条链,可以发生跳跃合并。
技术图片
3.3面梯形格网构建
主要依据上文面要素的剖分进行面梯形格网的构建。基于面要素的剖分原理可知,通过扫描线算法自上而下对面要素进行剖分,剖分结果在y方向和x方向上有序排列。因此,基于剖分结果进行自上而下、自左而右的构建面梯形格网。以下,针对面要素的形态特征从简单多边形,含洞多边形和含岛多边形三种情况分别构建与分析面梯形格网。
(1)简单多边形
简单多边形构造简单,剖分结果如下图所示,其梯形格网可能包含单连接节点、双连接节点和多连接节点。图中T1、T2、T7为单连接节点,T3、T4、T6为双连接节点,T5为多连接节点。图中包含2条链:Chain1 (T2、T3、T4)和Chain2 (T5、T6、T7),T1所在的链只含有单个节点,不划入链中存储。
简化操作中,单连接节点可以发生退化或消融,下图中T1的上顶点或T7的下顶点被简化则发生消融,T1的任意一个上顶点被简化则发生退化。双连接节点可能发生调整或合并,图中T3可能发生和T2或T4的合并,T6可能发生和T5或T7的合并。多连接节点可能发生合并,图中T8可能发生和T9的合并。
在同一链上的,若梯形都需要被简化,可能发生跳跃合并。如T2至T4之间都需要发生合并,如T2和T3先进行合并操作,合并后的梯形再与和T4进行合并,等同于T2和T4之间直接进行合并。
技术图片
(2)含洞多边形
含洞多边形包含一个内环或多个内环,剖分结果如下图所示,其梯形格网可能包含单连接节点、双连接节点和多连接节点。下图中T1...T7、 T9...T11、T13为双连接节点,T8和T12为多连接节点。图中包含4条链:Chainl1(T2、T4、T6、T7)、Chain2 (T3、T5)、Chain3 (T9、T11)和Chain4 (T12、T13、T14),其中T1、T8、T10。不存在一侧为单链,不划入链中存储。
简化操作中,单连接节点可能发生退化或消融,下图中T1的上顶点或T14的下顶点被简化,则发生三角形消融。双连接节点可能发生调整或合并,图中T4可能发生和T2或T6的合并,T13可能发生和T12或T14的合并,T6可能发生调整。多连接节点可能发生合并,图中T12可能发生和T13的合并。在同一链上的,若梯形都需要被简化,可以发生跳跃合并。
技术图片
(3)含岛多边形
含岛多边形包含一个或多个内环,剖分结果如下图所示,其梯形格网可能包含单连接节点、双连接节点和多连接节点。图中T1、T6、T7、T12为单连接节点,T3、T4、T5、T8、T9、T11为双连接节点,T2和T10为多连接节点。下图中包含5条链,Chain1 (T1、T2)、Chain2 (T3、T5、T8)、Chain3 (T4、T9)、Chain4 (T6、T7)、Chain5(T10、T11、T12)。
针对简化过程,单连接节点可以发生退化或消融,下图中T1、T6的上顶点被简化或T12、T17的下顶点被简化,则三角形消融。双连接节点可能发生调整或合并,图中T5可能发生和T3或T8的合并,T11可能发生和T10或T12的合并。多连接节点可能发生合并,下图中T2可能发生和T1的合并。在同一链上的,若梯形都需要被简化,可以发生跳跃合并。
技术图片
4梯形格网的简化算法
基于构建的梯形格网,本文采用节点调整或边折叠的策略进行图形的简化。根据上文定义已知,本文设计了四种图形简化算法,包括消融、退化、合并和调整四种方式。本文以符号表示梯形合并算子,用以标识梯形的合并结果。
二维场景下地图简化的度量因子与比例尺有关。基于二维地图采用的正射投影的原理可知,视口内地图的比例尺统一。二维场景下梯形格网简化算法,采用DP算法确定节点的几何权重,权重值不需发生变更且没有考虑投影方式对地图简化的影响。三维场景下地图简化的度量因子与视点相关,节点的权重会随着点的变化发生动态变更,受视点的影响几何权重大的节点可能比几何权重小的节点先进行简化。二维场景下梯形的上下左右关系由于旋转和俯仰操作被破坏,原有的梯形格网简化算法不再适用于三维场景下的简化,且不具备对线几何要素的支持。针对现有方法的不足,本文改进了梯形格网简化算法,设计透视投影下的线、面梯形格网简化算法。
4.1线梯形格网简化算法
本文基于线梯形格网结构设计线梯形格网的简化算法。由于线几何要素首尾节点不进行简化,因此线梯形格网只存在双连接节点之间、双连接节点与单连接节点之间的简化情况。基于传统简化方式与渐进简化方式简化后结果需要一致的原则,本文设计线梯形格网的简化算法。
传统线状几何对象的简化方法在原始数据结构上进行简化。如使用的DP算法对节点权重较小的节点进行剔除。如下图所示,假设P2节点的容差小于当前容差ε,则P2节点被简化。根据3.4分析可知,简化后的数据仍需进行剖分操作才可支持地图渲染,另外,GPU环境下还需要传输剖分后顶点数据至GPU,剖分计算和显存IO耗时较长导致了传统方法效率低下。
技术图片
针对线梯形格网结构,本文利用梯形之间的合并代替节点的删除,对原始剖分顶点进行动态重组以完成线要素的简化。本文转换节点删除为梯形合并,通过梯形之间的合并来完成线几何要素的简化,简化的图元不需要再次进行剖分可以直接用于绘制,且保持了与传统方法简化结果的一致性。
基于线连接样式的不同,本文针对斜角、平角和圆角的连接情况详细分析线梯形格网的简化算法。针对平角和圆角样式,本文将剖分结果组织成梯形数据与样式数据,合并时梯形数据之间进行合并并对样式数据进行动态组织,三种情况的简化方法如下图所示。线渐进格网的还原操作即是简化操作的回退,在此不在论述。

技术图片
(1)斜角连接样式的梯形格网的合并
斜角连接连接样式的梯形格网只包含梯形数据,如上图中(a)所示。若T1与T2之间原始数据节点的容差小于当前容差ε,则T1与T2进行合并。合并后结果如上图(b)所示,通过对两个梯形的公共边进行折叠操作实现合并即选取的非公共边的侧边组合成合并后的梯形。
(2)平角连接样式的梯形格网的合并
平角连接的梯形格网包含梯形数据和三角形样式数据,如上图中(c)所示,合并操作需要对梯形数据和样式数据进行合理的组织。若T1与T2之间原始数据节点的容差小于当前容差ε,则T1与T2进行合并。合并后结果如上图(d)所示,T1与T2具有一个公共顶点P3,选择T1中与P3所在侧边对应的侧边和T2中与P3所在侧边对应的侧边组合成新的梯形,并移除S1样式数据完成平角连接梯形格网的合并。
(3)圆角连接样式的梯形格网的合并
圆角连接的梯形格网包含梯形数据和三角扇样式数据,如上图中(e)所示,合并操作需要对梯形数据和样式数据进行合理的组织。若T1与T2之间原始数据节点的容差小于当前容差ε,则T1与T2进行合并。合并后结果如上图(f)所示,合并方式与平角连接相同。
4.2面梯形格网简化算法
针对面梯形格网结构,本文顾及一致性的原则改进了面梯形格网的简化算法,使其支持透视投影下的简化操作。针对面几何要素的剖分结果,本文设计合并、退化、消融和调整四种简化规则,梯形格网还原过程即是简化过程的回退,在此不再论述。文中将位于同一个梯形且与节点处于相同侧边的顶点称为此节点的垂直顶点,与节点处于相同底边的顶点称为此节点的水平顶点。
(1)合并
具备相同顶点的两梯形可能发生合并操作,合并后两个梯形变为一个梯形。剖分后直接相连的两个梯形具有一个公共顶点或两个公共顶点。根据公共顶点数量,将具有一个公共顶点的梯形之间合并称为单点合并;具有两个公共顶点的梯形之间合并称为双点合并。
单点合并多发生于梯形连通图的顶端或尾端。一般包含两个具有三个节点的特殊的梯形(三角形)合并或三角形与梯形的合并。如下图(a)所示,若当P3的容差小于当前容差ε则发生合并操作,合并后结果如下图(b)所示,取P3左梯形的左侧边节点与右梯形的右侧边节点为合并后的梯形节点,组合成合并梯形。如下图(c)所示,若当P4的容差小于当前容差ε则发生合并操作,合并后结果如下图(d)所示,取P4左梯形的左侧边节点与右梯形的右侧边节点为合并后的梯形节点,组合成合并梯形。与单点合并操作对应的梯形及节点的变化如下表所示。
技术图片
技术图片
双点合并情况多发生于梯形连通图的链上。双点合并通过两个梯形公共边的折叠操作实现即选取的非公共边的对应边组合成合并后的梯形。如下图(a)所示,Pa为剖分时产生的节点不具备权重值,当P2的容差小于当前容差ε则图形发生双节点合并,合并后的结果如下图(b)所示;如下图(c)所示,当P2、P5的容差皆小于当前容差ε则图形发生双点合并,合并后的结果如下图(d)所示;如下图(e)所示,此时图形非原始剖分图形而为图形简化后的某一状态,当P2、P5的容差皆小于当前容差ε则图形发生双点合并,合并后结果如下图(f)所示。与双点合并对应的梯形及节点的变化如下表所示。
技术图片
技术图片
技术图片
(2)调整
梯形与另一梯形共点且此节点被简化,可能会发生梯形的调整。调整不产生新的梯形,只对梯形的节点进行变更。梯形既有梯形自身的调整又有两个梯形的调整。文中依据调整操作中参与梯形的数目分为单梯形调整和双梯形调整。
单梯形调整一般发生在梯形格网的顶端或尾端。如下图(a)所示,若P7的容差小于当前容差ε,由于P7的垂直顶点为P8则应将P7调整至其上一个节点即P6。如下图(c)所示,若P1的容差小于当前容差ε,由于P1为首节点且其垂直顶点为P2则应将P1调整至其上一个节点即尾节点P11。同理,假设Pn的容差小于当前容差ε,若与Pn对应的梯形垂直节点若为Pn+1,则其应该调整为Pn-1;与Pn对应的梯形垂直节点若为Pn-1,则其应该调整为Pn+1,需考虑Pn为首尾节点的情况。与单梯形调整操作对应的梯形及节点的变化如下表所示。
技术图片
技术图片
双梯形的调整依据参与调整的梯形之间共点的数目分为单节点连接梯形的调整和双节点连接梯形的调整,以下分别进行介绍。
单节点连接的双梯形调整是指参与调整的两个梯形具有一个公共节点,一般发生在梯形格网顶端或者尾端。如下图(a)所示,若P1的容差小于当前容差ε,则包含P1的两个梯形都要进行节点调整,T1中若P1调整为T2中P1的垂直顶点P8或水平顶点P6,则T2中P1调整为P1的水平顶点P3或垂直顶点P2,即得到T1(P3,P2,P2,P8)、 T2(P3,P6,P7,P8)或T1(P3,P2,P2,P6)、T2(P2,P6,P7,P8)两种结果,两种结果在几何图形具有一致性。
双节点连接的双梯形调整是指参与调整的两个梯形具有两个公共节点,一般发生在梯形链上,调整过程中只有一个公共节点被简化。如下图 (c),若P2的容差小于当前容差ε而P5的容差大于当前容差ε,则包含P2的两个梯形都要调整节点。如T1中P2节点被移除或被调整为T2中P2的垂直顶点P3;则T2中P2节点被调整为T1中P2的垂直顶点P1或被移除,可得到T1(P1,P1,P5,P6)、T2(P1,P3,P4,P5)或T1(P1,P3,P5,P6)、T2(P3,P3,P4,P5)两种结果,两种结果在几何图形具有一致性。与双梯形调整操作对应的梯形及节点的变化如下表所示。
技术图片
技术图片

(3)退化与消融
退化是由梯形变为三角形的操作,消融是指有三角形退化为线或消失的操作。退化与消融只发生梯形连通图中链的顶端或尾端的单连接节点上。
当需要被简化的节点只存在于一个梯形且其水平节点不需被简化,则发生图形退化。如下图(a)中所示若P1的容差小于当前容差ε而P6的容差不小于当前容差ε,则发生图形的退化操作,此节点从梯形节点数组中移除;由于本文研究透视投影下简化方法,节点容差与视点相关,若图形旋转则可能出现P6的容差小于当前容差ε而P1的容差不小于当前容差ε的情况,如下图(c)所示。退化操作对应的梯形及节点的变化如下表所示。
技术图片
技术图片
当三角形顶点被简化或梯形两顶部节点都被简化时则发生图形消融。如上图(a)中所示,若P1、P6的容差小于当前容差ε则发生消融。下图(a)中,若P1的容差小于当前容差ε则发生消融,梯形退化为线或变为不可见状态,对应的梯形及节点的变化如下表所示。
技术图片
技术图片
5自相交处理
一执行LOD绘制时应保持拓扑关系的一致性,一般会考虑三种形式的拓扑关系:(1)对于单个边界,边界不应自相交;(2)对于两个边界,外部或内部边界不应自相交;(3)岛屿应该没有交叉点。依据简化算法,简化操作存在引入交叉点的风险,在梯形格网简化算法中,拓扑错误都体现为梯形之间出现交叉点。因此,拓扑检查操作可以转化为检查简化后的梯形是否与其他梯形相交的问题。通过穷举法检查梯形是否与任何其它梯形相交可以避免拓扑误差,然而该方法在计算上可能非常昂贵,尤其是当要检查的多边形包括大量的顶点时,本文使用一种启发式测试策略来有效地检查交叉点。
技术图片
如上图所示,若T4与T7进行简化操作,则不需判断所有梯形与合并的梯形是否相交,可能与合并后梯形相交的区域位于T4与T7最小Y值与最大Y值之间,若合并后的梯形与相邻链Chain4(T6、T8、T9)不相交,则不可能与Chain3(T5、T10)发 生相交。如上图所示,若T5与T10进行简化操作,可能与合并后梯形相交的区域位于T5与T10最小Y值与最大Y值之间。若合并后的梯形与相邻链Chain4(T6、T8、T9)不相交,则不可能与Chain2(T4、T7、T11)发生相交。因此,本文通过对y-span内相邻链的检查实现快速的自相交判断。
6结语
本文构建了线、面要素的梯形格网,并基于一致性和拓扑保持的原则设计透视投影下梯形格网的简化算法。首先介绍了矢量数据结构,从可视化的角度出发采用平行线推移算法和梯形剖分算法对矢量几何要素进行剖分处理。其次,介绍了梯形连通图并详细探讨了梯形节点、梯形链和梯形简化的关系,将矢量几何要素剖分后的结果组织成梯形格网并设计了一种透视投影下梯形格网的简化算法,最终使用一种梯形格网的自相交判断方法避免了可能出现的自相交情况。

原文来自:http://www.ztmapinfo.com/blog/index.php/article/38.html

基于3DGIS技术的梯形格网构建及其简化算法设计

标签:检查   矢量   png   参数   公式   面积   变更   符号表   follow   

原文地址:https://blog.51cto.com/14758767/2485391

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!