当完成等值线网格化处理后,所有等值点被计算出,三角网格边中的棱边序号、等值点1指针、邻接棱边1与邻接棱边2的序号均被确定。特别的,当棱边上的等值点为一条非闭合等值线的端点时,它只有一个有效的邻接棱边。 2.2 算法流程 (1)从TIN网格中顺次读取一个棱边E1。如果E1上不存在等值点,或访问标记为TRUE,重复步骤(1)。否则,置访问标记为True,根据邻接边1序号读取棱边Ei,转到步骤(2)。 (2)置Ei的访问标记为True,并将它的等值点移动到前一个等值点的末尾。若Ei即是E1,完成单条等值线的搜索,转到步骤(1)。否则,读取Ei上不同于前一棱边的邻接边序号。若存在,则在读取新的棱边Ei,重复步骤(2)。若不存在,根据E1的邻接边2序号取出棱边Ej,转到步骤(3)。 (3)置Ej的访问标记为True,将等值线头结点移动到Ej上等值点的末尾。读取Ej上不同于后一个点所在边的邻接边序号。若存在,则取出新的棱边Ej,重复步骤(3)。若不存在,完成单条等值线的搜索,转到步骤(1)。 当所有棱边都在步骤(1)中被读取过后,算法完成。 3 实验结果与分析 笔者将本文提出的改进算法运用到“裂缝性储层精细描述软件”当中,利用该算法获得层面模型的等值线,并经过平滑、着色处理后,得到如图4所示的效果图。 为进一步测试算法效率,利用图4中的层面,计算传统追踪算法和改进算法的运行时间。层面模型包含22827个坐标点,出于确保结果有效性的考虑,指定等值线高程值的个数分别为5,10,15,…,60,从而获得12组测试数据。随着高程值个数的增加,程序会多次调用追踪算法,相当于增多了模型坐标点与等值点的个数。 采用改进算法追踪等值线,速度平均提升30%以上。这是因为由于TIN网格拓扑复杂,追踪等值线时大量时间消耗在对网格的遍历上。传统算法在计算等值点时需要遍历一遍网格,在进行等值线追踪时,又要遍历两遍:第一遍以位于网格边界的等值点为起点,查找非闭合等值线;第二遍再查找闭合等值线。而本文提出的改进算法只需要在计算等值点时遍历一遍网格,由于遍历时为三角形单元的棱边设置索引,在追踪等值线时,直接按索引遍历从而避开了TIN网格的复杂性对程序的不良影响。并且,改进算法中不区分等值线的开闭性,可以用统一的过程追踪,又减少一次对棱边的遍历。故改进算法的时间性能大幅优于传统算法。 4 结论 本文基于TIN网格,提出了一种快速的等值线生成算法,该算法改进了等值点位于网格顶点时,对其进行偏移的方法,尽最大限度减小偏移量的不确定性,使结果更贴合原始数据。之后,针对现有主流追踪算法过程繁琐,实现复杂的弱点,为三角单元棱边设置索引,简化遍历过程,并将闭合和非闭合两种等值线的追踪方法统一,大大简化追踪流程。在等值线绘图中,采用TIN网格有两大优点:一是等值线连接方式唯一,不会出现矩形网格中的二义性问题;二是TIN网格使用的是原始数据点,避免了网格拟合带来的误差,尤其在原始数据密集的情况下,能高度还原地形地貌。本文的工作使得TIN网格下等值线的追踪更加方便快捷,从而可以较好的应用于地质建模领域。 参考文献 [1] 王鹏.等值线快速绘图方法研究及系统设计与实现[D].电子科技大学,2011. [2] 成建梅,陈崇希,孙红林.三角网格等值线自动生成方法及程序实现[J].水利学报,1998,10(10):23-26. [3] 黄维科,王弘琪.在AutoCAD中用“焊接法”绘制等高线[J].公路与汽运,2005,1:29. [4] 李瑞雪.球物理等值线构建及属性建立[D].中南大学,2012. [5] 韩丽娜.地质等值线图的生成与绘制[D].西安:西安科技大学,2006. |