基于Auto CAD等高线绘制的算法及程序设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于Auto CAD等高线绘制的算法及程序设计

【摘要】采用AutoLISP(Visual LISP)语言在AutoCAD环境下进行二次开发,设计平面等高线绘制程序,为地形图制图时等高线绘制提供方便易用的工具,从而提高绘图效率,并使AutoCAD真正地起到辅助设计作用。并为基于AutoCAD环境下进行二次开发的应用与研究提供参考。

【关键词】AutoLISP ; 离散高程点;Delaunay三角网;等高线

The calculate way and program design drawn according to the contour line in maps of Auto CAD

【Abstract】Adoption the AutoLISP(Visual LISP) language carry on under the AutoCAD environment two development, design the flat surface contour line in maps draw procedure, for geography diagram graphics the contour line in maps draw to provide convenience easy use of tool, thus exaltation painting efficiency, and make the AutoCAD really have assistance design bine for according to AutoCAD environment bottom carry on two development of application provide reference with research.

【Key words】AutoLISP; Long-lost high point;The Delaunay triangle net;Contour line in maps

1. 引言

Auto CAD是由美国Autodesk公司开发的通用计算机辅助设计软件。由于其使用方便、灵活,尤其是其良好的开放性,使AutoCAD已成为全世界微机CAD系统的主流产品。目前广泛应用于测绘、机械、建筑等行业。由于其是通用软件,所以对于一些专业性功能受到限制,因此在实际的应用中通常要根据专业的需要进行二次开发。AutoLISP语言就是Auto CAD内部的一种二次开发工具。Visual LISP作为AutoLISP的更新换代产品被正式集成其中。Visual LISP给用户提供了一个集成的开发环境,使用户可在易于使用的完全可视化的开发环境下编写、调试代码;经过编译的LISP程序不但提高了运行性能,并可防止他人试图获得用户程序代码;通过Windows的ActiveX与AutoCAD的对象模型接口可与其它软件集成。

2. Auto LISP语言的特点与结构

AutoLISP 基于简单易学而又功能强大的LISP 编程语言。它语法简单,编写程序便捷、灵活、数据类型丰富。AutoLISP应用程序或例程可以通过多种方式与AutoCAD交互。也可以在应用程序中使用对话框语言DCL(Dialog Control Language)、控制菜单,还能够提示用户输入、直接访问内置AutoCAD命令,以及

修改或创建图形数据库中的对象,向AutoCAD 添加专用命令等。实际上,某些标准AutoCAD命令就是AutoLISP应用程序。

AutoLISP通过VLISP (Visual LISP)进一步得到增强,VLISP提供了一个集成开发环境(IDE),其中包含编译器、调试器和其他提高生产效率的开发工具。通过IDE用户可以进行试验:在命令提示下输入代码后可立即看到结果。这使AutoLISP语言容易试验,而不管用户的编程经验如何。VLISP 添加了更多的功能,并对语言进行了扩展以与使用ActiveX 的对象进行交互,也允许AutoLISP通过对象反应器对事件进行响应。因此在IDE下用户可以便捷、高效地开发AutoLISP 程序,经过编译得到运行效率高、代码紧凑、源代码受到保护的应用程序,且程序的兼容性很强。

AutoLISP的数据类型丰富,除了具有一般程序设计语言的整型、实型、字符串等数据类型之外,还有表、函数、文件描述符、AutoCAD选择集、AutoCAD图元、VLA(Visual LISP ActiveX)对象、函数分页表和外部函数等数据类型。AutoLISP处理的对象是符号表达式(简称表达式),相当于其他编程语言中的语句。表达式由原子或表构成。这里值得注意的是AutoLISP表达式采用前缀表示法,即将函数放在所有操作数之前(在AutoLISP语言里运算符也属于函数)。利用AUTOLISP(VLISP)表处理语言进行二次开发可以将许多繁琐、易出错的工作简单化、程序化.。这样不但可减少航测制图的出错机率,而且大大提高了其作业效率。

3. 等高线绘制的算法及程序设计

等高线是地面上高程相等点的连线,可以反映地面高程、山体、谷地、坡形、坡度和山脉走向等地貌基本形态。由等高线可以量算地面点的高程、地表面积、地面坡度、和山体的体积。描绘等高线时必须满足下列要求:

(1)等高线通常是连续的曲线,可能是闭合曲线也可能由于区域的限定,从区域的边界开始到区域的边界结束。

(2)给定某一高度时,等高线有时不止一条。

(3)等高线一定不能相交。

等高线绘制的基本流程如图1:

图1

2.1 自动展离散的高程点。首先建立高程点文件,然后程序自动读取文件进行展点。

数据文件格式为:

点号坐标X 坐标Y 高程H

1, 0.000, 8.264, 100.398

2, 4.943, -4.942,98.751

3, 3.163,-6.863,98.288

4, 6.660,-3.872,98.844

5, 7.509,-7.509,97.363

6, 9.757,-5.901,97.528

7, 5.353,-9.353,97.235

8, 10.007, -10.006,96.279

9,8.380,-11.500,96.285

……

展点程序流程如图2,展点后图形如图3。

图2

图3

2.2 由离散的高程点构建三角网。首先根据离散点生成delaunay三角形。Delaunay三角网的定义:有公共边的V-多边形称为相邻的V-多边形。连接所有相邻的V-多边形的生长中心所形成的三角网称为Delaunay三角网(简称D-三角网)。

D-三角网的外边界是一个凸多边形,它由节点集中的凸集形成,通常称为凸壳。D-三角网具有两个非常重要的性质。

(1)空外接圆性质:在由点集V所形成的D-三角网中,其每个三角形的外接圆均不包含点集V中的其他任意点。

(2)最大的最小角度性质:在由点集V所能形成的三角网中,D-三角网中三角形的最小角度是最大的。

相关文档
最新文档