OSG视讯化仿真期末作业
- 格式:doc
- 大小:203.50 KB
- 文档页数:4
机器人仿真技术_三江学院中国大学mooc课后章节答案期末考试题库2023年1.动作类型用于向指定位置的移动轨迹。
FANUC机器人的动作类型有()。
参考答案:直线动作_圆弧动作_C圆弧动作_关节动作2.()是在系统中已经确定了其用途的专用信号,分为外围设备输入信号UI[i]和外围设备输出信号UO[i]。
参考答案:外围设备I/O (UI/UO)3.按焊接工艺的不同,焊接机器人主要分3类:、弧焊机器人和激光焊接机器人。
参考答案:点焊机器人4.当机器人的( )按钮被按下,机器人立即停止运行。
参考答案:急停5.FANUC机器人最多可以定义( )个不同工具坐标系(含默认坐标系)。
参考答案:106.也称有效负荷,是指正常作业条件下工业机器人在规定性能范围内,手腕末端所能承受的最大载荷。
参考答案:额定负载7.圆弧动作(C)是从动作开始点(P1)运动,圆弧直径由两点共同决定,示教时需要先确定起点,起点指令为线性,经过点为圆弧。
参考答案:错误8.以下哪一条为将当前位置的关节坐标值代入位置寄存器PR[1]中()。
参考答案:PR[1]=JPOS9.机器人的当前位置表达了( )相对于( )的对应关系。
参考答案:工具坐标系、用户坐标系10.机器人的定义中,突出强调的是()。
参考答案:模仿人的功能11.动作类型为关节动作的情况下,速度按如下方式指定。
()参考答案:单位为msec时,在1~32000msec范围内指定移动所需时间。
_单位在sec时,在0.1~3200sec围内指定移动所需时间。
_在1~100%的范围内指定相对最大移动速度的比率。
12.L P[1]50deg/secFINE,以下描述正确的是()。
参考答案:在P[1]点处精确定位。
_移动方法为在工具中心点附近的回转移动。
_直线移动到P[1]点。
13.关节动作是将机器人移动到指定位置的基本的移动方法,其运行轨迹不确定。
参考答案:正确14.时间等待指令WAIT后面必须为数值,表示为时间值。
中兴视讯高级试题
简答题
1.为什么要调节白平衡?怎样执行手动调节?
2.试给出处理会议电视终端不能控制摄像机动作的故障处理方法。
3.分析4050终端没有图像输出可能存在的原因。
4.如何验证连接MCU与终端,之间的传输通道的好坏?
5.如果主摄像头及云台控制失灵,工控机上有可能是哪一部分的问题?
6.视频编解码器为什么要增加延时电路?
7.请简述将甲地的一幅图像传送到乙地的大致过程。
8.试比较N16E1板的远端环回、本地环回、硬件环回。
9.在现场为MVC4050用户升级时,发现终端无法升级,该怎样处理?
10.某一终端不对另一终端的摄像机进行控制,请分析故障原因,给出相应的故障处理方法。
华为认证H31331 HCNPOTN Transmission仿真题及答案1、(单项选择)TQM属于哪一类单板?A.OTUB.支路单元C.线路单元D.光放大单元2、(单项选择)下面哪一项不是MESH网络拓扑的优点? ( )A. 低廉的网络建立本钱B. 网络中不存在瓶颈C. 可实现重路由功能3、(单项选择)当配置波长可调的OTU单板时, 用户需要设置规划的波长通道去替换OTU单板原有波长信道 ( )A. 正确B. 错误4、(多项选择)造成光层路径(OCh)路由计算失败的原因可能是( ).A. 光纤连接不正确B. WDM侧OUT单板端口的波长与光穿插波长不一致C. 网络层OTS路径不可用D. OAU单板中TDC和RDC端口之间的光衰过大5、(单项选择)ANY业务的穿插连接无法通过集中光层调度实现( )A. 正确B. 错误6、(单项选择)如果一个光通道的功率是-19dBm, 那么拥有4个光通道的线路板的总功率是多少? ( ) (Lg4=0.6)A. -15 dBmB. -13 dBmC. -11 dBmD. -19 dBm7、(多项选择)以下多插入损耗描述正确的选项是? ( )A. 插入损耗指的是光信号经过光复用器件中相应的光通道后在输出端的光功率损耗B. 插入损耗是合波器或者分波器中单个物理通道的性能指标C. 在插入损耗测试中,解复用器中各个光通道的插入损耗应该是相同的,所以之需要测试其中一个光通道即可D. 在分波器的插入损耗测试中,可以用仪器产生的光信号在分波器的输入端口输入并测试输入光功率,然后在分波器的输出端测试光功率,而其中的差值就是插入损耗8、(多项选择)以下哪些告警可触发OLP倒换? ( )A. MUTLOSB. RLOSC. POWER-DIFF-OVERD. POWERDIFFDEFECT9、(单项选择)APE的功能是? ( )A. 确保光功率在断点处于平安水平B. 保持系统光功率稳定C. 提高系统光信噪比(OSNR)D. 延长传输间隔10、(多项选择)光谱分析仪可以测量的信息有? ( )A. 波长数量B. 每个通道的光功率C. 每个通道的光信噪比D. 每个通道累积的色散【参考答案】1.B2.A3.A4.ABC5.A6.B7.AB8.AC9.C 10.ABC。
物流仿真技术期末大作业设计报告(2013-2014学年第2学期)题 目 混合流水线系统仿真与分析姓 名 董相春 学 号 3110802041 班 级 物流管理112宁波理工作业评分表设计报告一、选题来源(一)来源说明百度文库,详见word附件。
(二)问题的应用背景一个工厂有5个不同的车间(普通车间,钻床车间,铣床车间,磨床车间,检测车间),加工3种类型产品。
每种产品都要按工艺顺序在5个不同的车间完成5道工序。
假定在保持车间逐日连续工作的条件下,仿真在多对象平准化中生产采用不同投产顺序来生产给定数量的3种产品。
通过改变投产顺序使产量、品种、工时和负荷趋于均衡,来减少时间损失。
如果一项作业在特定时间到达车间,发现该组机器全都忙着,该作业就在该组机器处排入一个FIFO规则的队列的暂存区,如果有前一天没有完成的任务,第二天继续加工。
(三)问题所在系统描述以下三张表分别表示各车间配备的机器数量;各产品在不同机器上的加工时间;产品的数量。
表1.3.1: 车间配备(单位:台)表1.3.2: 加工时间(单位:min)表1.3.3:产品数量(四)需要通过仿真分析解答的问题1.通过对单次试验的后各个设备的输入\输出产品数,处理时间等数据进行分析,判断出系统的瓶颈,从而对各机器组的机器数量进行相应的增减,从而提高整体产出率。
2.通过改变三种产品的先后投产顺序(如先生产5个类型2的产品,再生产2个类型3的产品,最后生产10个类型1的产品),比较采用不同投产顺序对以下几个方面数值得影响:生产时间,设备工作时间,产品加工完成后,在该设备等待时间,产品在该设备平均停留时间,每个设备的输入\输出产品数,分析仿真报告数据,得出最佳投产顺序。
二、模型设计(一)概念模型1.系统分析与设计根据以上分析来设计明确模型三、提示:大作业设计报告提交内容包括选题来源说明(含来源文献)、模型设计、仿真结果分析等内容。
1.选题来源①来源说明,要求提供可独立打开的文件,并提供可供追溯查实的来源信息;②问题的应用背景说明;③问题所在系统描述,包括数据、图表等;④需要通过仿真分析解答的问题。
河大版(三起)(2023)信息技术第四册期末模拟测试卷及参考答案一、判断题1. 我们可以在Word软件中制作谜语,因为它有丰富的文本格式化功能。
____2. 在设计调查方案时,只需要考虑调查内容,不需要考虑调查对象和方法。
____3. 在图文混排中,图片的位置可以随意调整,以增强文本的视觉效果。
____4. PowerPoint软件只能用于制作幻灯片,不能用于设计图文并茂的报告。
____5. 人工智能技术可以用于语音识别、图像识别等多种场景。
____6. 人工智能就是让机器像人一样思考,所以它能完全替代人类的工作。
____7. 在Word中,我们可以使用艺术字和剪贴画来增加文档的趣味性。
____8. 设计调查报告时,应该尽可能使用复杂的数据分析和图表。
____9. 在设计小报时,文字和图片的搭配要协调,不能随意拼凑。
____10. 人工智能在我们的生活中应用广泛,如智能机器人、智能助手等。
____二、选择题11. 在Word中,如果要让文字绕图显示,应选择()功能。
A. 插入图片B. 文本框C. 图文框D. 页眉和页脚12. 设计调查方案时,首要步骤是()。
A. 确定调查方法B. 确定调查对象C. 确定调查目的D. 设计调查问卷13. 以下哪个软件最适合用于设计图文混排的报告?()A. WordB. ExcelC. PowerPointD. Access14. 人工智能技术不包括()。
A. 自动驾驶B. 语音助手C. 机器翻译D. 电子邮箱15. 在设计小报时,以下哪种做法是正确的?()A. 文字和图片颜色应尽量对比鲜明B. 文字内容应尽量多,以展示学习成果C. 图片应尽量大,以吸引读者注意D. 文字和图片应相互呼应,主题明确三、填空题1. Office软件包括Word、Excel、______等,它们可以帮助我们处理各种信息。
2. 在设计调查方案时,我们需要明确______、确定调查对象和选择合适的调查方法。
基于OSG的园区模拟驾驶仿真摘要:本程序在目前现有设备的限制下,通过OSG技术初步实现了模拟训练系统中用到的虚拟现实技术结合相关开发技术设计了系统的总体结构以及各功能模块。
系统的开发主要基于跨平台的开源图形引擎OpenSceneGraph(OSG)。
利用OSG对图形生成迅速以及对硬件的要求较低又便于移植等优势,设计出实用性强,灵活性好的的一个模拟驾驶训练系统。
关键词:OpenSceneGraph(OSG);仿真;园区模拟驾驶;虚拟现实OSG Virtual Driving SimulationAbstract: T his procedure in the existing equipment constraints, through the OSG technology realizes the virtual reality technology used in the simulation training system in the overall structure of the system and the function modules design combined with the related development technology. The development of the system is based on the cross platform open source graphics engine OpenSceneGraph (OSG). By using the advantages of OSG, such as fast graphics generation, low requirement for hardware and portability, a practical driving training system is designed.Key words: OpenSceneGraph(OSG); Simulation; Driving simulation; Virtual Reality1 图形开发包OSG1.1 OSG简介OpenSceneGraph(简称OSG)是一套开源的、跨平台的使用OpenGL技术开发基于C++平台的图形开发包。
《工业机器人虚拟仿真》期末考试试卷A卷班级__________学号______________ 姓名__________ 分数__________一、是非题(共5题,每小题2分,共10分)1.在RS中,如IRB 2600,IRB 6640,IRB 6642等机器人一般一共有六个轴。
2.Smart组件功能就是在RobotStudio中实现动画效果的高效工具。
3.构建一个系统,使其和虚拟的控制器建立关联,单击基本菜单下机器人系统,单击从布局创建系统,给系统取一个中文名名字“项目一”。
4.在RobotStudio中工业机器人运动轨迹是通过RAPID程序指令进行控制的。
5.虚拟控制器中的数据与工作站数据的同步后,可以进行仿真的播放了。
二、单选题(共5题,每小题2分,共10分)6.具有监测对象与平面相交功能的子组件是()。
A.JointMoverB. V olumeSensorC. PlaneSensorD. Queue 7.在设置排气管本地原点时,将本地原点设置在()将排气管安装到变位机法兰盘上。
A.排气管前端B.排气管末端C. 排气管中间D. 随便哪里8.若想对工作站进行缩放的话( ) ,可以对工作站进行放大或缩小。
A.滚动鼠标的滚动键B.ctrl键、shift键及鼠标左键,拖动鼠标C.按ctrl键和鼠标左键的同时,拖动鼠标D.按住键盘上的“+”“-”号9.在测量机器人底座高度时,哪种捕捉方式最合适?()A.捕捉末端B.捕捉中心C.捕捉网格D.捕捉重心10.子组件Source属于()。
A.动作B.本体C.传感器D.其他三、多选题(共3题,每题5分,共15分))11.下列说法正确的是()A.在RS中,需要在基本菜单下ABB模型库中选择所需要的机器人。
B.在“路径”上单击右键,选择“达到能力”,绿色打勾说明目标点都可到达。
C.在轨迹应用的过程中,通常需要创建工件坐标,以方便进行编程及路径修改。
D.在RS中,只能创建简单的模型,对于复杂的模型建议还是要用专业的的建模软件(如solidworks)去创建。
虚拟现实及应用技术期末大作业一、作品名称火箭升空—遥祝我国神舟十二号发射成功二、作品的构思和思想我的作品的构思来源于最近中国神州十二号载人飞船发射成功。
祝愿我们伟大的祖国建设得更富强!三、制作步骤首先是火箭主体的制作:火箭的制作比较简单但是比较繁琐,火箭的主要部分是用一个圆柱体做成的,先把高度细分成五到六部分,这样有利于更精确的针对更多的顶点进行具体操作,但又免除了多个物体对接不准确的问题,接下来就是火箭的形状的问题,就是要把圆柱体进行拉伸和压缩,选择要进行操作的点,比如说靠近火箭肚子的位置进行拉伸,让他看起来圆鼓鼓一点,靠近火箭脑袋和脚的位置压缩一下,让这个火箭有一个圆滑的流线型。
然后在火箭的顶部选取一个顶点进行拉伸,在靠近火箭底部的位置选取四个面,这四个面平均分布,对这个面进行拉伸,让支架可以有雏形,然后在突出的面上再选取最上面的面进行拉伸与延展,如此反复调整可以得到四个较为合适的支架。
接下来就是窗户的介绍,窗户是用一个圆柱辅助做出来的,把圆柱体放在火箭主体的合适位置,然后在网格这个选项里面选择布尔进行差集的选择就会得到一个中空的窗户,然后在火箭头部、尾部以及窗户的附近进行以下小细节的处理,就是把进行一个凹槽,然后火箭的上色是用阿诺德材质,然后打光渲染了一下就完成了。
烟雾的制作首先是制作一个动画的部分,第一帧就是火箭在原地,选取一个50帧,50帧的时候选择一个高度,然后分别在第一帧和第50帧的时候进行xyz 坐标轴关键帧的选择,火箭也就有了升空的动作。
创建一个3d的容器,选择合适的方向,选择一个球体作为发射器,并且将在个球体并入到火箭,进而发射器和火箭可以同时移动,打开自动调整,可以让喷气随着火箭的升空而变化。
然后对3D容器进行一系列的设置,取消重力,在内容详细信息中,提高浮力,使得粒子沉下去的同时还要往上有一个浮动,增加密度张力,提高噪点和漩涡,增加粒子的随机性。
同时调整纹理颜色、纹理白炽度和纹理不透明度,让火焰模拟的更真实一些,打开自身阴影,将颜色改成接近真实火焰的颜色。
希望以上资料对你有所帮助,附励志名言3条:一、单项选择题(共59题)1、 COSPAS/SARSAT 系统不能完成下列任务_____。
(130559:第6章EPIRB-SART设备)A、测定遇险船舶的船位B、进行遇险通信C、A4 海区遇险报警与定位D、接收和转发遇险报警2、 COSPAS/SARSAT 系统中不能使用下列示位标_____。
(130561:第6章 EPIRB-SART设备)A、156.525MHz EPIRBB、406MHz EPIRBC、121.5MHz EPIRBD、243MHz EPIRB3、 406MHz EPIRB 每小时发射_____ 。
(130564:第6章 EPIRB-SART 设备)A、36 次B、72 次C、108 次D、144 次4、 406MHz EPIRB 发射的遇险报警,必须给出的信息是_____。
(130567:第6章 EPIRB-SART设备)A、船位B、遇险性质C、船舶电台识别数字D、时间5、 406MHz EPIRB 的位置信息是_____。
(130569:第6章 EPIRB-SART 设备)A、由与EPIRB 相接的导航仪给出B、EPIRB 发射的121.5/243MHz 给出C、由COSPAS/SARSAT 系统的卫星检测D、由COSPAS/SARSAT 系统卫星共视区的LUT 检测6、 COSPAS/SARSAT 卫星通信系统具有_______功能。
(130570:第6章 EPIRB-SART设备)A、报警B、通信C、海上安全信息播发D、A、B、C 均是7、 COSPAS/SARSAT 卫星通信系统覆盖范围是_____。
(130572:第6章 EPIRB-SART设备)A、全球B、南北纬70 度以内C、南北纬70 度以外D、二极8、 406MHz EPIRB 发射功率为_____。
(130575:第6章 EPIRB-SART 设备)A、5WB、1WC、25WD、10W9、 406MHz EPIRB,每50s 发射时间为_____。
一、多选(共计25分,每题2.5分,每题答案完全一样得满分,少选、多选、错选均不得分。
)1、以下是车削工艺特点的是()A. 易于保证工件各加工面的位置精度B. 切削过程较平稳避免了惯性力与冲击力,允许采用较大的切削用量,高速切削,利于生产率提高。
C. 适于有色金属零件的精加工D. 刀具简单参考答案:【A;B;C;D】2、CAD/CAM 的系统软件可分为哪几个层次( )A. 系统软件B. 支撑软件C. 支撑软件D. 辅助软件参考答案:【A;B;C】3、曲面的构建方法有()。
A. 举升曲面B. 昆氏曲面C. 扫描曲面D. 直纹曲面参考答案:【A;B;C;D】4、计算机仿真包括:(ABC)A. 数理建模B. 仿真建模C. 仿真实验D. 生产代码参考答案:【A;B;C】5、目前,CAD/CAM 技术正继续向( )方向发展。
A. 集成化B. 网络化C. 智能化D. 虚拟化参考答案:【A;B;C;D】6、SolidWorks的特点是()。
A. 易学易用B. 功能强大C. 优化设计D. 技术创新参考答案:【A;B;D】7、SolidWorks的功能有()。
A. 三维图形导出二维工程图B. 装配设计C. 简单的有限元分析D. CAM参考答案:【A;B;C;D】8、派生式CAPP的特点是( )A. 使用CAPP专家系统自动生成工艺B. 在工艺文件库中查询已有工艺路线并作修改C. 通过GT代码重新生成工艺路线D. 通过决策逻辑产生工艺路线参考答案:【B;C】9、典型CAD系统的硬件主要组成部分包括( )。
A. 主机B. 实时I/0装置C. I/O装置D. CNC装置E. 外存贮器参考答案:【A;B;C;E】10、斯沃加工测量的功能包括()A. 特征点B. 特征线C. 距离测量D. 粗糙度分布参考答案:【A;B;C;D】二、判断(共计25分,每题2.5分)11、使用G28 X100 Y120时,X、Y的坐标值为目标点。
基于OSG的园区模拟驾驶仿真摘要:本程序在目前现有设备的限制下,通过OSG技术初步实现了模拟训练系统中用到的虚拟现实技术结合相关开发技术设计了系统的总体结构以及各功能模块。
系统的开发主要基于跨平台的开源图形引擎OpenSceneGraph(OSG)。
利用OSG对图形生成迅速以及对硬件的要求较低又便于移植等优势,设计出实用性强,灵活性好的的一个模拟驾驶训练系统。
关键词:OpenSceneGraph(OSG);仿真;园区模拟驾驶;虚拟现实OSG Virtual Driving SimulationAbstract: T his procedure in the existing equipment constraints, through the OSG technology realizes the virtual reality technology used in the simulation training system in the overall structure of the system and the function modules design combined with the related development technology. The development of the system is based on the cross platform open source graphics engine OpenSceneGraph (OSG). By using the advantages of OSG, such as fast graphics generation, low requirement for hardware and portability, a practical driving training system is designed.Key words: OpenSceneGraph(OSG); Simulation; Driving simulation; Virtual Reality1 图形开发包OSG1.1 OSG简介OpenSceneGraph(简称OSG)是一套开源的、跨平台的使用OpenGL技术开发基于C++平台的图形开发包。
它的出现给很多高性能图形应用程序开发提供了便捷的方法,尤其在图形仿真、科学计算可视化等方面运用较广。
它为开发者提供很多实用性很强的工具,充分利用了标准模版库(STL)以及设计模式。
最重要的是,他不仅提供了开源的模型,还是免费的,这很好的满足了开发者的需求。
总的说来,OSG的特性可以归纳为以下几点:高性能,快速开发,数据装载,节点工具箱,可移植性。
正是因为这些特性,才使得OSG很快被广大图形开发工作者很快的接受。
1.2 OSG场景组织场景图里面包含了各种各样类型的节点来执行不同的用户提出的不同功能。
比如说,常见的又开关节点,细节层次节点,变换节点等等,它们分别控制不同的信息和状态。
使用继承的机制又提供了多样性,在一个共有的基类下,根据需求各自派生出用户特定的功能的方法。
每个节点都以数据的结构存储,用以描述自己的属性信息。
同时,每个节点也是具备逻辑功能的一个对象,除了自身属性的访问,还要支持绘制引擎定义的多种操作。
1.3 OSG库介绍OSG中,集成了许多的库,其中几个比较常用的库有:osg库、osgViewer库、osgUtil库、osgDB 库。
下面简要介绍一下这几个库:osgViewer库:这个库是OSG 的2.0 版本新增的,它包含了场景中视口及可视化内容的管理类。
osgViewer 已将OSG 集成到多种多样的视窗系统中。
osgDB库:此链接库包括了建立和渲染3D 数据库的类与函数。
其中包括用于2D 和3D 文件读写的OSG 插件类的注册表,以及用于访问这些插件的特定功能类。
osgDB 数据库分页机(database pager)可以支持大型数据段的动态读入和卸载。
osg库:包含了用于构建场景图形的场景图形节点类,用作向量和矩阵运算的类,几何体类,以及用于描述和管理渲染状态的类。
osg 库中还包括3D 图形程序所需的典型功能类,例如命令行参数解析,动画路径管理,以及错误和警告信息类。
osgUtil库:包括的类和函数,可以用于场景图形及其内容的操作,场景图形数据统计和优化,以及渲染器的创建。
它还包括了几何操作的类,例如Delaunay 三角面片化(Delaunay triangulation),三角面片条带化(triangle stripification),纹理坐标生成等。
2 系统设计概述2.1需求分析本次系统设计是在虚拟驾驶仿真的基础上进行理解与学习,本着进一步学习OSG的目的,对原有程序进行分析理解,虽然没达到能马上个人完成程序的程度,但是对OSG与C++的理解都进一步加深,下一步希望在此基础上尽快做出属于自己的程序。
在目前现有设备的限制下,通过OSG技术初步实现仪表盘驾驶仿真部分,仪表盘的各种硬件用键盘控制进行模拟。
最后能够达到用户能够用键盘操控汽车在场景中进行行驶,并且要符合自然规律,另外还要加上不同天气等自然因素来使效果更加的逼真,要给人最真实的感觉的话,就必须实现碰撞检测。
2.2 功能规定一、场景和汽车模型的加载,开始后要能够呈现应有的场景,视角可以在第一人称视角和第三人称视角进行切换。
并且在导入的场景里面,场景中模型的排列都应该遵循自然规律。
二、用键盘的按键进行汽车状态的改变操作。
三、根据场景里面的地形变化,汽车模型也必需根据它与地面的接触点和邻近地形的局部特征进行姿态的变换,以避免出现部分陷于地下或悬于空中等违背自然规律的现象。
汽车在和场景中其他物体交互的过程中要实时监测周围的变化。
四、在场景中,利用场景结点可以带有一些附加信息的这个特点,可以在场景中放一些带有附加信息的物体,当汽车检测到这些物体的时候就能够触发相应自己定义的各种事件(如显示提示)从而可以提醒操作者发出指令改变汽车状态使汽车避免发生碰撞。
五、如果汽车在行驶过程中发生了碰撞,则汽车应该能够立即停止,不能穿过障碍物。
2.3 场景结构图3 系统功能实现3.1 构造环境模块该系统场景包含的主要元素有道路,房屋,小树等,道路情况又要分为转弯的、直行的、交叉路口的。
在马路两边需要有围栏,房子和小树也都分布在不同的地方。
凡是没有房屋小树以及马路的地方,都用草地填充。
首先从构造函数createStreet()、createGrass()分别用来创建道路、创建栅栏、创建草地、创建小树、创建房屋。
创建马路的基本方法是:在场景中绘制一个长方形图元,然后给该图元添加一个马路纹理,最后再把这些图元组合起来,就可以形成横七竖八的马路。
创建栅栏的基本方法是:在场景中绘制数个长ExampleViewer root vmViewerPositionEventHandlerCamerarootLightHelp SpeednodeSpotlampPrecipitationEffectSkybox MySceneCompassNodePlaycarAutocarEventcallbackvmmenuwidgetBackgroundPoisition方形图元,然后给每个图元添加栅栏纹理,最后再把所有这些图元组合起来,即可以得到我们的栅栏。
创建草地的基本方法:绘制一个面积很大正方形,然后给该图元添加草地纹理,即可得到我们的草地场景。
创建树木的基本方法:成功创建马路后,然后在需要的时候在马路边上添加树木模型,即可创建马路边上的树木。
图3.1 用一些基本的模型构造出来的驾驶场景3.2 摄像机模块OSG的视图窗口中自带有摄像机的接口,我们只需要继承OSG中最基本的摄像机类,然后重写符合我们具体情况的摄像机操作器,最后在把新的类设置为场景中的摄像机操纵类,即可达到控制场景中的摄像机自由移动的目的。
主要的摄像机操纵函数为虚函数handle();我们所有的交互操作都是在这个函数里面完成的。
摄像机时刻是处于汽车的驾驶位置上的,所以,在更新汽车位置的同时,也要时刻更新摄像机的位置,使其始终处于汽车的驾驶位置上。
3.3 汽车驾驶模块给场景的根节点设置了一个事件回调函数:root->setEventCallback(new CMyEventCallback);此回调类的operator()会保证在程序执行的每一帧至少会调用一次,然后我们程序中除了摄像机操纵外的所有交互都是在这个函数里面完成的。
在构造汽车节点的时候,我们给该节点设置了一个名字,然后我们在CMyEventCallback类中通过查找该汽车节点的名字从而得到该汽车节点的指针,最后我们即可根据具体的情况操纵该指针指向的对象。
具体实现为:根据键盘的按键判断是否需要改变汽车的移动速度或者是汽车是否需要旋转,如果是的话,则更新汽车的行驶速度和汽车绕整个场景Z轴的旋转角度。
最后在根据当前汽车的旋转角度和行驶速度来更新汽车的位置。
汽车实际位置的改变为汽车的速度乘以汽车的旋转矩阵,计算得到的结果即为汽车在汽车这个局部坐标系中的相对位移。
3.4 粒子效果模块OSG中自带了粒子系统,所以,程序中雨天和雪天的模拟就可以直接使用OSG自带的系统。
其粒子系统的初始化代码为:osg::ref_ptr<osgParticle::PrecipitationEffect> createPrecipitationEffect(){osg::ref_ptr<osgParticle::PrecipitationEffe ct> precipitationEffect = newosgParticle::PrecipitationEffect;//新建一个粒子系统precipitationEffect->rain(0.0); //粒子系统中雨的浓度precipitationEffect->snow(0.0); //粒子系统中雪的浓度precipitationEffect->setCellSize(osg::Vec3( 2.0f, 2.0f, 2.0f));precipitationEffect->setParticleSize(0.8f); //雪花尺寸precipitationEffect->setParticleColor(osg:: Vec4(1.0f, 1.0f, 1.0f, 1.0f));//雪花颜色precipitationEffect->setWind(osg::Vec3(2, 0, 0));//设置环境方向precipitationEffect->setUseFarLineSegments( true);precipitationEffect->setName(gPrecipitation EffectName);//设置粒子节点的名称return precipitationEffect.get();}3.5 碰撞检测模块为了达到较为简单的碰撞效果,我们是取三个点来代表汽车,然后把这三个点加上汽车的行驶速度得到三条线段,最后将这三条线段与整个场景做碰撞检测,如有有任何一条线段与场景发生了碰撞,则判断汽车与场景发生了碰撞。