zoukankan      html  css  js  c++  java
  • 土石坝网格剖分程序源代码

    土石坝网格剖分程序在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文件,其它四个文本文件是剖分结果

     

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

     

     

     

  • 相关阅读:
    Java环境搭建
    Java语言的分支
    Java语言概述
    计算机语言
    人机交互
    计算机分类
    计算机的应用领域
    计算机的发展史
    Java8的一些新特性
    python国内三方库下载镜像
  • 原文地址:https://www.cnblogs.com/lizhengjin/p/1269695.html
Copyright © 2011-2022 走看看