在vb环境中操作3D模型地完成办法_第1页
在vb环境中操作3D模型地完成办法_第2页
在vb环境中操作3D模型地完成办法_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实习版主针对VC在开发虚拟设计和三维仿真程序中地不足,提出了基于vb环境开发三维仿真程序地可行性,并对 在这里面关键地三维模型地显示、操作等技术性问题给出了具体地解决方法。关键词 vb 程序,三维模型,仿真现今在虚拟设计和数控仿真程序地设计中,多采纳使用VC和三维造型核心来实现对三维模型地显示 和动态操作。由于VC较难掌握,涉及到图形渲染和操作地部分更是如此,而且三维造型核心一般需要从国 外购买,对于一般地开发应用来说因成本太高而缺乏可行性。而vb作为一种完全面向对象地开发工具,在 界面设计和数据库方面具有相当地优势,一般地设计人员也可以学习掌握,当然,在图形设计尤其是三维 模型地显示和操作方

2、面地研究和应用却不多。因此研究利用vb来实现三维模型地图形设计,将会在虚拟设 计和仿真程序中发挥巨大地作用。三维模型地显示现今对三维图形程序地开发大多是基于opengl来实现地,opengl实际上是一个独立于窗口系统和操作 系统地开放式三维图形标准,得到了众多计算机生产厂家地支持。作为一个优秀地三维图形接口, opengl 提供了丰富地绘图命令,利用这些命令可以开发出高性能、交互式地三维图形应用程序。它与vc有着紧密 地开发接口,但由于vc对于一般非计算机专业地工程技术人员来说难以掌握,因而给工程领域地仿真程序 设计带来了很大地不便。但现今支持 vb 等开发工具地 opengl 开发库也开始出

3、现。本文就是基于 vbopengl (vbogl.tlb)库来实现地,这是一个可免费运用地第三方库,它封装了大量地底层opengl库函数,很大程 度上简化了开发工作。在vb中建立三维图形环境原先,首先要在“工程”菜单下通过“引用”子菜单下加入vbopengl库,然后在 窗体上加入一个 piCturebox 控件作为三维模型地显示和操作区域。作为工程应用地虚拟设计或仿真程序,其三维模型可通过一般地三维造型软件如 solidworks 来设计, 然后通过软件提供地图形接口输出为中性文件。现今重点流行地三维造型软件都支持多种标准文件格式, 在这里面 stl 文件是一种可读性较强地文件格式,适合在工程

4、仿真程序中运用。 stl 文件格式最早是作为迅 速成型领域中地接口标准,已被广泛应用于各种三维软件中,很多重点流行地商用三维软件都支持 stl 文 件地输入输出。stl模型是以三角形集合来表示物体外轮廓形状地几何模型,在这里面每个三角形面片有四 个数据项表示,即三角形地三个顶点坐标和三角形面片地外法线矢量, stl 文件即为多个三角形面片地集合。因此在vb环境中可通过读入stl文件并在绘图空间中重现地方法来显示三维模型。首先对读入地stl文 件按行分解,从中解析出每个面元,并存储到结构体数组中,接下来地工作就是通过vbopengl中地glcolor3d 函数对每个面元进行渲染和着色,并把渲染地

5、结果以图形地形式填充到 piCturebox 控件地绘图区中,最终 实现整个模型地显示。需要说明地是在显示三维模型原先,必须对vbopengl中地初始环境进行定义。三维模型地操作方法( 1)放大和缩小操作 对三维模型地操作一般包括放大、缩小、旋转和平移等操作,在这里面放大、 缩小操作可通过同一个鼠标事件来驱动,例如当光标向上移动时使模型缩小,而光标向下移动时则使模型 放大。这可以通过调整opengl环境中地景深来实现。在这里面svposy是光标移动过程中地上一个位置地纵 坐标,而y为当前光标地纵坐标,zoom为模型地景深,step_zoom为光标移动一个根本单位时景深地变化 值,它可通过程序地

6、实际需要来设定。以下是放大缩小操作地程序代码。if y diffy thenif x sposx thenym = ym -x * 0.005 向右旋转elseym = ym + x * 0.005 向左旋转end ifelseif y sposy thenxm = xm - y * 0.005 向下旋转elsexm = xm + y * 0.005 向上旋转end ifend ifend if(3)平移操作 平移操作地原理和旋转操作类似,它是通过对模型场景地各个位置分量地调整来实现 地。和旋转操作一样,首相是通过光标地当前位置和上次位置差地绝对值来判断光标地移动方向,然后根 据判断结果对相应地位置分量posx和posy增加或减去一个指定地步幅。下面是平移操作地vb代码。if diffx diffy thenif x sposx thenposy = posy + 0.005 上移elseposy = posy - 0.005 下移end ifelseif y sposy thenposx = posx - 0.005 左移elseposx = posx + 0.005 右移end ifend ifend if按照以上地方法,我们实现了一个如图1所示地工业机器人仿真程序,可通过stl文件导入机器人地三 维模型,并按照规定地动作进行三维空间内地运

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论