摘要:三视图训练软件利用三维交互技术实现对三维模型的全方位观察,帮助用户培养对三维模型的空间感和抽象思维能力。该系统以C#为开发语言,以DirectX为内核进行设计,使用Pro/ENGINEER和3ds max等软件制构建三维模型,利用SnagIt和PhotoShop等软件完成图像处理。本文还对三维交互技术在交互式教育软件以及电子商务中的应用进行前瞻。
关键词:三维交互技术,视图、C#、DirectX、交互式教育软件
The Application of Three-Dimensional Interactive Technology In Development Of three-view training softwareAbstract: The three-view training software uses the three-dimensional interactive technology to give the users a comprehensive observation of the three-dimensional model, helping users to train the sense of space of the three-dimensional model and the ability of abstract thinking. The system uses C# language as the development language, the DirectX for core development, the Pro/ENGINEER and 3ds max for model-making, and the SnagIt and PhotoShop finishing the work of processing of the image. The author go on to foresee the prospect of its applying in the fields of interactive educational software and electronic commerce.
Keywords: Three-dimensional Interactive technology, view, C#, DirectX, interactive educational software
0 引言工程制图是现代设计人员必须掌握的一门基本技能,涉及到机械制图、建筑制图、电子电路制图以及园林制图等多个领域。同时,工程制图课程也是高等工科院校是一门重要的基础必修课,主要研究用投影法解决空间几何问题并在平面上表达空间物体的方法,培养学生工程图样的绘制和阅读能力。
学习工程制图时,需要重点学习对三维物体的形状及相关位置的空间逻辑思维和形象思维能力。对于初次涉足工程制图领域的人员来说,空间思维能力较弱,只有通过反复的实践训练和长期的经验积累才能逐步提高。三维交互技术通过对三维空间的虚拟物体进行几何变换、矩阵运算、最后通过渲染输出三维图像,再通过计算机输入设备的控制实现其在虚拟空间中的旋转和位置变化,并通过控制虚拟摄像机来实现镜头远近,从而实现对虚拟三维空间中的物体控制。
随着当代CAD技术的发展,可以非常轻松地使用Pro/ENGINEER、UG、3dsmax以及MAYA等软件创建出“所见即所得”的三维模型,并可以方便地获得三维模型向特定投影面投影后的二维图形。本文将将介绍综合使用CAD技术和三维交互技术开发三视图训练软件的一般方法。 1 系统的功能和结构 1.1 系统的功能传统的三视图训练,通常只给出一组三视图,让训练者结合图形上的线条通过空间想象和抽象思维,逐步在头脑中建立空间三维模型,其学习难度较大。同时,教师在讲授类似课程时,费时费力,而且不一定能达到良好的教学效果。
本文开发的三视图训练系统可以用训练学生对三维模型的空间想象力。系统的功能模块如图1所示,对应的实际界面如图2所示。在选项模块中,给出一组(4个)外形相近的三维模型,在三视图显示模块中给出符合第三角画法的一组三视图。测试者从A、B、C和D等4个选项中单击选中一个选项后,在透视图模块中可以通过简单的鼠标操作来实现对模型的旋转和缩放等操作,以便更好地观察模型上的结构细节。训练时,通过透视图可以全方位观察实体模型,直观了解其上的形体结构和线面关系。既能提高学习兴趣,又能快速提高空间思维能力。 图1 系统模块划分 图2 系统界面 该系统中包含容量巨大的三维模型库,并按照模型复杂程度不同分组排列,可以从基础开始,逐步训练学生的空间想象能力。 1.2 系统的结构为了便于教学和在网络上使用,该系统包括两个基本板块:一个是客户板块,用于用户用学习和测试;另一个是是服务器板块,负责完成测试信息的存储和统计工作。两个模块使用C/S模式传输协议进行数据传输。如图3所示。
三视图训练系统 客户模块 服务器模块 完成学生设置信息、制作测试题目、保存结果、发送结果等功能。 完成接收、统计和存储学生数据的功能。 使用C/S模式传输数据 图3 系统的基本结构 2 开发工具的选择 2.1 程序开发语言本设计使用C#作为程序开发部分的主要语言,C#是基于Microsoft .net平台,面向对象的设计语言。具有语法简洁、面向对象设计以及与Web的结合紧密等特点。安全性、灵活性和兼容性都较好。本设计使用Microsoft Visual C# 2005 Express Edition作为程序开发部分的主要工具。该开发工具具有开发简单,开发效率高等有点,是C#语言开发的首选开发工具。C#是基于Microsoft .net平台的语言,所以开发软件之前首先需要安装Microsoft .net framework 2.0。
本设计的核心代码基于微软公司开发的DirectX 9.0,DirectX9.0是由微软公司研发的是一组低级应用程序编程接口,可为 Windows 程序提供高性能的硬件加速多媒体支持。特别是在3D图形方面的表现非常优秀。 2.2 机械建模工具在本设计中首先使用Pro/ENGINEER软件制作精确机械模型,但由于Pro/ENGINEER不能直接导出本软件能够识别的X文件,所以需要将Pro/E中设计好的机械模型以.stl文件格式导入3ds max软件进行相应的设置之后,才能导出x文件。在3ds max中可以设置模型的材质和贴图,并能为其制作简单的帧频动画。
DirectX中有一部分叫DirectDraw,其为图形绘演API,提供对图形的强大的访问处理能力,而在DirectDraw中集成了一些三维图形相关的功能,称为Direct3D。Direct3D可以直接调用硬件资源,具有很高的执行效率,并提供一个共同的硬件驱动标准,让程序开发者不必为每一品牌的硬件来写不同的驱动程序,也降低用户安装及设置硬件的复杂度。再加之微软在软件行业的影响力,甚至可以预言它将成为3D图形技术的标准。 2.3 插件通过编程很难制作出高质量的复杂模型,所以这里使用的都是外部导入已经由其他软件建好的模型。x文件就是包含虚拟模型的文件。x文件是使用Pro/ENGINEER建模,然后将模型导入3ds max,再使用3ds max的插件导出高质量x文件。
本设计使用的插件是PandaDirectXMaxExporter.dle,插件的安装方法是将其拷贝到3ds max安装目录下的stdplugs文件夹当中。拷贝完成后可以在3ds max的导出列表中找到导出Panda DirectX(*.X)选项。 2.4 图片图像处理工具在该软件中,还涉及到图片图像的处理工序。由于三视图中的前试图、主试图、俯视图和四个选项的图片都需要由机械人员在Pro/E中截取,所以要使用截屏工具SnagIt来截取。截取的图片使用PhotoShop进行切割和调整,最后得到合格的图片。 3.客户版块设计学生使用部分是该软件的核心,软件的主要功能都在这部分完成,按一般使用流程可分为用户登陆、难度选择、试题制作、试题提交、数据传输这五个模块。 3.1 用户登陆用户登陆主要完成的任务是获取姓名和编号,便于后期成绩和数据管理。由于本系统用户多为青年学生,所以设计采用了较为活拨的颜色作为主题色。 3.2 难度选择该软件中设置了初级、中级和高级等难度等级。在这三个不同级别中,是根据所软件所涉及的实体模型的难易程度来分级,初级里的模型较为简单,没有太多的边面变化,而随着级别的提升,边面变化增多,难度也逐渐增大 3.3 试题制作用户选择试题等级后,从相应的试题库中随机抽取试题组成试卷,供用户练习使用。根据投影原理,物体的三个视图要按照“长对正,宽相等,高平齐”的要求严格对齐方,如果使用常规的对齐方式,很难做到精确。这里使用了Visual C# 2005中的Containers类中的TableLayoutPanel窗口划分工具来进行窗口划分,并通过设置TableLayoutPanel的属性和放在其内的对象属性,实现专业级的布局效果。 3.4 答案提交在提交答案后,学生可以查看自己的答案和分数,并且可以选择保存自己的全部测试信息到TXT文档,也可以将测试结果上传到教师机。