



全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C#+csgl库进行OpenGL编程 OpenGL是图形硬件的一个软件接口,是一种快速、高质量的3D图形软件。它提供了近120个绘制点、线点多边形等3D图形的命令,可以完成绘制物体、变换、光照处理、着色、反走样、融合、雾化、位图和图像、纹理映射、动画等基本操作,通过把这一系列基本操作进行组合,可以构造更复杂的3D物体和描绘丰富多彩、千变万化的客观世界。 C#是以Microsoft.NET运行库为基础的一种编程语言,它几乎集中了所有关于软件开发和软件工程研究的最新成果,如面向对象、类型安全等,并被寄希望成为微软发布的用于企业编写基于COM+和视窗系统的程序语言中的最好的一种。与C+相比,C#的语法更加简洁,调试更加容易,且应用程序开发周期短。把C#和OpenGL结合起来开发3D应用程序和软件,将显著提高开发效率。 在C#中,程序间的依赖项通过符号而不是文本来控制,因而不使用头文件,而且opengl32.dll以及opengl32.lib等文件也不能像在C+中那样进行部署和引用,所以,无法直接使用OpenGL所提供的图形库。 在C#中通过调用OpenGL 动态链接库文件:csgl.dll和csgl.native.dll实现OpenGL所提供的强大的图形功能。 这2个文件可以从网页上获取。 csgl.dll中定义了4个名称空间,即CsGL,CsGL.OpenGL,CsGL.Pointers,CsGL.Util,其中,CsGL.OpenGL定义的4个类OpenGL、GL、GLU、GLUT中封装了几乎所有的OpenGL函数、用户库函数、辅助库函数和实用库函数及常量;类OpenGLControl中定义了OpenGL场景绘制函数,如场景的初始化、场景的绘制函数等;类OpenGLContext中定义了OpenGL环境控制命令,如像素格式、调色板的创建等命令。CsGL.Util定义了键盘、鼠标事件及异常处理等。 为了能够使用这2个文件,先将这2个文件拷贝到系统文件夹%systemroot%system32中,然后在项目的属性页对话框中将引用路径设置为系统文件夹%systemroot%system32,这样C#就可以找到运行/调试应用程序所需要的库文件。 下面是如何在VS2005环境下实现OpneGL建模:1、usingCsGL.OpenGL;2、新建一个类派生于OpenGLControl类的控件类,类OpenGLControl中还定义了设备初始化函数InitGLContext、场景绘制函数glDraw、双缓存交换函数SwapBuffers以及窗口大小改变时的重绘函数OnSizeChanged等。3、重写控件类的方法class Class_GL_View : CsGL.OpenGL.OpenGLControl /重写绘图函数 public override void glDraw() /初始化OpenGl控件 protected override void InitGLContext() /当控件大小改变时候 protected override void OnSizeChanged(EventArgs e) /OpenGL控件鼠标事件 protected override void OnMouseMove(MouseEventArgs e) .4、在窗口中调用OpenGL控件类,即将控件添加到窗口上面 public Control_GL_View = new Control_GL(); public Form_main() InitializeComponent(); this.timer1.Start(); this.ClientSize = new System.Drawing.Size(600, 400); view.Parent = this; view.BringToFront(); view.Dock = DockStyle.Fill; this.Controls.Add(view); C#不直接支持openGL,但可以利用第三方插件CsGL.dll实现. 现在和大家分享一下我的小程序:创建project testOpenGL;然后添加一个继承OpenGLControl的类MyView,代码如下,namespace testOpenGL class MyView : OpenGLControl public MyView() public override void glDraw() GL.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT | GL.GL_ACCUM_BUFFER_BIT | GL.GL_STENCIL_BUFFER_BIT); /绘制点 GL.glColor3f(0.0f, 0.0f, 0.0f); GL.glPointSize(4.0f); GL.glBegin(GL.GL_POINTS); GL.glVertex2i(100, 50); GL.glVertex2i(100, 130); GL.glVertex2i(150, 130); GL.glVertex2i(10, 10); GL.glVertex2i(0, 0); GL.glEnd(); /绘制线 GL.glColor3f(1, 0, 0); GL.glLineWidth(2f); GL.glBegin(GL.GL_LINE_STRIP); GL.glVertex2i(100, 50); GL.glVertex2i(100, 130); GL.glVertex2i(150, 130); GL.glVertex2i(10, 10); GL.glVertex2i(0, 0); GL.glEnd(); GL.glFlush(); /重构GL protected override void InitGLContext() GL.glClearColor(1.0f, 1.0f, 1.0f, 0.0f); GL.glMatrixMode(GL.GL_PROJECTION); GL.glLoadIdentity(); GL.gl
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 课件显示异常
- 理货人员考试题及答案
- 客房考试题目及答案
- 真空垂熔工岗位操作规程考核试卷及答案
- 重冶火法精炼工技术考核试卷及答案
- 石脑油吸附分离装置操作工技术考核试卷及答案
- 竞赛规程考试题及答案
- 2025年教师招聘之《幼儿教师招聘》题库试题带答案详解
- 高炉原料工主管竞选考核试卷及答案
- 金属轧制考试题及答案
- 包子铺合伙开店协议合同
- 2025广西现代物流集团第三次招聘109人笔试备考题库及答案解析
- 轴承装配工标准化作业考核试卷及答案
- 入住敬老院协议合同模板
- 英语教学发音课件下载
- 2025年特种设备检验人员资格考试(压力管道检验师GDS)历年参考题库含答案详解(5套)
- 2025年河南省公开遴选公务员考试(案例分析与对策性论文)历年参考题库含答案详解(5套)
- 光伏施工基本知识培训课件
- 挡土墙、围墙施工方案(技术标)
- 2025年中药三基试题及答案大全
- 白内障囊外摘除联合青光眼人工晶体植入术后护理查房
评论
0/150
提交评论