文章信息
- 杜灵瑀, 贲进, 马秋禾, 王蕊, 李祝鑫
- DU Lingyu, BEN Jin, MA Qiuhe, WANG Rui, LI Zhuxin
- 基于弱对偶的平面三角形格网离散线转化生成算法
- An Algorithm for Generating Discrete Line Transformation of Planar Triangular Grid Based on Weak Duality
- 武汉大学学报·信息科学版, 2020, 45(1): 105-110
- Geomatics and Information Science of Wuhan University, 2020, 45(1): 105-110
- http://dx.doi.org/10.13203/j.whugis20180205
-
文章历史
收稿日期: 2019-04-25
2. 61287部队, 四川 成都, 610000
2. Troops 61287, Chengdu 610000, China
矢量和栅格是两种最基本的空间数据模型,在应用中各具优势。依据一定准则,将矢量数据离散化到对应尺度格网上的过程称为离散化或格网化,这是矢量数据与栅格数据同构处理的重要环节。矢量数据模型将现实世界的实体抽象为点、线、面几何要素的组合[1],因此几何要素的离散化是矢量离散化的基础。其中,线和面要素的离散化首先需要确定线的格网路径或面的格网边界,核心问题都是线的离散化,即离散线生成[2-3]。
在计算机图形学及地理信息系统领域,已研发多种离散线生成算法,具有代表性的有数字微分法[4]、中点画线法[5]和Bresenham算法[6]。Wu等[7]基于Bresenham算法提出了双步直线生成算法;在此基础上,贾银亮等[8]提出了六步直线生成算法;黄斌茂等[9]提出了基于自适应步长的直线生成算法。这些算法多是针对矩形格网提出,而在很多应用中,除了矩形,还有三角形、六边形格网,适用于后两类格网的离散线生成算法并不多见。尽管Vince[10]建立了多维格网的离散线数学模型并给出相应算法,但其仅适用于可由单一泰森多边形(Voronoi)单元(如正方形、六边形、立方体等)平移得到的格网系统。对于在地形建模、空间分析、模拟仿真中广泛应用的三角形格网,该算法并不适用。单元非一致相邻且方向不一致的特点导致三角形格网上的离散线问题比较复杂[11],相关研究较少。Freeman[12]提出了基于顶点的三角形格网离散线生成算法,该算法根据单元顶点到矢量线的距离筛选单元,导致部分离散线单元偏离矢量线。Nagy[13]提出了基于相邻序列的三角形格网离散线生成算法,该算法仅以格网单元的相邻关系及路径最短为约束条件,无法确保路径唯一。Sarkar等[14]提出了沿三角形单元边界的最短路径搜寻算法,但该算法忽略了单元中心与矢量线的关系。
本文根据三角形格网的结构特点,利用格网间的弱对偶关系,借助六边形格网离散线等效建立了三角形格网离散线数学模型,并降维求解,尝试从理论层面简化问题;并设计实现了平面三角形格网离散线转化生成算法。对比实验证明了本文算法的效果更优。
1 对偶及弱对偶定义在数学中,对偶定义为存在于概念、理论及数学结构之间的一对一的转化关系[15]。格网的对偶是指不同格网之间特有的位置关系,连接相邻格网单元的中心并将其作为顶点,可得到相应的对偶格网[16]。三角形格网与六边形格网存在对偶关系,设三角形格网单元的边长为lt,则相应对偶六边形格网单元的边长
作为格网单元计算、定位的参考点[17],通常以单元中心代替格网单元。因此,为了简化格网转换算法,应尽量使三角形格网与六边形格网单元中心重合。显然,图 1所示的对偶关系无法满足该需求。将六边形单元边长调整为
基于三角形格网与六边形格网之间的弱对偶关系,可实现六边形格网与三角形格网之间离散线模型的转化,简化三角形格网离散线模型的求解过程。
2.1 六边形格网离散线模型在六边形格网中,由某一单元中心指向其相邻单元中心的一组向量称为方向向量。非共线的两个方向向量线性无关,则由起点单元到终点单元的离散线可由任意两个非共线方向向量的有序排列表示。在实际应用中,选择与矢量线ab夹角最小的两个方向向量生成离散线,称为最优方向向量,记作
令
如图 4所示的六边形格网中隐含对应的弱对偶三角形格网,即六边形格网离散线与相应的三角形格网离散线之间存在转化关系。如图 5所示,依据弱对偶关系,六边形格网离散线单元可分为两类,第一类中心与三角形单元中心重合,如蓝色点所示;第二类中心位于三角形单元顶点,如绿色点所示。令
如图 6(a)所示,六边形格网离散线单元u'A的中心位于三角形顶点,其相邻六边形格网离散线单元的中心(如图中蓝色点所示)对应两个三角形单元,当这两个三角形单元方向相同时,令u'B为u'A前一单元,向量
如图 6(b)所示,
利用以上对应关系,以六边形格网离散线模型为基础,通过简单判断,可得到矢量线ab对应的三角形格网离散线模型,实现两类离散线模型的转化。
3 离散线模型的降维求解 3.1 六边形格网离散线模型一维等价形式如§2.1所述,格网中的理想离散线需满足限制条件。确定最优方向向量后,可保证离散线单元数目最小。为了得到垂直距离
根据§3.1的分析,求解闭合路径的关键是使L(P)最小,采取“贪心”算法,每一步所选择的向量都保证当前路径最接近原点可达到目的。在六边形格网中给定矢量线ab,利用夹角最小原则确定最优方向向量集合V',进一步将V'投影到直线H可得集合V。集合V'与V的元素对应,利用“贪心”算法求出每一步中集合V中的元素,由V'对应的最优方向向量可得弱对偶六边形格网中的理想离散线,再根据§2.2中离散线模型的转化关系,可得出相应三角形格网中的离散线。该算法实现了一维闭合路径→二维弱对偶六边形格网离散线→二维三角形格网离散线的求解过程,逐步简化三角形格网离散线生成问题,并大幅提升运算效率。算法具体流程如图 8所示。
4 对比实验及分析为了验证本文算法的效果,将其分别与Freeman算法[12]和全路径算法[2]进行对比实验。3种算法均采用C#语言实现,除核心步骤外,其余操作完全相同,最大限度地保证结果客观、公平。全部代码均编译为Release版本,并在一台SAMSUNG 450R5U笔记本(硬件配置:Intel Core i5-3 230 MB CPU @ 2.60 GHz,8 GB RAM;操作系统:Windows 7 x64旗舰版;开发工具:Visual Studio 2012)上运行。实验数据来源于原国家测绘地理信息局1:25万基础地理信息数据库,包含全国34个省(直辖市、自治区)级行政区界。将每个省界视为封闭的任意多边形,对多边形的每一条边分别采用本文算法、Freeman算法和全路径算法进行处理,生成相应的离散线,其部分结果如图 9、图 10所示。图 9为细节效果对比,其中三角形单元边长约为3 m。图 10为整体效果对比,其中三角形单元边长约为3 km。
由图 9中的细节效果对比可以看出,本文算法与Freeman算法均可在三角形格网内生成离散线,但细节上存在明显差异。在倾斜、水平直线及转角处,Freeman算法生成的部分离散线单元并非直线经过的单元,离散线单元与直线的偏离较大,无法精确拟合直线。相比之下,本文算法在各种情况下均能选出直线经过的三角形单元,拟合效果理想。这种离散线与直线的精确拟合有利于离散化后的采样与分析。由图 10整体效果对比可看出,相比于Freeman算法,本文算法生成的离散线具有更加良好的连续性和平滑性。同时,当格网单元边长较大时,Freeman算法会出现直线仅沿格网单元边缘行进的情况,无法确保直线与离散线的精确拟合。
两种算法原理上的差别造成了以上效果差异。本文算法以格网单元中心到直线的垂直距离为依据筛选离散线单元,可确保离散线单元中心贴近直线。而Freeman算法依据单元顶点到直线的垂直距离选取离散线单元的方式则忽略了单元中心与直线的关系,容易造成格网单元偏离直线。
全路径算法涉及的大量坐标按距离排序的过程十分耗时,而本文算法仅在确定最优方向向量时涉及少量三角函数运算,后续过程经降维处理仅涉及加减运算,计算量远小于全路径算法,因而效率更高。对比实验表明,全路径算法与本文算法效果相同,但计算效率(时间比)差异较大。如表 1、图 11所示(单元边长约为3 m),本文算法的计算效率平均约为全路径算法的9.32倍。
省份 | 坐标数 | 本文算法/ms | 全路径算法/ms | 时间比 |
内蒙古 | 52 486 | 2 478.29 | 24 839.79 | 10.02 |
黑龙江 | 27 521 | 1 395.12 | 16 005.20 | 11.47 |
新疆 | 37 855 | 1 566.21 | 14 665.93 | 9.36 |
西藏 | 39 184 | 1 326.57 | 12 071.34 | 9.10 |
青海 | 28 289 | 1 071.50 | 9 959.28 | 9.29 |
河北 | 27 537 | 873.31 | 7 555.13 | 8.65 |
吉林 | 21 588 | 781.35 | 6 980.53 | 8.93 |
河南 | 21 567 | 597.53 | 4 970.80 | 8.32 |
江西 | 13 621 | 489.59 | 4 321.27 | 8.83 |
宁夏 | 9 704 | 347.34 | 3 053.41 | 8.79 |
海南 | 6 065 | 229.78 | 2 067.60 | 8.99 |
台湾 | 10 406 | 231.98 | 2 049.89 | 8.83 |
北京 | 3 661 | 158.38 | 1 483.09 | 9.36 |
上海 | 966 | 89.28 | 945.21 | 10.59 |
本文根据三角形格网与六边形格网之间的弱对偶关系,以及二维六边形格网离散线与一维闭合路径之间的等价关系,在三角形格网离散线、弱对偶六边形格网离散线、一维闭合路径之间建立转化关系,逐步降低问题的复杂度。
相比于现有算法,本文算法效果理想,且在效率上优势明显。算法涉及的弱对偶和降维思想为解决格网离散化问题提供了新的思路,对进一步解决格网问题具有重要的辅助作用。同时,该思想能够扩展到多维的情况,对于高维度问题的研究也具有重要意义。
[1] |
Wang Jiaojiao, Zhao Xuesheng, Cao Wenmin, et al. An Algorithm for Adaptive Overlap of Vector Polyline and DEM Based on Spherical DQG[J]. Geomatics and Information Science of Wuhan University, 2014, 39(9): 1 057-1 060. (王姣姣, 赵学胜, 曹文民, 等. 利用球面DQG格网的地形与矢量线自适应叠加算法[J]. 武汉大学学报信息科学版, 2014, 39(9): 1 057-1 060. ) |
[2] |
Zhang Hong, Wen Yongning, Liu Aili, et al. The Basis of Geographic Information System Algorithm[M]. Beijing: Science Press, 2006. (张宏, 温永宁, 刘爱利, 等. 地理信息系统算法基础[M]. 北京: 科学出版社, 2006. )
|
[3] |
Liu Renwu, Li Yan. Study of Auto-vectorization Based on Scan-Thinning Algorithm[J]. Acta Geodaetica et Cartographica Sinica, 2012, 41(2): 309-314. (刘人午, 李燕. 扫描细化算法的地图自动矢量化研究[J]. 测绘学报, 2012, 41(2): 309-314. ) |
[4] |
Mccrea P G, Baker P W. On Digital Differential Analyzer (DDA) Circle Generation for Computer Graphics[M]. Washington D C: IEEE Computer Society, 1975.
|
[5] |
Reid-Green K S. Three Early Algorithms[J]. IEEE Annals of the History of Computing, 2002, 24(4): 10-13. DOI:10.1109/MAHC.2002.1114866 |
[6] |
Bresenham J E. Algorithm for Computer Control of a Aigital Plotter[J]. IBM Systems Journal, 1965, 4(1): 25-30. DOI:10.1147/sj.41.0025 |
[7] |
Wu X, Rokne J G. Double-Step Incremental Generation of Lines and Circles[J]. Computer Vision Graphics and Image Processing, 1987, 37(3): 331-344. DOI:10.1016/0734-189X(87)90041-7 |
[8] |
Jia Yinliang, Zhang Huanchun, Jing Yazhi, et al. A Six-Step Algorithm for Line Drawing[J]. Journal of Shandong University(Engineering Science), 2007, 37(1): 61-64. (贾银亮, 张焕春, 经亚枝, 等. 6步直线生成算法[J]. 山东大学学报(工学版), 2007, 37(1): 61-64. DOI:10.3969/j.issn.1672-3961.2007.01.015 ) |
[9] |
Huang Binmao, Zhang Li. Self-adaptive Step Straight-Line Algorithms[J]. Journal of Tsinghua University(Science and Technology), 2006, 46(10): 1 719-1 722. (黄斌茂, 张利. 基于自适应步长的直线生成算法[J]. 清华大学学报(自然科学版), 2006, 46(10): 1 719-1 722. ) |
[10] |
Vince A. Discrete Lines and Wandering Paths[J]. SIAM Journal on Discrete Mathematics, 2007, 21(3): 647-661. DOI:10.1137/050642009 |
[11] |
Bai Jianjun, Zhao Xuesheng, Chen Jun. Indexing of Discrete Global Grids Using Linear Quadtree[J]. Geomatics and Information Science of Wuhan University, 2005, 30(9): 805-808. (白建军, 赵学胜, 陈军. 基于线性四叉树的全球离散格网索引[J]. 武汉大学学报·信息科学版, 2005, 30(9): 805-808. ) |
[12] |
Freeman H. Algorithm for Generating a Digital Straight Line on a Triangular Grid[J]. IEEE Computer Society, 1979, 28(2): 150-152. |
[13] |
Nagy B. Shortest Paths in Triangular Grids with Neighborhood Sequences[J]. Journal of Computing and Information Technology, 2004, 11(2): 55-60. |
[14] |
Sarkar A, Biswas A, Mondal S, et al. Finding Shortest Triangular Path in a Digital Object[C]. International Conference on Discrete Geometry for Computer Imagery, Vladivostok, Russky Island, Russia, 2016
|
[15] |
Maurin K. Duality (Polarity) in Mathematics, Physics and Philosophy[J]. Reports on Mathematical Physics, 1988, 25(3): 357-388. |
[16] |
Mahdavi-Amiri A, Harrison E. Samavati F. Hierarchical Grid Conversion[M]. Oxford: Butterworth-Heinemann, 2016.
|
[17] |
Zhou Chenghu, Ou Yang, Ma Ting. Progresses of Geographical Grid Systems Researches[J]. Progress in Geography, 2009, 28(5): 657-662. (周成虎, 欧阳, 马廷. 地理格网模型研究进展[J]. 地理科学进展, 2009, 28(5): 657-662. ) |