导弹飞行过程的虚拟现实

2014-09-04 00:57谭艳丽
长春工业大学学报 2014年5期
关键词:视景源代码虚拟现实

谭艳丽

(太原工业学院 电子工程系, 山西 太原 030008)

导弹飞行过程的虚拟现实

谭艳丽

(太原工业学院 电子工程系, 山西 太原 030008)

基于Vrmlpad软件平台,应用VRML开发导弹飞行过程仿真,通过交互界面的设计、三维对象的建模、模型的数据驱动以及视点的变化,建立了导弹的三维模型,制作了地形、天空等三维仿真场景,该系统能够实现导弹飞行的可视化仿真,可通过视景仿真终端从任意角度和距离观察导弹的飞行过程。

虚拟现实; 导弹; 飞行; Vrmlpad

0 引 言

导弹的杀伤力和破坏力极其巨大,而导弹实验的危险性也不可估量。视景仿真通过建立数学模型来代替导弹系统,构造导弹的三维模型和再现飞行真实环境,能够达到较逼真的仿真效果,从而避免了导弹实验可能发生的意外事件[1]。在导弹飞行过程的仿真中会产生大量的数据,虚拟现实(VRML)仿真将生成的数据通过图像来表示,这种直观感觉更有利于对仿真结果的分析。

1 虚拟场景中背景的建立

将导弹飞行空间背景分为两部分:天空和地面,二者之间以地平线分割。在VRML中,通过background节点不同的颜色效果来设定天空和地面的空间背景[2]。

1.1创建天空

应用background节点创建一个颜色由蓝色逐渐变为绿色的天空效果图。源程序如下:

#VRML V2.0 utf8 Group {

children [Background {

skyColor [0.0 0.0 1.0 0.1 0.1 1.0 0.1 0.6 0.6]

skyAngle [1.047 1.571]}]}

效果如图1所示。

图1 创建天空图

在以上VRML文件中,用background节点的skycolor域指定3种天空着色颜色:纯蓝色、浅蓝色和绿色。在skyangle域中,指定3个天空角:0°,45°,90°,将纯蓝色指定天空角为0°;浅蓝色指定天空角为45°;绿色天空角为90°,3个颜色之间的区域颜色自动平滑过渡[3-4]。

1.2创建地面

使用background节点设置场景的地面颜色背景,在groundcolor域设置使用3个地面颜色:0.0,1.0,0.0(绿色);0.0,0.5,0.2(黑色);1.0,1.0,1.0(白色)。在groundangle域设置使用2个地面角度:1.047 rad和1.571 rad。源代码如下:

#VRML V2.0 utf8 Group {

children [Background {ground

Color[0.0 1.0 0.0 0.0 0.5 0.2 1.0 1.0 1.0]

groundAngle[1.047 1.571]}}

效果如图2所示。

图2 创建地面图

1.3创建全景图

将以上background节点合在一个VRML文件中,创建一个包含蓝色天空和灰色地面的空间背景。源代码如下:

#VRML V2.0 utf8 Group {

children [Background {

skyColor [0.0 0.0 1.0 0.1 0.1 1.0 1.0 1.0 1.0]

skyAngle [1.047 1.571]

groundColor[0.9 0.9 0.9 0.1 0.1 0.0 1.0 1.0 1.0]

groundAngle[1.024 1.571]}]}

效果如图3所示。

图3 创建全景图

2 导弹三维模型的建立

通过运用VRML的挤出造型节点Extrusion来创建的导弹前翼、后翼、弹头、弾身及弹尾的造型[5]。

导弹前翼源代码如下:

Shape { appearance DEF my1 Appearance { material Material {} }

geometry Extrusion {

crossSection [-0.02 0.5 -0.02 -0.55 0.02 -0.550.02 0.55 ]

spine [0 0.5 0 0 0.85 0 0 1.0 0 ]

scale [1 1,0.68 1,0 0.33]

solidFALSE }},

Shape { appearance USE my1 geometry Extrusion {

crossSection [0.55 0.02 0.55 -0.02 -0.55 -0.02 -0.55 0.02]

spine [0 0.5 0 0 0.85 0 0 1.0 0]

scale [1 1,1 0.68,0.33 0]

solidFALSE

}

}

效果如图4所示。

图4 导弹前翼

导弹后翼源代码如下:

Shape{ appearance DEF my2 Appearance { material Material {}}

geometry Extrusion {

crossSection [0.8 0.02 0.8 -0.02 -0.8 -0.02 -0.8 0.02]

spine [0 -3.25 0 0 -2.5 0 0 -2.0 0]

scale [1 1,1 0.77,0.24 0]

solid FALSE}},

Shape { appearance USE my2

geometry Extrusion {

crossSection [0.02 0.8 0.02 -0.8 -0.02 -0.8 -0.02 0.8]

spine [0 -3.25 0 0 -2.5 0 0 -2.0 0]

scale [1 1,0.77 1,0 0.24]

solidFALSE }},

]

}

]

效果如图5所示。

导弹弹头与弾身源代码如下:

Shape { appearance Appearance { material DEF My Material {

diffuseColor 1 1 0

shininess 0.7

specularColor 1 0.7 0

}

}

geometry Extrusion{ creaseAngle1.57

Curcio等[4]在2001年首次利用直接接触式膜蒸馏浓缩NaCl溶液并得到NaCl晶体。Felinia等[5]设计了不同结构和形状的中空纤维膜,并应用到直接接触式膜蒸馏结晶中处理高浓度NaCl溶液从中回收水和NaCl晶体,研究表明单层的聚偏氟乙烯(PVDF)膜比双层PVDF膜更具有抗润湿能力。关云山等[6]用膜蒸馏—结晶耦合技术从高浓度KCl-MgCl2-H2O溶液中回收KCl,他们在实验中研究了溶液的浓度、循环流速对膜性能的影响。但是,膜蒸馏技术在卤水浓缩方面的应用研究比较少。

crossSection [1.0 0 0.9239 0.3827 0.7071 0.7071

0.3827 0.9239 0.0 1.0 -0.3827 0.9239

-0.7071 0.7071 -0.9239 0.3827 -1 0

-0.9239 -0.3827 -0.7071 -0.7071 -0.3827 -0.9239

-1 0.3827 -0.9239 0.7071 -0.7071

0.9239 -0.3827 1 0]

spine [0 -3.25 0 0 0.5 0 0 1.0 0

0 3.822 0 0 3.843 0 0 3.850 0]

scale [0.4 0.4 0.4 0.4 0.38 0.38

0.06 0.06 0.04 0.04 0.02 0.02

0 0]

solid FALSE

}

}

效果如图6所示。

图6 弹头弹身

3 导弹飞行过程仿真

VRML通过一个给定的时间传感器以及一些类的插补器节点对场景中的动画进行控制[6]。其基本思想是通过一个时间传感器给出某时钟,该时钟用以控制动画效果,且包含某些动画控制参数,如动画效果的开始时间、停止时间、循环周期以及是否循环等;然后通过该时钟的事件输出在虚拟世界中驱动插补器节点产生相应的动画效果[7]。导弹飞行过程的动画由多发送事件经过4个阶段组成:触发阶段、逻辑处理阶段、记时阶段、引擎和目标阶段[8]。源代码如下:

#导弹飞行过程控制:

Group {

children [ DEF clock TimeSensor {

enabledTRUE

cycleInterval 10

loop TRUE }

DEF daodan1 PositionInterpolator {

key [ 0,0.1,0.2,0.3,0.4,0.5,

0.6,0.7,0.8,0.9, 1]

keyValue [0 1 0,0 4 0,0 8 0, 0 11 0,0 15 0, 0 20 0,

0 24 0,0 27 0,0 30 0,0 35 0,0 40 0]

}

DEF daodan2 OrientationInterpolator{

key [ 0,0.5, 1]

keyValue [1 0 0 0,1 0 0 0.5 ,1 0 0 1〗 } ]

}

ROUTE clock.fraction_changed TO daodan1.set_fraction

ROUTE clock.fraction_changed TO daodan2.set_fraction

ROUTE daodan2.value_changed TO view.orientation

ROUTE daodan1.value_changed TO dongfeng.translation

动画效果如图7所示。

图7 导弹飞行过程

4 结 语

通过VRML中的background节点创建了天空、大地以及导弹飞行背景图。运用挤出造型节点Extrusion创建了导弹的前翼、后翼、弹头、弾身、弹尾,建立了导弹的三维模型。通过导弹飞行过程动画流程4个阶段实现了导弹飞行过程的仿真。采用数学模型代替导弹系统,一定程度上避免了导弹实验可能发生的意外,实现了导弹飞行的可视化仿真。

[1] 屈年赦.三维建模和可视化方法的研究[D]:[硕士学位论文].阜新:辽宁工程技术大学,2005:21-24.

[2] 吴义明,齐欢.导弹对抗的视景仿真[J].计算机仿真,2005,22(8):28-31.

[3] 凌峰.飞行视景仿真系统研究与开发[D]:[硕士学位论文].西安:西北工业大学,2003:56-60.

[4] Robert Stone. Virtual reality for interactive training:an industrial practitioner’s viewpoint.[J].Human-Computer Studies,2001,55(4):699-711.

[5] 董光波.某型导弹飞行攻击阶段仿真的研究与实现[J].系统仿真学报,2003,15(3):408-411.

[6] 康凤举.现代仿真技术与应用[M].北京:国防工业出版社,2001:30-32.

[7] J D Gans, D Shalloway. Qmol a program for molecular visualization on Windows-based PCs[J].J.Mol.Graph,2001,19(6):557-559.

[8] 简小征.某导弹飞行过程的可视化仿真研究[D]:[硕士学位论文].西安:西北工业大学,2004:78-80.

Missile flight process virtual reality

TAN Yan-li

(Department of Electronic Engineer, Taiyuan Institute of Technology, Taiyuan 030008, China)

Based on vrmlpad platform, missile flight process is simulated with VRML. The 3D model of the missile is established by designing interface, building 3D object, finishing data-driven and view changes. The 3D earth topography and sky scenes are created. The simulation system can realize the missile flight visualization, and the flight process can be viewed from any distance and angle at terminals.

virtual reality; missile; flight; Vrmlpad.

2014-07-20

谭艳丽(1978-),女,汉族,山西太原人,太原工业学院讲师,硕士,主要从事信息通信、图像处理、模式识别方向研究,E-mail:wubotyl@126.com.

TP 312

A

1674-1374(2014)05-0543-04

猜你喜欢
视景源代码虚拟现实
基于TXL的源代码插桩技术研究
虚拟现实技术在游戏设计中的应用及研究
软件源代码非公知性司法鉴定方法探析
基于语法和语义结合的源代码精确搜索方法
REALITY BITES
风口上的虚拟现实
虚拟现实技术向科幻小说借灵感
揭秘龙湖产品“源代码”
全回转拖轮运动建模与视景仿真
基于Vortex与Vega Prime的车辆模拟器动力学与视景仿真