本文关于参考文献及大学学报及软件开发方面的免费优秀学术论文范文,关于参考文献相关论文范文素材,与在C#中结合OpenGL实现MIT―MTT套损检测三维成像软件开发相关在职毕业论文范文,对不知道怎么写参考文献论文范文课题研究的大学硕士、本科毕业论文开题报告范文和文献综述及职称论文的作为参考文献资料下载。
摘 要:MIT-MTT组合测井仪可以测得套管内径、壁厚等数据,使用相应处理软件结合成像技术生成的三维图,直观、明了.为了弄清井下套损状况,研究了在C#中通过调用OpenGL动态链接库文件来实现建模,开发套损检测三维成像软件,并在最后给出实例.
关 键 词 :MIT-MTT;C#语言;OpenGL;软件开发
中图分类号:TP391
1.前言
油田生产开发到一定阶段会发生套损,对套管进行长期动态监测有利于及时发现问题,减少经济损失.英国SONDEX公司MIT(MultifingImagingToo1)多臂井径成像测井仪[1],根据仪器规格不同一次下井可以分别测得圆周上均匀排列的多条井径;MTT(MagicThicknessToo1)磁壁厚测井仪[2],基于接收到的低频电磁波能量损失和相位大小可以测得套管壁厚.两支仪器组合使用相得益彰.目前,英国SONDEX公司已经开发出了Warrior,Wiper等处理软件.国内的绘图软件,如3DMAX,CAD等可以画三维图,但它们全是手工确定模型.鉴于此,笔者希望通过OpenGL建模技术在C#中的实现来开发出适用的三维绘图软件.
2.程序设计
有关论文范文主题研究: | 关于参考文献的论文范文素材 | 大学生适用: | 本科毕业论文、高校毕业论文 |
---|---|---|---|
相关参考文献下载数量: | 66 | 写作解决问题: | 如何怎么撰写 |
毕业论文开题报告: | 论文模板、论文选题 | 职称论文适用: | 刊物发表、职称评初级 |
所属大学生专业类别: | 如何怎么撰写 | 论文题目推荐度: | 免费选题 |
2.1 使用CsGL动态链接库
OpenGL(OpenGraphicsLibrary)是一个专业的图形程序接口,是一个功能强大,调用方便的底层图形库[3].C#是建立在.NET框架平台上的高级语言,在.Netframework中没有提供OpenGLApI托管接口,因此需要调用第三方软件CsGL.CsGL提供2个动态链接库:csgl.dll和csgl.native.dll.csgl.dll中定义了4个名称空间:CsGL,CsGL.OpenGL,CsGL.Pointers,CsGL.Util.其中,CsGL.OpenGL定义的4个类OpenGL、GL、GLU、GLUT封装了几乎所有的OpenGL函数、用户库函数、辅助库函数和实用库函数及常量.OpenGLControl中定义了OpenGL场景绘制函数.OpenGLContext中定义了OpenGL环境控制命令.[4]
2.2 创建OpenGL建模环境
要使得OpenGL真正发挥作用,必须添加对CsGL的引用.在命名空间中添加usingCsGL.OpenGL;,然后在解决方案资源管理器中,添加csgl.dll.
我们在窗口界面上设计各种功能控件,如读取文件的路径和数据方式等.要实现OpenGL绘图设计,必须创建用于显示图形的设备环境.创建一个名为OurView的类,实例化为View.将其停靠在窗口上.部分代码如下:
this.view等于newOurView();
this.view.Dock等于DockStyle.Fill;
2.3 建立OpenGL绘制环境
CsGL.OpenGL.OpenGLControl类中已经定义了创建绘环境的函数.OpenGLControl类派生自System.Windows.Forms.Control,因此它继承了Control类的基本属性与功能.可以声明一个派生自OpenGLControl的类来建立OpenGL绘制环境.代码结构如下:
publicclassOurView:OpenGLControl
{
publicOurView():base()
}
2.3.1 绘制环境的初始化
类OpenGLControl中定义了设备初始化函数InitGLContext,OpenGL绘制环境初始化的基本设置:加载场景中用到的各种纹理,设置各种缓存(颜色、深度),设置阴影模式等.部分代码如下:
protectedoverridevoidInitGLContext()
{
GL.glEnable(GL.GL_TEXTURE_2D);GL.glShadeModel(GL.GL_SMOOTH);
GL.glClearColor(0.5f,0.1f,0.1f,1f);
}
2.3.2 OpenGL场景的绘制
OpenGL场景的绘制可以通过重写CsGI.OpenGL.OpenGLControl类中的绘制函数glDraw来实现.部分代码如下:
publicoverridevoidglDraw()
{
GL.glClearColor(0.0f,0.0f,0.0f,0);
GL.glClear(GL.GL_COLOR_BUFFER_BIT|GL.GL_DEPTH_BUFFER_BIT);
GL.glLoadIdentity();
}
2.3.3 窗体大小的改变
当窗体大小改变时,只需要重写OpenGLControl类中的OnSizeChanged方法,并将OpenGL函数命令添加进去.部分代码如下:
protectedoverridevoidOnSizeChanged(EventArgse)
{
base.OnSizeChanged(e);
Sizes等于Size;
}
2.4 MIT3D绘图
井