基于AutoCAD规则重定义的大型TIN呈现方法

2015-07-27 08:27廖彩艳曾昭亮崔水军江西理工大学建筑与测绘工程学院江西赣州341000
山东工业技术 2015年15期

廖彩艳,曾昭亮,崔水军(江西理工大学建筑与测绘工程学院,江西 赣州 341000)

基于AutoCAD规则重定义的大型TIN呈现方法

廖彩艳,曾昭亮,崔水军
(江西理工大学建筑与测绘工程学院,江西赣州341000)

摘要:针对海量数据不规则三角网(TIN)在AutoCAD中呈现速度慢的问题,本文提出一种快速显示的方法。该方法利用AutoCAD中提供的二次开发功能,通过对三角网进行显示规则的重定义,改变三角网在图形数据库中的类型达到快速显示的目的。实验结果表明,采用这种方法显示三角网时所用时间在0.2秒之内,极大的缩短了三角网显示的时间,提高了构网效率。

关键词:AutoCAD;.NET程序开发;规则重定义;TIN呈现;海量数据

0  引言

AutoCAD是一款Autodesk公司开发的绘图辅助软件,在许多行业中都有着广泛的应用,并且它具有强大的二次开发功能[1],各个行业在它的基础上开发适合自己行业的专业软件。在测绘行业中,针对地形图的绘制国内有许多基于AutoCAD开发的专业绘图软件[2]。数字地形测量中TIN是由野外采集的离散点生成,它在地形图分析中有着广泛应用[3],然而对于海量数据TIN的显示大多数还难以满足工程建设的需要。

本文利用规则重定义这一种新的图形显示技术,将不规则三角网的生成算法与之结合,实现在AutoCAD中快速生成和浏览TIN。

1 主要技术

1.1TIN算法

对于TIN构建算法国内外学者已经做过许多的研究[4],按其基本的原理大体可以分为三类,即插入法、生长法和分治法。现在更多的研究是将不同的算法结合起来,汲取各自的优点。如郑美霞等[5]提出的基于四叉树索引的合成算法,姜志伟等[6]提出的基于格网和方向索引的Delaunay三角网算法等。

本文结合以上两种方法的优点,在数据划分时采用从底层到顶层的方式。这种从下往上的数据组织方式,全部数据只需要进行一次划分,以后只是对数据块再进行划分,即减少了数据分割的复杂度又有利于数据的查询。

1.2规则重定义

规则重定义是用.NET对AutoCAD二次开发中的一项功能,它允许改变AutoCAD中标准实体的形状、属性、颜色等信息,使视图中显示的图形与数据库中保存的图形不同。

显示重定义是规则重定义的一类,显示重定义即改变实体的外观,如文中将一个带特殊标记的圆显示成三角网。利用显示重定义技术来呈现TIN,避免了将三角网中大量的点、线和文字等实体写入数据库在屏幕上显示。这样就大大减少了在AutoCAD中创建和显示TIN的时间。

2 实现方法

2.1规则重定义显示三角网

使用显示重定义必须对WorldDraw函数进行重载,在程序中创建一个新类Myrawable,并让它派生于类D rawableOverrule。在其中对DrawableOverrule类中的WorldDraw函数进行重载:

public override bool WorldDraw(Drawabledrawable,WorldDrawwd)

{……}

其中第一个参数drawable属于GraphicsInterface命名空间的Drawable类,表示要重定义的实体对象(本文中为圆);第二个参数wd属于GraphicsInterface命名空间的WorldDraw类,可以视其为一个用来绘制实体的画布。

在重载函数中添加三角网绘制的代码,当需要在视图中添加标记的圆形实体时,程序就会调用重载的WorldDraw函数对视图内的三角网绘制输出。

2.2捕捉视图内可见三角网数据

为了能快速获取视图内可见部分的三角网数据,采用分层格网的形式对数据进行管理,先根据数据密度将数据分块,再根据块数将数据块分区,重复进行直到最终的区数满足要求为止。

2.3三角网更新

当视图进行平移或者缩放时,所显示部分的三角网就会发生变化,所以需要对显示的三角网进行更新。在程序中添加AutoCAD的文档事件ViewChanged可以来监控视图的变化,当对三角网进行平移或缩放时就会触发该事件。同时因为在图形数据库中,三角网是以一个圆的形式存在,所以只有圆的可见属性发生变化,才能引发WorldDraw函数对其重新绘制。所以需要在ViewChanged事件的处理程序中对圆的一个可见属性进行修改。这样当视图发生变化时,就会调用重载的WorldDraw函数对显示的三角网进行更新。

3 实验分析

利用随机生成的离散数据对本程序进行测试,将不同数据量时生成显示三角网所用时间和CASS中所用时间进行对比。结果如表1所示。

表1 三角网生成和显示所用时间对比

从表1中可以看出当数据量增加时,CASS中构网和显示所花费时间成指数级增长,采用规则重定义所花费的时间成对数级增长,增长率明显低于前者。采用规则重定义显示三角网时,屏幕上呈现三角网的时间与数据总量没有关系,只和当前屏幕中所包含的点数有关。屏幕中平均点间距和呈现所用时间如表2所示。

表2 屏幕上不同点密度显示所用时间

当屏幕上点间距越小,屏幕上点数越多时,三角网呈现所用时间越长。而屏幕中所显示点数的多少,不仅与图形的缩放比例有关,而且与实际的点密度,显示器的尺寸等相关。当屏幕上平均点间距达到1毫米时,实际呈现的三角网人眼已经很难分辨细节。

4 结束语

AutoCAD软件在工程实践中有着广泛的应用,在其中建立Delaunay三角网是建立DEM和进行地形分析的基础。所以实现在AutoCAD中快速的构建和显示三角网有着重要的意义。本文通过对AutoCAD规则重定义的运用和Delaunay三角网算法的改进,解决了要将三角网中实体信息写入文档数据库后才能显示的问题,实现了在AutoCAD中快速创建和浏览TIN,极大的节省了在AutoCAD中创建显示不规则三角网的时间,为海量数据的不规则三角网在AutoCAD中的后续应用提供了一种高效的方法。

参考文献:

[1]姚鑫,宋伟东.AutoCAD环境下数字高程模型的建立和等高线的自动绘制[J].测绘通报,2003(04):29-31.

[2]刘先森,甘济五,王铁山.CASS数字测图软件中DTM的建立[J].测绘与空间地理信息,2010,33(4):218-224.

[3]陈楚江,王德峰.海量数据CDT快速建立及其实时更新[J].测绘学报,2002,31(3)262-265.

[4]陈弘奕,胡晓斌.海量点云数据等高线生成算法研究[J].测绘通报,2013(10):83-86.

[5]郑美霞,王彦斌,马翔旭.基于四叉树索引构建TIN的高效合成算法[J].地理与地理信息科学,2012,28(2):20-23.

[6]姜志伟,王东山,王伶俐.基于格网和方向法索引的Delaunay三角网生成算法[J].测绘工程,2014,23(2):57-60.

作者简介:廖彩艳(1989-),男,江西龙南人,在读硕士,研究方向:遥感图像处理。