文档详情

构TIN实验报告概要.docx

发布:2017-03-05约3.67千字共12页下载文档
文本预览下载声明
地球科学与环境工程学院2014-2015学年第2学期《基于离散点的构TIN算法》数字高程模型学号 姓名 饶菁 指导教师齐华 班级 测绘工程一班 一、实验任务及成果(1)、实验任务:利用离散点三维坐标构建三角网,源数据展示:(源数据各点间用换行区分,每点各坐标间用空格分隔。)Figure 源数据格式(2)、实验成果:计算所得三角网如图:Figure 成果展示二、实验流程(1)主要步骤:1、首先,找出离散点中相距最近的两点,连接两点形成TIN的初始基线;2、然后,找出第三个点构成首三角形,寻找第三点可按Delaunay三角形的判断法则寻找,也可按距离基线中点最近的原则寻找。3、连接新点和两个基线端点形成首三角形,以两条新边为基线,重复以上过程,直至两条新边扩展完成;4、重复以上过程,直至不再扩展三角形,此时TIN构建完成。(2)详细步骤:1、确定首三角形①选择位于所有离散点中间的点作为首三角形的第一个顶点,记录在t1[1]中;②找出离该点最近的点作为首三角形的第二个顶点,记录在t2[1]中;③之后寻找与前两个顶点连线中点最近,且不与两顶点共线的点(本实验中以斜率相同来判别),作为首三角形的第三个顶点,记录在t3[1]中;④用变量L记录已经形成的三角形数,则此时L=1。2、扩展三角形①从K号三角形的第一条边开始扩展(此时K=1);判断该条边是否已经被扩展过(本实验中将已扩展的边存放在一数组中,以便进行后续判断),如果没有被扩展,将该边两顶点进行标记,执行以下步骤,否则转向下一条边。②寻找可能的扩展点依次判断所有点,选取与K号三角形另一个点异侧的点作为候选扩充点,在其中寻找扩张边张角最大的点(利用余弦定理)作为要扩充的点。A、利用直线判别公式排除与K号三角形另一个点同侧的点,如下所示:式中:任一点代入直线判别式,若,则P位于该边的正区;若,则P位于该边上;若,则P位于该边的负区;B、余弦定理。寻找最大之,由于,即cos最小。③添加选出的顶点,在要绘出的编数组中加入该点到线段两端点的边。④当K号三角形的三条边都扩展完成后,K=K+1,转向下一个三角形扩展。3、迭代重复以上步骤,直至所有三角形扩展完毕,此时满足K=L。三、实验主要步骤及运行界面(一)界面设计1、在本实验中使用AE,以便进行三角网的绘制与查看。主界面设计如下:Figure 界面设计Figure 计算结果界面2、菜单项:未录入数据时,计算项不可用Figure 菜单栏3、工具栏:仅添加对图层进行查看的工具。Figure 工具条4、状态栏:未打开数据时,状态栏显示就绪:打开点数据后,更具鼠标的移动,显示坐标值:计算时显示进度条:(二)展点及三角网绘制本实验中采取“新建图层——将实体对象添加到图层”的方法:新建图层:由于出了点数据以外,还要加载线数据,所以函数中的参数包括esriGeometryType,用于加入相应的几何属性将实体对象添加到图层:存在图层的情况下,利用空间编辑来插入新的实体对象。坐标点展示图:Figure 展坐标点(三)构TIN1、主要函数包括:计算距离直线中点最近点、计算最近点、判断边是否经过扩展、三角网计算函数等。具体代码在程序中可以详细看到,此处不再赘述。2、计算最初几个离散点:可以看出,计算结果正确。Figure 少部分点的计算3、最终成果:Figure 三角网放大后效果:Figure 放大后效果四、实验创新点1、展离散点时,展出要素而非元素IPolyline ply1 = polyline asIPolyline;addFeature(polyline, ply1);2、计算时将坐标十万位或百万位减去,简便计算for (inti = 0; i points_number; i++) {points[i, 0] = points_old[i, 0] - 500000;points[i, 1] = points_old[i, 1] - 1125000;points[i, 2] = points_old[i, 2];points[i, 3] = 0;}将已扩展边放入数组中,以便判断可将图层保存为shapfile文件,导入到arcgis中Figure 导出shapefile文件Figure Arcmap中三角网展示5、鼠标移动,显示地图中坐标Figure 坐标值显示五、实验总结(1)、问题及解决方案Question1:离散点无法展在地图中运行后,程序不报错,但无显示。Solution:最初采取展元素的方法,但由于shapfile文件的范围过大,且不好确定,显示效果不佳。最终采用展要素点的方法。Question2:不进入扩展阶段循环最初
显示全部
相似文档