[ 陀 咖理 基于VC++与MATLAB混合编程离散点的 等高线的绘制 张华清’,张立平 ,赵小超 (1徐工集团道路机械分公司,江苏徐州221000;2.江苏徐帅IZ程机械研究院,江苏徐州221000) 摘要:采用MATLAB在vc++的环境下进行等高线自动绘制程序的开发,以插值算法为基础,利用MATLAB对网 格加密重新划分,对等值点进行光滑处理,开发出基于vc++环境下自动生等高线的程序,为MATLAB与Vc++的混 合编程及等高线快速绘制提供了一定的参考。 关键词:vc++;MATLAB;等高线;混合编程 中图分类号: 文献标识码:A 文章编号:1002—5065(2017)02—0142—2 Drawing contour lines based on discrete points of VC++and MATLAB hybrid programming ZHANG Hua—qinq1,ZHANG Li—ping2,ZHAO Xiao—chao (1.XCMG road machinery branch,Xuzhou 221000,China;2.XCMG Research Institute,Xuzhou 221000,China) Abstract:Using the MATLAB Vc十+environment in the development of automatic drawing of contours in the program. the interpolation algorithm based on grid,using MATLAB encryption to re divide the contour point smoothing,developed automatic contour under the environment of VC++based programs.provide some reference for the programming and the mixture ofMATLAB and VC++contour fast rendering. Keywords:VC++:MATLAB;contour line;mixed programming 在工程水文、地质、测绘等领域。等高线是进行地理空 间要素分析的强大的工具,根据绘制的等高线可以方便的读 取各个点的数值,同时,它还是模拟三维地形的基础 ”。但 是,经过测量获取的数据往往是大量的离散的几何量值,而 且其内在的规律性难以利用手工的方法寻找。因此等高线的 绘制就是利用数学插值的算法将上述的大量的离散的具有 相同量值的点根据跟踪算法变换成图形的过程。 术,可以生成脱离VC++与MATLAB的执行程序。 针对上述几种方法的特点,本文采用按照MATCOM 的语法,在VC++中直接书写MATLAB语句,采用MFC 对话框读入离散点的数据,按照图1所示的流程自动的生成 等高线、地形图,实现了等高线的自动绘制。 1 MATLAB与VC++混合编程常见的集成方法 根据MATLAB与VC++联合的方式主要有以下三种 方法 : (1)用MATLAB的mcc将m文件翻译为VC++的cpp 源文件,然后在C编译器中调用也可以用mcc将m文件编 译为stand-alone程序,这种方法不支持图形文件的显示 及编译,对类的支持也不够,因此在绘图的过程中有很大的 。 (2)用MATCOM(MIDEVA)将_m文件翻译为cpp 代码,并编译为exe或dll文件,利用C/C++程序调用 MATLAB程序编译后的动态链接库及C/C++程序调用 MATLAB程序编译后的COM组件。此方法支持大多数的 图1等高线绘制流程图 2基于MATLAB与VC++混合编程等高线的生成过程 2_1插值算法原理 由于测量的不便及其他的客观的原因,得到的DEM高 绘图命令,包括绘图的相关命令,但是对结构、类等的支持 程的数据经常是缺失的,不能构成网格面,即使可以构成网 有一定的缺陷。 (3)按照MATCOM的语法,在Vc++中直接书写 MATLAB语句,通过Mm定义变量,由Vc++程序读 入数据,利用MATLAB运算,MATCOM为vC++和 MATLAB建立一个公共的平台,可以充分的发挥vc++及 MATLAB的优势,而且由于采用Vc++中MFC的封装技 格面,也由于某些难以测量的点的高程值缺失,因此有必要 研究插值的算法 ’ 。 采用MFC编制的对话框读入DEM高程数据后,根据 等高距和高程差计算出每根等高线的高程,利用已知的网格 点高程和等高线的高程,采用线性内插的方法获取各个网格 点的坐标。 根据MFC对话框中读入的数据,将DEM每2个网格 点的网格线段按i行J列数组编号,以Z 表示对应等高线的 高程值,网格(i,j)水平边上的等高线点的坐标为: (下转144页) 收稿日期:201 7-01 作者简介:张华清,生于1977年,男,汉,湖北武汉人,硕士,工程师,研 究方向:工艺技术研究。 142世界有色金属2017年1月下 [ 陀he. v巳 差、强度低以及易产生破坏等不足的情况发生。通常会导致 矿柱不易回收,使矿柱不能得到正常回收,造成了大量的资 源浪费,使矿山井下开采采矿的作业时间增长,采矿的效率 降低,严重影响了采矿的经济效益。同时由于采矿的步骤较 多,也影响了采矿管理工作的顺利开展。 二道沟金矿从开采初期使用浅眼留矿法转变为使用崩 落采矿法和充填采矿法,以崩落采矿法为主,就有关特殊 情况辅以外取料的充填采矿法。现如今,由于矿体变溥等 原因,全部采用内取料的崩落采矿法。采场长度不等,可为 50m、75m到100m、125m,通常采用钢筋混凝土假底,脉 少一个中段有一个采场。主要进行四项采切工程,底盘转运 巷道、切割巷、出矿漏斗和切割天井。在进行回采作业时, 采用分次爆破的工艺,采下矿石则经溜井运出采场,崩落的 对于此问题,通过对国外先进采矿技术的学习和研究,采 外采准的开采方式。最多将一个中段分为4或5个采场,最 用井下连续开采无矿柱法使之得到有效地解决。通过将步骤 分为矿段,不留矿柱,用矿段表示回采单元,并采用在矿段中 部布置切割槽,将振动机布置于结构的底部出矿的方法。用震 动车对矿石进行搬运,进行连续的出矿和运矿作业。崩落采矿 时对采空区进行及时的回填,各个矿段平行进行采切、回采和 填充作业,使采矿工作能够连续不断的进行。通过在井下开 采采矿施工中采用井下连续无矿柱法,使矿柱难以回收的问 题得到有效地解决,缩短了采矿作业的时间,提高了采矿的效 废石则填充采空区,使用浅孔凿岩机凿岩,人工装药,使用 胶带运输机运出矿石。根据矿体厚度不同,采场日产出能力 不同,一般为20-25t/d,与采用浅眼留矿法进行开采时相 比回采效率得到了较高的提升。 率,减少了资源的浪费,提高了采矿的经济效益。采矿的步骤 加合理,连续不间断的开采,还能够使在深部矿体的开采时因 地压过大而导致的围岩不稳定问题得到有效地解决。 5结语 也有所减少,使管理工作更容易进行。同时回采时工序安排更 在进行金属矿山井下开采采矿时选用何种采矿方法需 要结合矿山地质情况、矿体情况、矿石分布等各方面因素进 行分析研究,设计出合适的、有效的、快速的采矿方法,使 金属矿山井下开采采矿能够安全快速的进行。固 4金属矿山井下连续开采技术的应用 二道沟金矿是中国黄金集团夹皮沟矿业有限公司的一 座主力生产矿山。矿区属于温带性季风气候。该矿具有 【l】 杨宁,尹贤 0,肖木恩,赖伟 AHP-Fuzzy在采矿方法优选中的研究 及应用【J】.矿业研究与开发.2016(10). 【2】 谭富生,王初步 组合赋权与TOPSIS在采矿方法优选中的应用[J].矿 业研究与开发.2016(10). [3] 姜水,周李腾.河西金矿的采矿方法的优化选择及力学分析[J].世界确 矿体较多、矿体品质较高、围岩坚硬和深部待探明矿量较大 等特点。矿区有大面积的TTG质片麻岩,矿床处于哑铃状 钾质花岗岩上盘外接触带中,为急倾斜矿床,矿体为脉状及 似板状矿体。采用井下连续开采方法,使用胶带运输机进行 色金属.2016(20). 【4】 张睿,刘涛.缓倾斜厚矿体采矿方法优选及实践[J].有色金属(矿山部 分).2016(06). 连续的出矿和运矿作业,按由上往下的顺序进行采矿作业。 (上接142页) Xp ̄Xi-}"‘ 迭代法、分段三次多项式法,等 】。 本文采用MATLAB中自带的插值函数interp2对 (1) Yp Y/ 由离散点加密网格点进行插值计算并计算格网点的高程 iinterp2进行二维插值。 本文采用三次样条的插值的计算方法对形成的等高线 的数据进行重新插值计算,选择合适的插值计算值,利用 drawnow()函数重新绘制等高线。 经过重新插值计算的等高线比较光滑,很好的改变了曲 线的松紧度,消除了多余的拐点。 其中: =Xo+f ;Yf=Y。+lay,(Xo,Yo)为 DEM的开始点的坐标, ,△ 为DEM在X方向和y方向上 的网格间隔。 网格(i,j)竖直边上的等高线点的坐标【Xq,Yq)为: yj+ (2) 3结论 本文详细介绍了利用MATLAB和VC++制作一幅等 高线地形图的方法步骤,以及需要注意的一些细节问题。通 过对VC++和Mat lab的集成开发,以精练的代码和较高 的运行效率实现了对离散点的等高线的图形的绘制。通过本 2.2等高线绘制的实现 本文选用的实例是一组模拟的高程数据,在X为2800,Y 为2400的矩形区域内随机采样高程点,初步将矩形区域进行 网格化处理,形成400X400的网格间隔,以方便与后续的处理。 利用Mm定义三个类装载上述的数据;Mm XO,yo,ZO; 其中XO为1×n型矩阵,yo为1×n型矩阵,zo为n×n 型矩阵。 调用函数contour()绘等高线并标注高程,格式为: m_hp1ot=contour((CL(x),Y,Z,20));其中:X,Y,Z 文所述Mat lab与Vc++集成开发方法,读者可以自行对 其他类似程序进行开发。四 【1】 胡建平,虞祖培.基于AutoCAD的等商线自动绘制程序设计北:就:测 绘通报2008 5 65-67. 为网格点坐标高程数组,m—hplot为等高线旬柄,CL为 matcom中专用的函数,用来支持个数不确定的输入参数。 2.3等高线的光滑处理 【2】 刘维.精通MATLAB与c/c++混台编程设计:i匕京::比京航空航天大 学出版社2008. [3】 李藕,胡建平.克里金播值算法在等商线绘制中的应用天津城市建设学 院学报2008 3 vol14(1):68—7】. 等高线多数为多值函数,具有大挠度多弯曲的特点,目 前在计算机的绘图中可供选择的曲线的光滑形式为:线性 144世界有色金属2017年1月下 【4] 颜慧敏.空间插值技术的开发与实现[D】成都:西南石油学院2005. 【51 吕建升,须鼎兴.基于离散点绘制等高线的算法研究.现代测绘2006 9 Vo130(5):17—19,