ZD-研究-数学形态学和模式识别在建筑物多边形化简中的应用-Vxx模板资料_第1页
ZD-研究-数学形态学和模式识别在建筑物多边形化简中的应用-Vxx模板资料_第2页
ZD-研究-数学形态学和模式识别在建筑物多边形化简中的应用-Vxx模板资料_第3页
ZD-研究-数学形态学和模式识别在建筑物多边形化简中的应用-Vxx模板资料_第4页
ZD-研究-数学形态学和模式识别在建筑物多边形化简中的应用-Vxx模板资料_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Good is good, but better carries it.精益求精,善益求善。ZD-研究-数学形态学和模式识别在建筑物多边形化简中的应用-Vxx模板DocumentLendingRecordNameofDocument:SignatureofBorrower:Dateoflending:InstructionsofPrincipalofDocument:Date:DateofRepayment:SignatureofDocumentcontroller:基于数学形态学和模式识别的建筑物多边形化简算法研究文档COMMENTS*MERGEFORMATVersion1.0文档名称:FI

2、LENAME*MERGEFORMATZD-研究文档-Title-Vx.x.doc修订历史记录日期版本号修改说明修改人核准人2005/11/161.0首次撰写目录TOCo1-3hzHYPERLINKl_Toc1192246801引言PAGEREF_Toc119224680h4HYPERLINKl_Toc1192246811.1目的与范围PAGEREF_Toc119224681h4HYPERLINKl_Toc1192246821.2预期的读者PAGEREF_Toc119224682h4HYPERLINKl_Toc1192246831.3方法学PAGEREF_Toc119224683h4HYPERL

3、INKl_Toc1192246841.4定义、缩写词PAGEREF_Toc119224684h4HYPERLINKl_Toc1192246851.5参考资料PAGEREF_Toc119224685h4HYPERLINKl_Toc1192246862研究内容PAGEREF_Toc119224686h4HYPERLINKl_Toc1192246872.1子研究内容分解PAGEREF_Toc119224687h4HYPERLINKl_Toc1192246883附录PAGEREF_Toc119224688h4TITLE*MERGEFORMAT研究文档1引言1.1目的与范围本文档介绍了在数学形态学和神经

4、网络支持下的模式识别的化简方法来实施多边形的自动综合。本文档作为该算法实现的理论依据和设计基础。文档中包含该算法及其主要子函数的流程图以及伪代码。1.2预期的读者本文档预期的读者是本项目的设计人员、开发人员、测试人员、项目经理。1.3方法学本设计所使用的主要方法是数学形态学的击中变换,基于混合遗传BP神经网络的模式识别。1.4定义、缩写词数学形态学:以形态为基础对图像进行分析的数学工具。其基本思想是用具有一定形态的结构元素去度量和提取图像中的对应形状以达到对图像分析和识别的目的,是非线性变换。击中运算:一种数学形态学算子,用来寻找局部模式(局部指结构单元尺寸)。它是一种模版匹配的变形,可对物体

5、进行粗化或细化。结构元素T对图像X的击中变换为:BP(反向传播学习)神经网络算法的基本思想:ANN(人工神经网络)是对人类大脑的一种物理结构上的模拟,即以计算机仿真的方法,从物理结构上模拟人脑,以使系统具有人脑的某些智能。在众多的ANN模型中,多层前馈神经网络模型是目前应用最为广泛的模型,反向传播学习算法(简称BP算法)的基本思想为:根据网络实际输出与期望输出的误差,从输出层开始,反过来调整网络的权值,最终使得输出的均方误差最小。遗传算法(GA):遗传算法以生物进化过程为背景,模拟生物进化的步骤,将繁殖、杂交、变异、竞争和选择等概念引入到算法中,通过维持一组可行解,并通过对可行解的重新组合,改

6、进可行解在多维空间内的移动轨迹或趋向,最终走向最优解。它克服了传统优化方法容易陷入局部极值的缺点,是一种全局优化算法。遗传算法的多层BP神经网络(GA-BP算法)基于遗传算法的人工神经网络的应用的基本原理是用遗传算法(GA)对神经网络的连接权值进行优化学习,利用GA的寻优能力来获取最佳权值。1.5参考资料王辉连武芳.数学形态学和模式识别在建筑物多边形化简中的应用.测绘学报.2005(3).269276黄文骞.地图模式识别原理与方法M.北京:测绘出版社,2000胡师彦.混合遗传BP算法在图像识别中的应用.石家庄铁道学院学报,2002.15(3)孙即祥.现代模式识别.长沙.国防科技大学出版设,20

7、02张迁刘政凯.基于数学形态学的地图自动配准方法.小型微型计算机系统.2003.24(7)2研究内容2.1算法描述2.1.1与地图比例尺相关的栅格数据与矢量数据结合的数据模型街区边线的矢量数据栅格化过程:使用经典的Bresenham算法进行街区边线的栅格化;用种子填充算法得到建筑物多边形的栅格数据。注:栅格单元尺寸定为地图上的0.1mm栅格数据模型如下所示:typedefstructtagResidentGridDatadoubleX,Y;/图像的左下角坐标doublem_dGridWidth;/栅格宽度intm_iResidentGridRow;/图像高intm_iResidentGridC

8、olumn;/图像宽BYTE*m_pResidentGridData;/栅格数据GMS_ResidentGridData;/栅格数据结构用改进的Freeman链码来表示街区的轮廓,其数据模型为:typedefstructtagCodeCellintm_iDirection;/追踪方向intm_iLength;/追踪长度(像素数)intm_iPatternFlag;/模式识别标志GMS_CodeCell;/Freeman链码单元typedefstructtagFreeman_ChainCodeBOOLm_bFinishedSimplication;/化简标识CPointm_StartPoint;

9、/起点坐标CArraym_ChainCodeArray;/链码数据GMS_Freeman_ChainCode;/Freeman链码2.1.2对建筑物多边形进行矩形化变换矩形化变换:在给定的化简尺度上,对建筑物多边形进行最大程度的化简,即直接变为矩形。街区的复杂度决定了建筑物多边形能否被矩形化。街区的复杂度可以用最小表达尺度和最小外接矩形来评价。所谓最小表达尺度即图上0.3mm。找出建筑物多边形最小外接矩形,在其面积与建筑物多边形面积之差小于建筑物多边形面积的30%(实验值)的条件下,如果最小外接矩形的宽接近最小表达尺度,或者建筑物多边形的多条长边在最小外接矩形的边上,则街区可直接化简成矩形。所

10、谓“最小外接矩形”,与平时提到的外接矩形不同(如图),最小外接矩形是指建筑物多边形的外接矩形中面积最小的矩形,在适当调整其中心位置和面积大小后可以作为建筑物多边形矩形化的化简结果。为了最好地表达建筑物多边形的位置、方向、形态和面积特征,建筑物多边形矩形化时不能只是简单地用最小外接矩形替代表示,还要对最小外接矩形的位置和面积作适当调整(如图)。2.1.3对建筑物多边形进行直角化调整进行直角化调整(实质是一种数据纠正)既可突出建筑物多边形的直角化特征,也利于后面的数学形态学化简和模式识别化简。计算建筑物多边形各边与X轴正方向的夹角,在可将各边在一定偏差范围内归为两个垂直方向的条件下,只需使各边调整

11、后的方向等于最小外接矩形的长轴方向或者90,即达到了直角化的目的;而对于有几个分布轴向的多边形,其直角化相对复杂,需要对与每个轴向相关的边的方向分别调整。直角化需注意顶点坐标的精度控制,为了不改变多边形的主要形态和方向特征,需要有一个合理的评价尺度。以顶点的平移距不超过某一阈值作为标准,而不用旋转角度来评价,可以保证长、短边的精度控制的一致性(如图)。直角化操作的原则是尽可能保持长边的方向和短边的长度不变。调整边的方向时,采用了让边绕其中点旋转一个角度的办法,这样可保证多边形的面积不变。2.1.4利用数学形态学方法对建筑物多边形进行初步化简数学形态学是一门建立在严格数学理论基础之上的学科,是一

12、种用于数字图像处理和识别的理论与方法。数学形态学的运算有容易控制、运算速度快的优点。由于栅格数据是与比例尺相关的,因此栅格单元的大小直接与最小表达尺度挂钩。设计合适的击中模板,可以通过击中运算来识别建筑物多边形轮廓的相关结构。受模板结构的限制,数学形态学不能很好处理复杂的多边形轮廓化简,因而只将两种最常见的建筑物多边形轮廓上需要化简的简单结构用数学形态学进行处理,即轮廓上单个宽度小于最小表达尺度的凸起和凹陷部分。对于建筑物多边形轮廓上的小的弯曲,如图6所示,化简需要在舍去、保留和夸大表示之间做出合理的选择:如果弯曲的高度(或深度)和宽度都小于最小表达尺度,则该弯曲可以舍去(如图中弯曲A);如果

13、弯曲的高度(或深度)和宽度之中一项大于最小表达尺度,另一项小于最小表达尺度,则该弯曲需要夸大表示,将小于最小表达尺度的一项夸大到等于最小表达尺度(如图中弯曲B);如果弯曲的高度(或深度)和宽度都大于最小表达尺度,则该弯曲应保留。注:通过上面的直角化调整,建筑物多边形的直角化特征明显,其各边可分为互相垂直的两组。而栅格单元同样是在垂直和水平方向上分布的,这就便于了模板选择。利用数学形态学进行建筑物多边形化简的步骤如下:1.建筑物多边形经过前面的矩形化和直角化操作后,如果建筑物多边形的最小外接矩形的方向不是沿着水平和垂直方向,则先进行坐标旋转变换使得建筑物多边形各边都尽可能沿水平或垂直方向,然后栅

14、格化,并用轮廓追踪的方法获取多边形轮廓的Freeman链码。2.利用如图所示的55结构模板对栅格数据进行击中运算:模板一及其旋转90、180和270的四种情形,可用来对轮廓上需要化简的窄的凸起结构的识别;模板二及其旋转90、180和270的四种情形,可用来对轮廓上需要化简的窄的凹陷结构的识别。图:模板一(突起)模板二(凹陷)3.对找到的凸起或凹陷部分对应的Freeman链码作进一步分析,确定其为单个凸起或凹陷结构,并根据结构的高度(或深度)对其采取舍去、保留或夸大的操作。对应的操作都针对栅格链码数据,只需调整链码单元的追踪长度,数据处理相对矢量运算来说简单高效。4.对化简后的栅格链码数据进行分

15、析,如不存在需要化简的短边则进行矢量化,并进行坐标反向旋转变换得到原坐标系下的坐标;如还存在需要化简的短边则留待后面使用模式识别方法化简。在如图7的建筑物多边形化简中,能识别出A、B、C、D、E并分别进行处理;但F部分则无法识别与处理,这种情形及更复杂的凸起和凹陷部分相邻连续的情形需要随后用模式识别的方法进行处理。2.1.5神经网络支持下的建筑物多边形模式识别化简由于轮廓的Freeman链码可看作是一种首尾相连的矢量序列,这有利于将建筑物多边形轮廓在染色体文法基础上表示成基元串或子模式串,然后通过句法翻译进行识别分类,针对不同模式选择合适的方法进行化简。由于栅格化时通过坐标旋转使轮廓像素沿水平

16、或垂直方向分布,且轮廓跟踪时采用顺时针方向并选择轮廓左下角为起点,这样就能用图10中的8种结构基元去描述街区轮廓的结构。下图中的阶梯状轮廓可用串abcbcbcd来描述,波浪形轮廓可用串abcbabcd来描述。阶梯状轮廓波浪形轮廓如何从描述轮廓的基元串中识别出不同模式则是实现模式识别的核心步骤。这一方面需要定义一个完整的文法,已知染色体文法G(N,P,S)中的终结符集为a,a,b,b,c,c,d,d,还需要确定非终结符集N和产生式集P;另一方面还需要从描述轮廓的基元串中找出有意义的表示相应模式的句子,如上图中的波浪形轮廓的基元串abcbabcd中的子串bcbab就是一个表示波浪形的单个浅凹进结构

17、的句子。由于街区轮廓的形态多样,这样各种子模式的组合方式也就很多,这给非终结符集N(一定意义上可认为是子模式集)和产生式集P(语法规则集)的确定带来了一定困难。实际上模式识别也不可能(或不要求)处理所有情形的轮廓化简,而穷举典型模式及构造对应文法是可能的,以长边(即基元a,b,c,d)作为句子的分界点,也不难从描述轮廓的基元串中找出含短边(即基元a,b,c,d)的句子。对句法模式进行识别,一般都通过句法分析采用自上而下法或自下而上法来判断一个句子(即模式)是否在语言L(Gi)中是合法的,从而把这个模式惟一地分配到第i类。模式识别分类问题实际上是一个模式特征空间的划分问题或映射问题,而神经网络尤

18、其是多层神经网络的工作原理是建立在模式变换的基础上的,因此将神经网络用于模式识别是十分自然而有效的,而且基于神经网络的模式识别还表现出很好的自适应、自学习、自组织及容错等能力。3层BP神经网络即可实现多维空间的任意分割,为了提高BP神经网络的全局优化特性和加快网络学习收敛速度,本文采用3层混和GABP神经网络来进行模式识别,神经网络起句法翻译的作用。用神经网络来进行句法模式识别的基本步骤如下:1.枚举可能的典型模式并构造文法;2.用自上而下的句法分析得到各典型模式的合法句子,将其适当转换作为神经网络的输入对神经网络进行有监督的学习,收敛后将神经网络的权值矩阵及对应模式存入模式库。模式库按句子长

19、度(即基元个数)分类存储;3.将建筑物多边形轮廓的Freeman链码转换为基元串;4.从基元串中找出合法句子,按句子长度从对应模式库中读入神经网络的权值矩阵,构造神经网络并将句子作为输入,直到神经网络得到合法模式的输出,即完成了模式识别。完成模式识别后,针对不同模式采取合理的化简方案即可实现建筑物多边形的化简。2.1.6对化简后的建筑物多边形的不合理部分进行整形在某些情形下,建筑物多边形经过化简后即使已不存在小于最小表达尺度的短边,但仍可能有与制图规范相冲突的情况。如图中的两种过于狭窄部分的存在是不允许的,但在上述化简操作中无法识别这种情形进行处理。因此还要对化简后的多边形的不合理部分进行整形

20、。2.1.7对一些复杂建筑物多边形的化简处理对一些复杂建筑物多边形,可在矢量数据下用类似模式识别的方法去分析并遵循化简原则进行合理化简。2.1.8算法总结下图即为在自动综合软件中用此算法实现的居民地自动综合的效果:结合试验对该算法的一些总结:1.通过实验反映作者所采用的建筑物多边形化简步骤是比较合理的,采用这样的化简步骤大大提高了化简效率(1000多个多边形的化简耗时十几秒,与计算机配置关系不大)。约35%的多边形矩形化时直接化简为矩形。20%的多边形通过数学形态学方法可完成化简。神经网络辅助下的模式识别相对于基于句法分析方法的模式识别,有易于程序实现、识别容错能力较好的优点。2.本文的方法能

21、较好保持多边形的轮廓特征和面积,考虑了化简尺度,化简结果基本符合制图规范。与现有方法比较体现出一定优势。3.本文算法中有矢栅数据转换,采用多步骤、多方法,算法的一致性、健壮性不如文献4(郭庆胜.以直角方式转折的面状要素图形化简方法J.武汉测绘科技大学学报,1999,24(3)中的方法,在某些情形下,会有不合理的化简结果,但85%以上的化简结果是较理想的。4.尽管本文的方法有一定实用性,但还存在以下不足:首先本方法只适合于大比例尺下直角化特征明显的建筑物多边形的化简,对复杂建筑物多边形的化简还不尽如意;其次构造有一定容错性、并能导出完整模式集的文法困难,这导致少数模式无法正确识别,化简结果不确定

22、。2.2算法流程图及伪代码1开始2将建筑物多边形数据读入3设置最小表达尺度(全局),一般为地图上的0.3mm4while此时不是最后一项记录5判断是否有需要化简的短边6对标记为需要被化简的每个多边形记录进行矩形化判断,对被标记为可被矩形化的多边形,调整其最小外接矩形,作为矩形化结果输出7对标记为不可被直接矩形化的多边形,进行直角化调整8if该多边形的最小外接矩形的方向不是沿着水平或垂直方向,then对该多边形进行坐标旋转,使其边尽可能的沿水平或垂直方向9矢量数据栅格化10对建筑物多边形的轮廓进行Freeman链码编码11对栅格数据用数学形态学的方法进行击中算法,识别出轮廓上的凸起和凹陷部分12

23、分析凸起和凹陷部分的Freeman链码,对其进行处理if(判断是否有需要化简的短边true)then用GA-BP算法进行模式识别;elsethen14栅格数据矢量15坐标变换,反转到原坐标系下Endwhile16矢量环境下对复杂多边形的化简17结束2.3子函数流程图及伪代码2.3.1是否有需要化简的短边1对每条记录中的多边形的边遍历,if存在边长小于阈值(0.3mm)的边,then该多边形标记为需要化简,elsethen直接输出该多边形2.3.2获得外接矩形2.3.3最小外接矩形的获得获取几何对象的外接矩形,并得到其面积值赋给变量AreaMin;For(0;AreaTmp;If(AreaTmp

24、公共变量B将得到的矩形反旋转一个B角度,得到的就是原多边形的最小外接矩形2.3.4矩形化判断1计算指定建筑物多边形的面积Spoly2对指定的建筑物多边形建立其最小外接矩形(MER),并计算其最小外接矩形的面积Smer3If(|Spoly-Smer|=最小表达尺度&Width=最小表达尺度)then保留该弯曲,不作调整If(Height最小表达尺度&Width=最小表达尺度&Width最小表达尺度)thenWidth=0.3mm(最小表达尺度),调整链码if(Height=最小表达尺度)thenHeight0.3mm(最小表达尺度),调整链码5输出调整后的Freeman链码2.3.11GA-BP

25、算法进行模式识别(暂略)GA-BP算法进行模式识别用穷举法构造染色体文法G=(Vn,Vt,P,S)由自顶向下的句法分析构造各典型模式的合法句子训练BP神经网络,将收敛后将神经网络的权值矩阵及对应模式存入模式库。模式库按句子长度分类存储将用多边形轮廓的Freeman链码表示为基元串从基元串中找出合法句子,按句子长度从对应模式库中读入神经网络的权值矩阵,构造神经网络并将句子作为输入,直到神经网络得到合法模式的输出,输出值y=f(wjxj-)对识别出的模式进行化简处理考虑到该部分的实现难度,在该算法中的意义作用,在具体实现时暂时不处理该部分(2.3.122.3.14)2.3.12GA-BP多层神经网

26、络的训练(暂略)将全部权值与结点的阈值预置为一个小的随机数While未达到预定误差精度或循环次数将各典型模式的合法句子作为输入,所要类别数作为输出分别加载,采用S型函数模型(fs(x)=1/(1+e-x))计算各实际输出值修正权值2.3.13修正权值(暂略)将权值矩阵W,阈值矩阵H的每一个元素用一个8位二进制串编码,将所有元素的编码串连起来,构成基因码链解释算子Wi=L(8位二进制对应十进制值-127)/127+WiT,实现编码与权重(阀值)之间的码制转换,Wi是第i个权重元素的值,初始选择范围为(WiT-L,WiT+L);WiT是第i个权重元素的中心取值点;L是权重取值区间的长度产生初始群体

27、。将W,H的解空间均匀等分,每个区域选取一个点作为代表,产生m个初始解评价各W,H的个体优势,对适应度Fi的个体,赋予其选中概率F=C-E(C为一常数,E为能量函数)能量函数E:4交叉:首先将复制的数字串任意配对,然后分别对每对进行交叉操作。最简单的交叉方法是随机地选取一个截断点,将双亲的基因码链在截断点切开,然后交换其尾部。变异:首先根据给定的变异概率随机选取若干个体。一般而言,给定变异概都很小,一般取00.05。然后对于选中的个体,随机选取某一位进行取反运算。5对父代、子代W,H的各种取值重新排列,取m个适应度较大的个体作为下一代种群,转步骤3直到群体适应度趋于稳定。6在趋于稳定的种群中选

28、择适应度值最高的个体,对之应用BP算法。7得到最优值。当网络的训练误差达到给定误差要求时算法结束。此时的Wr,Hr为所求的最优值。2.3.14Freeman链码表示为基元串(暂略)多边形轮廓的Freeman链码=strings,Freeman链码中同一方向上的追踪长度(像素值)=intm_iLengthIfm_iLength=3,即追踪长度为大于等于最小表达尺度,将追踪方向按0-B,1-A,2-D,3-C的规律转换Ifm_iLengthb,1-a,2-d,3-c的规律转换输出基元串s2.3.15栅格数据矢量化2.3.16复杂多边形的化简(矢量)2006.1.2在栅格数据处理时,该算法的思想是:

29、首先追踪Freeman链码,再通过ModelMatching找到所有的凸部、凹部,并对应标记在Freeman链码上,最后修改链码,得到矢量化的化简结果。在具体实现时,设计的算法是:用简单而直观的(行号,列号)来标记,以此来确定凸部、凹部在链码上的位置,但这样的映射方法很繁琐,在实现上实际是绕了个弯为了正确的映射,还要将Freeman链码的每个单元码也转换为该段链码的(行号,列号)坐标值这是我所能想到的方法。修改链码又是另外一个问题,不同形态的凸部和凹部(比如说波浪形的和阶梯形的)所要修改的段数是不同的。那么很自然的想到,既然在ModelMatching中,识别出了尽可能多的凸部和凹部,为何不在

30、识别的同时进行修改呢?在实现识别时,我所采用的方法是55模板击中,通过判断对应位置上的栅格单元值是否完全相同,来确定此处是否有凸凹。同样的,通过直接更改栅格单元的值来完成对凸部和凹部的抚平和填补,应该是一个可行而更为高效的方法。这样一来,程序的流程应该更改为:主程序得到的GriddataModelMatching.dll得到新的Griddata-直接传入FreemanChainCode.dll中由Freeman链码直接得到矢量数据旋转回原坐标下,这样,对一个多边形的操作就完成了。2006-1-3原来实现的FreemanChainCode,是由(0,0)点出发,找到第一个不为0的栅格单元,将其作

31、为Freeman链码的起始单元,开始跟踪。由于昨天对程序的更改,Freeman链码的起始单元应为左下脚的点,也就是m_StartPoint中应存放的坐标值对应的栅格单元。在栅格数据转回矢量数据的时候,这个点就变为了屏幕上的右上角的点。根据输入的要素类图层,在程序中应该相应的设置的几个值:确定要进行化简的最小表达尺度m_minLimit栅格单元的大小m_GridSize确定要进行直角化的角度下限m_RightModify_LMT程序结果的一些数据:要素类中居民地总数:判断要进行化简的总数:矩形化中完成化简数:数学形态学完成化简数:GenerationProcess.dll:处理整个地图综合流程,

32、调用各个动态库中的函数classGENERATIONPROCESS_EXPORT_CLASSCNewGenerFClspublic:/创建新的要素类,存放综合后的数据BOOLCreateNewFCls(CFeatureCls*m_ptFCls,CFeatureCls*pResultFCls);/处理整个要素类,地图综合流程voidGenerationProcess(CFeatureCls*ptFCls);/判断要素是否需要被综合BOOLGenerationDecided(CFeatureCls*ptFCls,TYPE_FIDfeaID);/向综合后的要素类中添加新的要素TYPE_FIDAppe

33、ndNewFeature(CFeatureCls*pResultFCls,D_DOT*ptXY,longDotnum);private:longm_minLimit;/最小表达尺度,根据比例尺自动设定;RegModifyInVector.dll:在矢量数据下进行的多边形化简操作classREGMODIFYINVECTOR_EXPORT_CLASSCRegModifyVectpublic:structMER/最小外接矩形结构体doubleArea;/最小外接矩形的面积doubleXMerMax;/最小外接矩形点的坐标doubleXMerMin;doubleYMerMax;doubleYMerMi

34、n;doubleMinEdgeLen;/最小外接矩形的最短边m_PolyMER;/判断要素可否被矩形化0/1可以/不可以BOOLRectDecidedAndModify(CFeatureCls*ptFCls,TYPE_FIDfeaID);/获得要素的最小外接矩形voidGetRegMER(CFeatureCls*ptFCls,TYPE_FIDfeaID);/获得要素的信息voidGetFeaInfo(CFeatureCls*ptFCls,TYPE_FIDfeaID);/对无法直接矩形化的多边形,做直角化操作voidChangeRegToRightAngle(CFeatureCls*ptFCls

35、,TYPE_FIDfeaID);/对已完成直角化的多边形,旋转为正方向voidRotateRegRight(CFeatureCls*ptFCls,TYPE_FIDfeaID);/对完成栅格处理的多边形,旋转回原方向voidRotateRegOrign(D_DOT*ptXY,longDotnum);/提供综合后的多边形的坐标点和点数BOOLSetRegPtXYAndDotnum(D_DOT*ptXY,long&Dotnum);private:TYPE_FIDm_FeaID;CPolyGeometrym_geoms;longm_geomNum;long*m_ptNeLen;long*m_ptNe;

36、D_DOT*m_ptXY;longm_Dotnum;D_DOT*m_ptXYNew;/化简后得到的新的坐标longm_DotnumNew;/化简后得到的新的坐标点数doublem_MerAngle;/取得最小外接矩形时,多边形旋转的度数D_DOTm_RotateDot;/多边形旋转到正方向时的旋转中心doublem_RotateAngle;/旋转为正时的旋转角度;/获得多边形的外包矩形voidGetMaxMinXY(D_DOT*ptXY,longdotnum,double&xmax,double&xmin,double&ymax,double&ymin);/旋转点voidRotateDotNew(double&dotX,double&dotY,doublecenterX,doublecenterY,doubledAngle);/计算两条线段的夹角sh

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论