ImageVerifierCode 换一换
格式:DOCX , 页数:21 ,大小:78.94KB ,
资源ID:9813839      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9813839.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(由不规则离散点集生成TIN与GRIDDEM.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

由不规则离散点集生成TIN与GRIDDEM.docx

1、由不规则离散点集生成TIN与GRIDDEM由不规则离散点集生成GRID-DEMTIN与由不规则离散点集生成 TIN与GRID DEM现阶段生成数字高程模型(DEM )的方法较多,如以摄影测量得到的像对为数据源跟踪生成等高线及 DEM,由机载激光测距仪记录规则点集后生产数据,也可采用传统的地形图扫描后跟踪等高线,记录一连串离散点集,接着运用各类算法进行处理,最后生成不规则三角网(TIN )与规则格网(GRID)DEM的方法。本文主要介绍的就是以等高线(参考图一)和离散点集为数据源,产生 TIN与GRID DEM 的技术路线。具体步骤如下:1)跟踪等高线生成离散点集,记录在文本文件中。参考图二和图

2、三。2 )读取文本文件中的数据,进行预处理。主要工作是找到 XY轴方向上最小最大数值,压缩数据范围,避免数据范围跨度太大或太小,即出现数据分布稠密或稀疏的情况。while(! _demfile . eof ()_demfile point3dXYZ i 0 point3dXYZ i 1 point3dXYZ i 2;point3dXYZ i 2 = point3dXYZ i 2 / 2; / 因为 XY轴在随后调整,因此相应调 Z轴数值if(xMinpoint3dXYZ i 0)xMin = point3dXYZ i0; /得到整个范围的最大与最小数值if(xMaxpoint3dXYZ i1)

3、yMin = point3dXYZ i1;if(yMaxpoint3dXYZ i 2)zMin = point3dXYZ i2;if(zMaxpoint3dXYZ i 2)zMax = point3dXYZ i2;i+;_demfile . close (); /文件流读取完毕,关闭_demfile . clear (); / 文件流清除3)完成TIN中点,线,三角形和网的定义。Class AFX_EXT_CLASSTIN_Poi nt /TIN中的点friend class TIN;public :int Get_ID ( void ) return ( m_ID ); /ID 数值cons

4、t POINT3d&Get Point(void ) return ( m_Point );/普通的点doubleGet_X( void )returnm_Point0);/点上的X数值doubleGet_Y( void )returnm_Point1);/点上的丫数值doubleGet_Z( void )returnm_Point2);intGet_Neighbor_Count(void ) return ( m_nNeighbors );/邻接点的个数TIN Point* Get_Neighbor(intiNeighbor = 0 &intGet_Triangle_Count(void )

5、 returnTIN_Triangle *Get_Triangle ( int iTriangle )m_nTriangles ? m_TrianglesiTriangle : NULL); private :TIN_Point ( void );TIN_Point ( int ID,POINT3d pptxyz );m_nTriangles );/得到邻接三角形个数return ( iTriangle = 0 & iTriangle m_Extent. Get_YRange() ? m_Extent. Get_XRange():m_Extent. Get_YRange();/取范围中XY两轴

6、的较大数值xmid =m_Extent. Get_XCenter();/中心占八、ymid =m_Extent. Get_YCenter();PointsnPoints+ 0-m_Poi nt0xmid - 20 * dmax 第一个顶点的 X数值PointsnPoints+ 0-m_Poi nt1ymid - dmax;/第一个顶点的 Y数值,此数值取得相当小PointsnPoints+ 1-m_Point0xmid;/第二个顶点的X数值PointsnPoints+ 1-m_Poi nt1=ymid + 20 * dmax / 第二个顶点的Y数值,居中,但偏高PointsnPoints+ 2

7、-m_Poi nt0xmid + 20 * dmax /第三个顶点的X数值PointsnPoints+ 2-m_Poi nt 1ymid - dmax 第三个顶点的 Y数值,第三个顶点与第一个顶点高度相同,在X轴上对称Triangles 0. p1 = nPoints+ 0;/三角形的顶点记录的是顶点数组中的索引+ 1;Triangles 0. p2 = nPoints+ 2;Triangles 0. p3 = nPointscomplete 0= false ;nTriangles=1;/初始化三角形个数为 1/每次增加一个顶点到已存在的TIN格网中for (i =0; i m_Point0

8、;/使用浮点数进行记录yp = Points i -m_Point1;/使用浮点数进行记录n edge始化边的个数为0=0;/对于每个顶点,初/如果顶点位于三角形的外接圆内,则原三角形的三条边被加到一个缓存中,并移走此三角形/对于所有刚刚建立的三for (j =0; j vnTriangles ; j +)角形进行循环if ( complete j )continue/此三角形的完整性不用破坏,继续下次循环判断顶点与外接圆的关系xp )此三角形为完整性if ( xc + r m_Point0; /三角形的三个顶点y1= Points Trianglesj.p1-m_Point1;x2= Poi

9、nts Trianglesj.p2-m_Point0;y2= Points Trianglesj.p2-m_Point1;x3= Points Trianglesj.p3-m_Point0;y3= Points Trianglesj.p3-m_Point1;inside= _CircumCircle (xp, yp,x1,y1, x2, y2, x3, y3, &xc, &yc, &); /if ( in side )/顶点落在外接圆里面/检查是否超岀边链表的大小 if ( nedge + 3 = emax )emax+=100;sizeof (TTIN_Edge) = NULL)/增加边的个

10、数if ( ( edges = ( TTIN_Edge *) realloc (edges, emax*/增加新的内存分配存储边的信息引:1,2; 2,3; 3,1edges nedge + 0. p1edges nedge + 0. p2edges nedge + 1. p1edges nedge + 1. p2status = 3;if ( edges )if ( complete )=Triangles j . p1;=Triangles j . p2;=Triangles j . p2;=Triangles j . p3;free (edges);free (complete );/顶

11、点的索edgesnedge + 2. pl = Triangles j . P3;edges nedge + 2. p2 = Triangles j . pi;个数加上来形的循环edges k.-1;edges k.nedge += 3; /对于最外层循环的顶点来说,相关边的3Triangles j = Triangles nTriangles - 1; /将链表中最后一个二角形赋值过complete j = complete nTriangles - 1;nTriangles -;/三角形个数减去j -;/ 对应:if( inside ) /结束对所有三角/标记被重复使用的边/若三角形以逆时

12、针方向存储,则内部被多次使用的边存储的顶点顺序是相反的for (j =0; j nedge-1; j +)for (k=j +1; knedge; k+)if ( ( edgesj . p1 = edges k. p2) & ( edges j . p2 =p1) ) /同样的一条边存储的方向刚刚相反edgesj. p1 =/做标记edgesj. p2 = -1;edges k. p1 = -1;edges k. p2 = -1;if ( ( edgesj . p1 = edges k. p1) & ( edges j . p2 =p2) ) /同样的一条边edgesj. p1 = -1;ed

13、ges j . p2 = -1;edges k. p1 = -1;edges k. p2 = -1;/组成新三角形/忽略所有已经打过标志的边/所有的边以顺时针方向安排for(j=0; jvnedge; j +)if ( edges j . pl 0 | edges j . p2 = trimaxstatus = 4;if ( edges ) if ( complete )Triangles nTriangles . p1引Triangles nTriangles . p2Triangles nTriangles . p3索引complete nTriangles nTriangles +;fo

14、r(i=0;i;i+)free (edges);free (complete );=edgesj . p1; /记录关联的边的一个顶点索=edges j . p2; /记记录关联的边的另一个顶点索引=i;/对于最外层循环的顶点来说,记录此顶点的=false ;/对所有的顶点循环完毕 /对应着/ /移走初始定义的大外接三角形/这些三角/ Remove triangles with supertrianglevertices/ These are triangles which have a vertex number greater than nPoints形的顶点索引超岀了顶点个数for (i

15、 =0; i = nPoints| Triangles i . p2 = nPoints| Triangles i . p3 = nPoints )Triangles i = Triangles nTriangles - 1; / 不断的把最后一个三角形赋值过来nTriangles -;i -;return ( status = 0 );5 )对TIN中的三角形进行循环,以每个三角形的顶点为参数,插值生成 GRID DEM 。参见图四.图一:等高线图洒因 500 576QC 57BQWJI I i I IIII *| k;、=- 11, i _tw 广 J 二二7厂二Y/iJii 、_ 厂厂J

16、d.、i/Jf f F TLfd -J上三二7TIrq:GSiJ?AJ/ :广ICO: 2000 3COO 4000 MOH 6050 7000 RO32- MOO 10:00 11000 1?00fl U00C- 1OlO 1S-300 17COO 1B00C图二:离散点57E(JC10fl: 2OCD 3?0O JOOO 500? SCIO 7D0:创畀 MCO 10:00 MOO, IPOOC 13-SiO *SOOO 1G3M t7C?0 9 XKblCOH 馬gn RB 5. DiK 良 3 曲.QHIM NCE- 003:1口冃二丿|口_!|_.|口=呂名呂2 34 g 邛HI总

17、COZ 8M G , i IHMi I li l t ! z J If i图三:导出的数据存储在文本中QfJ.; Z J-i 毋社 f h UU VUUUS75870.000000 575951-335765 575750.000000 575730,0eiS 575763.92536E E757S5.000300 -?5345445 57573pQ00300 575SSS哎 575950 QQgg 5760032哙3吐二工 576016,3勺呂 57597 厉 52 五石;3 5fi2OlOOOO0OO 562032.72230 562010.000000 562001.65826 5620

18、10-000000 562010.000000 577760.000000 577850.000000 577949.000000 577753.000000 577724.Q-71B67 577670 .ODOODCi 577S80.00000051312.120915571324.SS8257 5717345.27603 571414.358:5 571-7SC4 .A8S2S7 5717321.179-389.555*5-57173书呂220 571734 电电225丁 571775.巧召甫E81 5717774右W3257 571734廿巧已257 571754.8825 571824

19、 2239自2 571S74.335x57 57113.23731 571074為E325T 571824.228952 57134.23952 571552.209445 571811唱疔23五石 571515.507705 57K852.209445 571SS74.88257 5713S 3吗13295716909.04165图四:生成的GRID DEM囚七.茫审冋翌X I,昭g 总妃昌DEMg47.00000047.00000047.00000037.0000007.00000047.000000 ma越g7.000090 i7.00Q090 EQQQ00Q 攻7 000000 17.000090 7.DQOOQO 吕000000 48.000000 今E 000000 处.000000 8.000000 4? .000000 50,000000 50 0QOODO 50.000000 51.000000 51,000000 5100000051.000000

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1