简介:本文从虚拟现实交互式漫游的实现过程出发,通过Vega软件实现交互式漫游功能。关键词虚拟现实;Vega;交互式漫游中图分类号O343.2文献标识码A文章编号1007-9599(2010)04-0000-01ImplementationofInteractiveWalkthroughFunctioninVirtualRealitySceneLuHongyan(ArmedPolicyEngineeringCollege,Xian710086,China)AbstractThepaperintroducestheimplementofinteractivewalkthrough,andachievethefunctionsofInteractivewalkthroughbyVega.KeywordsVirtualreality;Vega;Interactivewalkthrough虚拟现实场景中常见的交互方式有固定式漫游和交互式漫游两种。交互式漫游方式比固定路径漫游灵活,真实感更强。一、交互式漫游的实现在漫游系统中,用户通过Observer的视角置身于虚拟环境中,通过鼠标和键盘控制视点和行动路线。在这种交互情况下,不需要进行任何的预处理过程,场景分析和路径计算都是在漫游的过程中进行的。交互式漫游的视点是由用户自定义的,有很大的灵活性。如果将Observer与Walk运动模式绑定在一起,就可以用鼠标控制其前进、后退、转向和四处观望的视觉效应。但是作为一个在环境中的观察者来说,能够做到的远不止这些。他可以抬起头看看天空,也可以低下头看看绿地花草。但是,在Vega中却没有一种运动模式符合需要。这就需要编程定义自己的运动模式。在自定义的运动模式中,主要实现10个漫游动作前进、后退、左移、右移、上升、下降、仰视、俯视、停止和复位。表1鼠标按键定义控制方式相应功能鼠标左键运动加速鼠标右键运动减速上移鼠标向前运动下移鼠标向后运动鼠标左键+中键视点升高鼠标右键+中键视点降低左移鼠标向左运动右移鼠标向右运动鼠标中键运动停止鼠标左键+右键+中键运动复位表2键盘按键功能定义按键相应功能向上方向键运动加速向下方向键运动减速向左方向键向左运动向右方向键向右运动E向前运动C向后运动I视点升高M视点降低S运动停止R运动复位在本系统中,主要以鼠标、键盘作为系统的输入设备,实现与虚拟场景的互动。如表1、表2所示,对鼠标、键盘相应的按键功能进行定义。实现自定义模式可以分以下几个步骤Step1使用Vega提供的vgMotionCallbackStruct函数编写自定义的用户运动模型(通过回调函数实现运动模型)。Step2vgMotRegister函数向系统注册给运动模型、安装模型实现回调函数;Step3将运动事件属性值VGMOT_MODEL设为用户自定义的模型VGMOT_USER1,进入主循环。Step4处理运动事件(在回调函数中实现)。二、查询功能的设计对模型对象实现信息查询功能主要是基于对三维目标的选择和判别。通过鼠标点取窗口中任意一个对象,即可查询该对象的属性,如同在二维地图窗口中一样方便。判断物体是否被选择,拾取技术是关键。模型对象的拾取在Vega中,模型对象的拾取是通过vgPicker提供的类获取鼠标的位置来实现的。vgPicker类提供了函数对角色对象(vgPlayer)、模型对象(vgObject)、模型部件(vgPart)以及pfGeodes和pfGeosets节点等场景元素进行拾取。完成拾取操作有以下几个步骤Step1将要拾取的物体作为一个模型对象。Step2通过函数vgPickerScene(),vgPickerChannel()设置vgPicker作用的场景和通道;设置vgPickerHighLightColor()函数,选择物体显示的颜色。Step3通过vgPickerClampIsector(),vgPickerIsector()函数显示设置vgPicker的相交矢量。Step4通过vgProp()函数启用vgPicker。Step5将鼠标中键设为拾取物体的键。Step6设置物体mask掩码与vgPicker相一致。vgPicker不能操作静态对象,对于静态对象,使用vgPicker只能间接获取其所在的模型数据库vgDataSet节点等,不能获取对象本身vgObject节点。这时必须采用辅助工具进行操作,常见的方法是采用包围盒43。包围盒拾取算法,如图1所示图1包围盒拾取算法流程图在拾取物体后的物体显示本建筑的名称、编号和建造时间,在主要建筑,如办公楼等,还可以显示每层楼的信息。查询功能的实现方法在本系统中可以通过基于对象名称的拾取方法实现三维地物的查询功能。实现方法如下Step1在Creator中以组(group)的形式为对象命名,作为被查询的关键字。Step2以模型对象名称作为关键字在Access中建立建筑的属性信息表,用ADO连接。Step3创建一个vgPicker对象,在postConfig中设置捕捉对象的类型为VG_OBJECT。Step4在postFrame中用vgMouse实现鼠标点选,调用vgGetPickerPickedProcessing执行捕捉,若成功调用vgGetPickerPickedObject返回捕捉对象的指针,再用vgGetName获取捕捉对象关键字。Step5在属性表中根据关键字对应的记录显示当前建筑物的信息。当选中目标后,获得目标的标识符,再运用SQL语句从后台数据集中查询与标识符对应的实体属性信息。三、结论本文主要介绍交互式漫游的实现过程,介绍了交互式功能的实现和查询功能的设计。在完成漫游的基础上还要进一步完成碰撞检测这一方面的内容。参考文献1徐诚.虚拟校园漫游系统的研究.硕士研究生学位论文.武汉华中师范大学,20062肖书立,李世其,王俊峰.基于广义包围盒的交互操作在Vega环境中的应用J.计算机应用,2006,2.500-501
简介:本文是excel在生活中做这些工作中的一个特例,用数组知识进行数据统计,高效为生活服务的一个典型应用。关键词数据管理;统计;数组中图分类号TP391.13文献标识码A文章编号1007-9599(2010)04-0000-01FoolRecords&StatisticsRealizationofRunningAccountSwithExcelSunLei,YangDan(CapitalEconomic&TradeUniversity,MiyunCampus,Beijing101500,China)AbstractThisarticleisexceldotheworkinthelifeofaspecialcase,withanarrayofknowledgeandstatisticaldata,efficientservicesforthelife,asatypicalapplication.KeywordsDatamanagement;Statistics;Array记账算账是很多个体老板每日必须的工作。但是很多人因为专业水平有限,把excel电子表格当成了简单的记账本,很多计算统计功能没开发出来,所以效率不高。其实,常用函数中的SUM和IF函数可以实现流水账傻瓜式统计。下面以雪糕店为例,如何实现流水账傻瓜式记录和统计。业务流程很简单采购-销售-给业务员提成-再采购。统计内容有以下几项根据时间统计商品销售量、销售额、业务员提成和商品库存。根据需求设计流水账单。本实例中把流水账分别记录在“采购流水账”和“销售流水账”两个表中。把采购统计功能和销售统计功能实现在“统计”表中,库存统计功能实现到“库存”表中。一、销售流水账这个表与采购流水账类似,多出B(业务员)和G(业务员提成)列。B列与采用下拉列表实现无错录入,实现方法与C列(商品名称)同样,但前提需要预先准备好的商品名称序列和业务员姓名序列。G列是业务员提成G3中输入=F3*0*.03(按照3%提成),向下自动填充。二、统计这个表中实现了以时间为根据的采购和销售的各类汇总。以销售部分为例
简介:随着电子技术的飞速发展,电子产品的迷你化越来越令人目不暇接,Mp3、数码相机、录音笔甚至手提电脑等已成为人们随身携带的必备物品。近日全新上市的HPPhotosmartA716便携式照片打印机,便凭借小巧玲珑的身形,让出游的人们着迷不已。除便携的特点外,它还有着彩色液晶显示屏、高速照片打印、小型数码伴侣、强大的脱机编