资源描述:
2 0 0 4 年2月 矿 业安 全 与环保 第3 1 卷第1 期 用M F C 开发开采沉陷预计软件 采用的数据结构 唐 建新 , 杨 守国 1 . 重庆大学 资源及环境科学学院, 重庆 4 0 0 0 4 4 ; 2 . 重庆大学 西南资源开发及环境灾害控制工程教育部重点实验室, 重庆 4 o o o 4 4 摘要 讨论 了采用MF C ;发开采沉陷预计软件 中, 利用面向对象技术, 围绕界面可视化进行的数 据结构类设计, 数据组织, 以及视图类与文档类成员函数重载, 并基于此方法给出了开发实例。 关键词 面 向对象; 开采沉陷; 沉陷预计; 数据结构 中图分类号 T P 3 9 ; T D 3 2 文献标识码 A 文章编号 1 0 0 8 - 4 4 9 5 2 0 0 4 0 I 1 - 0 0 1 8 - 0 2 1 预处理和后处理所用的数据结构 1 . 1 点结构类设计 开采沉陷预计软件预计的往往是一些特定的 点 , 即使预计 的是一定范围的特定 区域 , 该 区域也可 以用一系列的网络点表示 ,并通过插值求得这一范 围内任意点的预计值。预计的结果及点的位置信息 都要靠点结构类存储和管理 ,同时要做到数据既完 整又无冗余, 并且方便计算、 输出和管理, 所以要专 门设计点的结构类。为了和M F C 中其它类兼容使用, 以及在后面的链表 中使用 ,这个类必须从MF C 的最 底层基类派生。 点结构类所包括的成员变量和成员函数如下 c l a s s CVe r t e x { p u b l i c d o u b l e x ; d o u b le y ; d o ubl e z ; , , 点的平面坐标 d o u b l e w ; 吓沉 d o u b l e I x ; d o u b l e I y ; d o u b l e I x y ;| | d o ubl e K x ; d o u b l e K y ; d o u b l e K x y ;/ / 曲率 d o ubl e U x ; d o u b l e U y ; d o u b l e U x y ;, / 水平移动 d o ubl e E x ; d o u b l e E y ; d o u b l e E x y ;/ / 水平变形 d o ubl e S x y ; , / 扭曲变形 收稿 日期 2 0 0 3 - 0 5 2 0 作者简介 唐建新 1 9 5 9 一 , 男, 四川威远人, 副教授 , 博 士。 主要从事采矿工程、 矿井灾害防治的教学与研究工作。 .1 8 d o u b l e Ga ma x y ; d o u b l e a n g l e ; p u b l i c 切变形 , 顾 计方 向 d o u b l e G e t D i s t a n c e C V e r t e x v ;/针 算 到点V的 距离 b o o l G e t D i r e c t i o n C V e r t e x v l , C V e r t e x v 2 ; / 针 算到点V1 的方向向量V 2 C V e r t e x ;, / 构造 函数 v i r t u a l C V e rt e x ; / / 析构函数 } 。 1 . 2 边结构类设计 边结构类 主要是存 储三 角剖分过程 中产生 的 边,并进行边与边交点的计算和边上任意点的插值 运算, 还提供边的其它属性计算, 以便于用T r iang u - l a t e 方法对离散点进行剖分和后处理部分中的等值 线绘制。边结构类的具体代码设计如下 c l a s sCEd g e s { pu b l i c C V e rt e x v l ; C V e rt e x v 2 ;, , i 的两个端点 pu b l i c b o o l I s V e r t e x C V e r t e x v ; / / 判断节点v 是否为边 的端点 b o o l O n E d g e d o ubl e z ; // 判断边 E 是否有高程值z v o id G e tx y o ubl e z ,C V e rt e x v ; / / 求边上高程值 为z 的点坐标 i n t Wh i c h S i d e C V e r t e x v ; / / 判断点在边的左边 维普资讯 2 0 0 4 耳2月 矿 业安 全 与环 保 弟3 1 卷弟1 期 还是右边 C E d g e s ;/ / 构造函数 v i r t u a l - C E d g e s ; / / 析构函数 } 。 1 . 3 三角形结构类设计 在软件的图形显示部分采用 的是用三角形片来 仿真地形地貌及各种计算结果,并采用带线性插值 的三角形剖分法对离散点进行剖分和绘制等值线 。 所以这里特别设计 了三角形结构类 ,对上述的中间 数据进行管理并提供相应的辅助运算,具体代码如 下 c l a s s C T fi a n e s { p u bl i c C V e r t e x v l ; C V e r t e x v 2 ;C V e r t e x v 3 ; / / 三角形 的顶点 d o u b l e c x ; d o u b le c y ; d o u b l e r ; , / 三角形外接圆的 圆心坐标和半径 pu b l i c b o o l I s V e r t e x C V e r t e x v ;, / 判断节点v 是否是三 角形的顶点 b o o l I n C i r c l e C V e r t e x v ;, / 判断节点v 是否在三 角形 的外接圆内 b o o l I n T r i a n g l e C V e r t e x v ;/ / 判断节点v 是否在 三角形内 d o u b l e G e t V a l u e C V e r t e x v ;/ / 用插值法求取 三 角形内点v 的各成员变量值 v o i d C a l c u l a t e C x y R ; / / 求三角形 外接 圆圆心 坐标及半径 C T fi a n e s ;/ , 构造 函数 v i r t u T r i a n e s ;惭 构函数 } 。 2 移动变形预计 中所用 的数据结构 2 . 1 链表类C L i s t 类的使用 测线、巷道及工作面的边界都是以折线的形式 存在, 也就是说它们都是由一系列有序的点组成, 此 特点与链表类C L is t g 常相似。各种数据的提取是对 链表的遍历 , 只需供助于该类提供 的操作函数G e t H e a d P o s i t i o n , G e t T a i l P o s i t i o n , G e t N e x t , G e t P r e v和 一 个 P O s m O N 类型参数即可。 使用链表类的优点是 只要把节点填充进链表, 就 没必要为每一类数据设置一个数组,这样无论是在计 算中还是在数据成果的输出中,对数据的操作和处理 结果的保存只是同链表打交道,极大地简化了对数据 的组织;另外一点是链表的增加不受限制,能动态增 长, 新的节点对象创建成功, 就可以将其对象指针直接 添加或插入到链表,而数组要受到定义好的数组上限 的限制, 定义的上限过大时, 浪费内存, 定义过小时, 不 能满足需要 , 并且数组的插入比较麻烦。 2 . 2 工作面结构类设计 针对软件进行地表移动预计采用的方法是概率 积分法, 设计工作面类所需的成员变量和成员函数, 具体设计如下 c l a s s CFa c e s { p u b l i c C S t r i n g n a me ; , / 工作面名称 C L i s t v L i s t ;/ / 工作面角 点链表 c T im e F a c e b e g i n T i m e , F a c e E n d T i m e ; / / 工作面起 止时间 d o u b s l , s 2 , s 3 ,s 4 ; , / 拐点偏移距 m d o u b l e b e it a ; / 住 要影响角境d o u b l e m te p 1.e n g t h ; , / 日进尺 d o u b l e M ; , / 采厚 m d o u b l e a l f a ; , / 煤层倾角 d o u b l e d i r e c t io n ;// I作面推进方向d o u b l e f a i ; 层倾向 d o u b l e q ; , 门 F 沉系数d o u b l e b ; k 平移动系数 d o u b l e c i t a ;/ / 最大下沉角 p ub l i c v 0 i d D o D i r e c t i o n ;, / 求工作面推进方向及工作 面煤层倾向 b o o l L 0 c a t i0 n C V e r t e x * v l , C V e r t e x ,- v 2 ;/ 计 算工 作面的推进位置 C F a c e s ;/ , 构造 函数 v i r t u a l C F a c e s ; / / 析构函数 } 。 3 结果输出 3 . 1 视图类设计 在V c 中, 视图是用于显示文档并管理文档与 用户的交互。 在本软件中, 视图的主要功能是显示输 出所建立的数据模型和预计的结果,根据这些功能 的需要, 为视图类添加和重载的函数如下 b o o l b S e t u p P ix e F o r m a t ; / 伧0 建像素格式 v o i d I n i t ; / , 初始化绘图环境 v i r t u a l v 0 i d O n D r a w C D C *p D C ; 宦 载 C V i e w 类 的O n D r a w 成员函数 下转第3 7 页 .1 9 . 维普资讯 2 0 0 4 年2月 矿 业安 全 与环保 第3 1 卷第1 期 外, 一些企业对环保和土地复垦认识不足。 对矿山土地复垦的建议 1 土地复垦是事关我们子孙后代 的大事 , 国家 应加强土地复垦工作的专门立法,采取贴息和低税 收、 低息贷款等一系列优惠政策, 鼓励企业和社会进 行土地复垦。 2 积极开展矿 山土地 复垦理论研究 , 使矿 山土 地复垦与生态重建的 目标 和步骤适应新形式 的经济 发展, 在取得环境效益的同时取得经济效益。 3 加强环保复垦的宣传, 增强工矿企业、 民众的 环保复垦意识。 4建立矿山环境恢复治理履约保证金制度 , 对 矿山土地复垦 , 部分资金可由保证金支付。 5 建立复垦专项基金, 对一些老矿山遗留下来 的生态环境包袱 , 政府应投入必要 的资金 , 鼓励企业 开展土地复垦。 6 改革矿区土地征用制度 , 理顺矿 山企业与地 方政府之间的关系 , 本着 “ 谁治理 , 谁受益”的原则 , 保障企业复垦的经济利益。 7 加强对矿山复垦后的管理。 屏弃只复垦, 不注 意管理的做法。这一点昆阳磷矿的成功经验值得借 鉴 。 8 积极开展多种复垦方式 , 鼓励社会 和个人参 加复垦 ,如“ 农 民集资复垦”, “ 租地”, “ 赔偿加复 垦” 等方式 。 参考文献 [ 1 ]张志礼. 铁矿资源开发理论与实践【 M】 . 北京 冶金工业出 版 社。 1 9 9 7 [ 2 ]中国冶金百科全书总编辑委员会 采矿 卷编辑委员 会 中国冶金 百科全书 采矿分册 【 M 】 . 北京 冶金工业 出版社 , 1 9 9 9 [ 3]陈龙乾. 矿区土地复垦与使用制度改革探讨【 J 】 . 中国煤炭, 1 9 9 8 , 2 4 6 1 2 - 1 5 [ 4]王永生, 郑敏. 废弃矿坑综合利用【 J 】 . 中国矿业, 2 0 0 2 , 1 1 6 6 5 6 7 责任编辑 吴 自立 上接第1 9 页 表 v o i d D r a w S c e n e ; / / 绘制场景 v o i d T r i a n g u l a t e ; / / 对离散点进行三角剖分 v o i d s e d i g h t ; / / 设置灯光 v o i d D r a w C o o r d i n a t e ; / / 绘制坐标轴 v o i d D r a w L i n e s ; / / 绘制测线 v o i d D r a w Wo r k f a c e ; / / 绘制工作面 v o i d D r a w Ma p ; / / 根据设置 , 绘制彩 色云 图或 等值线图 v o i d U p d a t e L e v e l s ; / 便 新图例列表 b o o l G e t I s o l i n e Ve r t e x CVe r t e x v l , C Ve r t e x v 2 , C V e r t e x v , d o u b l e v a l u e ; / / 计算等值线节点 v o i d C al e u l a t e R GB d o u b l e z , d o u b l e C o l o r R . d o u b l e C o l o r G ,d o u b l e C o l o r B ; / / 计算值z 对应的R G B 色 彩。 3 . 2 文档类设计 文档类是用于管理、 保存应用程序的各种数据。 在本软件中,所管理的主要数据都以成员变量 的形 式添加到文档类 , 为了能将数据保存输出到文件中 , 还需重载文档类的S e r i a l i z e 函数 , 具体设计如下 p u b l i c / / 添加的成员变量 C L i s t v e r te x L i s t ;/ / 角点 链 表 C L i s t T r i ang l e L i s t ; // 三角形链表 C L i s t D o t s L i s t ;/ / 测点链 C L i s t C F a c e s * , C F a c e s Wo r k f a c e L i s t ;/ / 工 作面链表 C T i m e P r e d i c t T i m e ; / / 预计时间 b o o l C a l c u l a t e d ;/ / 是否完成计算 p u b l i c v i r t u a l v o i d S e ri ali z e C A r c h i v e 盯 ;/ / 重 载序 列 化函数。 4 结论 1 分析 了开采沉陷预计软件的数据组成 , 并设计 了相应的数据类 , 使得软件的构造与设计更加容易, 更加有数 , 大大提高了软件的开发效率和质量 。 2 软件中使用链表类, 解决了数据动态增长的问 题 , 从而使预计 的工作面 、 预计点数 目不受限制 , 增 强了软件的可靠性和实用性。 3 通过合理的数据组织, 将图形输出功能集成到 软件 中, 而不必使用其它软件就可完成等值线图 、 彩 色云图 、 曲线图的绘制 , 大大方便了用户 。 参考文献 [ 1 ]国家煤炭工业局. 建筑物、 水体、 铁路及主要井巷煤柱留 设与压煤开采规程[ M] . 北京 煤炭工业出版社, 2 0 0 0 [ 2]官章全, 刘加明. V i s u a l C 6 .0 类库大全 [ M] . 北京 电子 工业 出版社 . 1 9 9 9 责任编辑 吴 自立 3 7 维普资讯
展开阅读全文