VB中利用OpenGL绘制三维地质构造图-NET教程

上传人:ai****ue 文档编号:53624857 上传时间:2022-02-10 格式:DOC 页数:4 大小:40KB
返回 下载 相关 举报
VB中利用OpenGL绘制三维地质构造图-NET教程_第1页
第1页 / 共4页
VB中利用OpenGL绘制三维地质构造图-NET教程_第2页
第2页 / 共4页
VB中利用OpenGL绘制三维地质构造图-NET教程_第3页
第3页 / 共4页
点击查看更多>>
资源描述
VB 中利用 OpenGL 绘制三维地质构造图-.NET 教程,VB.Net 语言摘要opengl是一种三维图像研发标准,是从事三维图像研发工作的必要工具,其稳定性、可靠性、可扩展性等特点,赋予了其强大的生命力和应用前景,opengl已广泛应用于在cad/cam/cae、医学图像处理、虚拟现实、娱乐、广告等领域。本文就怎么利用vb结合opengl来研发三维地质构造图的基本步骤进行了周详地介绍,其中对像素格式的设定及光照和材质的设置进行了周详的描述。1.前言原来为了在计算机上实现一幅三维地质构造图,费尽周折,而结果却难以令人满意。而目前,因为有了opengl这一切都变得简单了。1992年,opengl正式成为适用于各种计算机环境下的三维应用程式接口(3dapi)。目前,他已成为国际上通用的开放式三维图像标准。作为一个优秀的三维图像接口,opengl提供有丰富的绘图命令,利用这些命令能够研发出高性能、交互式的三维图像应用软件。然而,目前国内介绍opengl的实例都是利用vc或c+研发的,令众多计算机工作者望而止步,因而,本文特意选用了简单的vb研发工具结合opengl来研发三维地质构造图。希望对那些对opengl感兴趣的工作者有所帮助。本文绘制出来的三维地质构造图能绕x、v、z轴进行360度自由旋转,也能进行自动旋转;并能对三维图分别沿x、v、z轴进行比例缩放,也能使三维图沿x、v、z轴三个方向同时进行相同比例缩放。2.Win32环境下的opengl编程1)建立视图界面.新建一个标准exe工程;,在部件中添加comctl32.ocx控件;.在工程菜单下的引用子菜单下加入vbopengl库(vbogl.tlb)(能到http:/.hk/edx/tlb.htm网站下载);在窗体上放置部件,建立如下视图界面(图1所示):图1视图界面2)创建设备描述表.定义像素格式结构dimpfdaspixelformatdescriptor.描述像素格式pfd.nsize=len(pfd)-结构大小pfd.nversion=1-版本号pfd.dwflags=pfd_support_openglor-支持openglpfd_draw_to_windowor-绘制至Uwindowspfd_doublebufferor-支持双缓冲区pfd_type_rgba-rgba颜色模式pfd.ipixeltype=pfd_type_rgba-像素格式类型pfd.ccolorbits=16-所需的颜色索引位数pfd.cdepthbits=16-所需的深度缓冲区位数pfd.ilayertype=pfd_main_plane-主层类型l为设备描述表得到最匹配的像素格式,确定pfd结构是否存在pixelformat=choosepixelformat(hdc,pfd)ifpixelformat=0thenmsgbox设备描述表支持的像素格式&vbcrlf&vbcrlf&_和给定像素格式不匹配!,vbcritical,错误endendif.设置设备描述表的像素格式,把指定的像素格式赋给指定的设备spf=setpixelformat(hdc,pixelformat,pfd)ifspf=falsethenmsgbox设置设备描述表像素格式失败!,vbinformation,失败endendif3)创建绘图描述表创建绘图描述表hglrc=wglcreatecontext(hdc)使之成为当前绘图描述表wglmakecurrenthdc,hglrc4)设置绘图环境允许深度比较glenablegl_depth_test顶点逆时针方向定义的多边形为前面glfrontfacegl_ccw设置绘图背景色glclearcolor0,0,0,15)定义光照和材质打开光照,放置一个光源,定义光照模型glenablegl_lightingglenablegl_light0gllightmodelfgl_light_model_two_side,gl_true设置光源位置dimlightpos(3)asglfloatlightpos(0)=1:lightpos(1)=1:lightpos(2)=1:lightpos(3)=0gllightfvgl_light0,gl_position,lightpos(0)设置环境光dimlight_ambient(3)asglfloatlight_ambient(0)=0.7:light_ambient(1)=0.7light_ambient(2)=0.7:light_ambient(3)=1gllightfvgl_light0,gl_ambient,light_ambient(0)设置漫射光dimlight_diffuse(3)asglfloatlight_diffuse(0)=0.6:light_diffuse(1)=0.6light_diffuse(2)=0.6:light_diffuse(3)=1gllightfvgl_light0,gl_diffuse,light_diffuse(0)设置镜面光dimlight_specular(3)asglfloatlight_specular(0)=1:light_specular(1)=1light_specular(2)=1:light_specular(3)=1gllightfvgl_light0,gl_specular,light_specular(0)设置材质属性设置模型镜面光反射率属性dimspecref(3)asglfloatspecref(0)=0.1:specref(1)=0.1specref(2)=0.1:specref(3)=1glmaterialfvgl_front_and_back,gl_specular,specref(0)设置材质镜面指数,他确定镜面光斑的大小和聚焦程度。取值1-128,该值越大,表面光泽越明显glmaterialigl_front_and_back,gl_shininess,128使用颜色跟踪法,设置模型前后面环境反射率和漫射反射率属性glenablegl_color_materialglcolormaterialgl_front_and_back,gl_ambient_and_diffuse6)初始化颜色表预先构造好颜色表。当读入高程数据时,能根据z值来访问颜色表,从而计算出该顶点的颜色(不同的高度层用不同的颜色显示)。privatesubinitcolortable()初始化颜色表fori=0to255withcolortable(i).r=255-i:.g=i:.b=0endwithnextifori=256to510withcolortable(i).r=0:.g=255-(i-255):.b=i-255endwithnextiendsub7)从数据文件中获取数据从data.txt文件中获取顶点数据。data.txt数据文件中第一行是构造图横向采样点的个数,第二行是构造图纵向采样点的个数,第三行为采样点的间距,第四行起为采样点的高度值。getdatafromfile()过程从data.txt文件中读取数据,由于是等间距采样数据,所以顶点的x和y坐标值能直接计算出来,只有z坐标值从数据文件中读入。获得顶点数据之后,计算出顶点的颜色,及填充三角形的法线矢量(用三角形序列填充)。8)设置窗口识见区和裁剪区设置窗口识见区和修剪空间,保持坐标系到屏幕坐标的映射不变glviewport0,0,w,h定义视见区glmatrixmodegl_projection定义矩阵为投影矩阵glloadidentity用于在进行矩阵处理之前复位坐标系ifw=hthen定义修剪空间glortho-2000,2000,-1000*h/w,2000*h/w,-10000,10000elseglortho-1000*w/h,2000*w/h,-1000,2000,-10000,10000endif告诉opengl将来的所有变换都会影响模型glmatrixmodegl_modelview定义矩阵为模型变换矩阵glloadidentity9)绘制三维地质构造图先进行旋转、比例和平移变换,再根据顶点数据进行绘图,运行结果如图2所示。绘制出来的三维地质构造图能绕x、v、z轴进行360度自由旋转,也能进行自动旋转;并能对三维图分别沿x、v、z轴进行比例缩放,也能使三维图沿x、y、z轴三个方向同时进行相同比例缩放。图2运行结果10)把绘图描述表从线程上脱离并删除publicsubreleaseglrc(hglrcaslong)把绘图描述表从线程上脱离并删除ifhglrc0thenwglmakecurrent0,0wgldeletecontexthglrcendifendsub3.结束语目前,计算机图像学已进入三维时代,三维图像在人们周围无所不在,三维图像在军事、航空、航天、医学、地质勘探、艺术造型和文化娱乐等方面都有着十分广泛的应用,而opengl是一种三维图像研发标准,是从事三维图像研发工作的必要工具,其稳定性、可靠性、可扩展性等特点,赋予了其强大的生命力和应用前景,opengl已广泛应用于在cad/cam/cae、医学图像处理、虚拟现实、娱乐、广告等领域,因而对于opengl的研究和应用有着重大意义。
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 演讲稿件


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!