• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
lizhengjin
博客园    首页    新随笔    联系   管理    订阅  订阅
土石坝网格剖分程序源代码

 

 

土石坝网格剖分程序在vc++开发平台上,用c++和vtk开发,主要分两部分

 

第一,程序剖分内核,剖分算法用的是递推断面法,  本文针对土石坝断面形状相似的特点,在综合分析土石坝各个断面形状的基础上,提出标准断面,其它各个断面都是标准断面的一部分,把标准断面划分成四边形和三角形,然后平移形成其它断面,把相邻断面的四边形和三角形对应的联接起来,根据断面的不同边界条件剖分成六面体,四面体,三棱柱单元,从而完成土石坝的网格剖分,并且提供了两个算例检验此算法的效果.

 

第二,图形显示模块,本文结合vtk用面向对像的方式开发,主要类层次结构及功能如下

   

CAbstractReader读取数据,抽像类,提供接口

而CDamReader具体读取六面体

CQuadReader具体读取四边形

 

CAbstractActor把读入的数据经过三维坐标转换后形成图像

而CActor具体处理六面体

CQuadActor具体处理四边形

 

另外还提供了节点显示及打印jpg文件的功能,由以下两个类实现

具体只需要传入所需的参数即可

 

CNumber控制节点显示,可以显示节点或者单元编号

CPutOutImage可以把显示的图形打印成jpg文件

 

CRender用于把渲染完成的图像显示出来

 

CMange主要是用于管理整个程序,实现了三层结构,表现层,数据层,逻辑层,用来

控制大坝的各种功能

 

CCutDam类,在构造函数里面实现大坝的剖分算法

 

 

 

 

本程序的功能

首先读入数据,然后点击显示坝体则出现整体大坝,按左键可以任意角度观察,按中键可以任意平移,按右键可以任意缩放。同时在鼠标移到界面右边按下右键,则弹出菜单,可以按不同的材料显示.同时点击上方的按钮则可以在单材料和多材料之间切换。如果点击显示坝段,则可以按不同的坝段显示,并且用以上同样的方法,可以在单坝段显示和多坝段显示之间切换.同时还提供了两种观察模式,规迹球和操纵杆.默认为规迹球观察

 

提供源代码供大家使用,此程序必须建立VTK环境,具体方法可参考http://www.vtk.org/

程序源代码在DAM文件夹

两个实例在DAMDATAY文件夹中的data1.txt,data2.txt,同时此文件夹包含的运行结果输出的jpg文件,其它四个文本文件是剖分结果

 

运行的图形结果存在本博客的相册"程序"分类里面

 

 

 

 

 

 

posted on 2008-08-17 12:06  lizhengjin  阅读(840)  评论(2)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3