【Matlab系列】之虚拟现实仿真及其可视化方法
DATE: 2019-3-3
1、参考
https://ww2.mathworks.cn/help/sl3d/f4-29490.html?requestedDomain=zh
https://www.docin.com/p-1777534396.html
2、VRML语言基本语法
参考自:https://blog.csdn.net/cfqcfqcfqcfqcfq/article/details/73870608
一、VRML是什么
VRML是虚拟现实造型语言 (VirtualReality Modeling Language) 的简称。
二、VRML文件的组成部分和文件头
VRML文本的文件名后缀是 .wrl,这是一种ASCII文本文件。VRML文件可以包括四个主要成分:
VRML文件头
原型
造型和脚本
路由
每个文件都有一个文 件头,VRML1.0的文件头和2.0的文件头是不一样的。VRML1.0的文件头是#VRMLV1.0 asciiVRML 2.0的文件头是,我们这里只讨论VRML2.0#VRML V2.0 utf8 在VRML文件中可以加入注解,只要在注解前加入#即可。下面是一个简单的VRML文件,它在三维空间中建立一个立方体。
#VRMLV2.0 utf8
Shape {
appearance Appearance { }
material Material { }
}
geometry Box { }
}
三、几个基本造型
所有VRML造型都使用Shape节点创建。
Shape节点的语法是:
Shape{
appearance NULL
geometry NULL
}
其中appearance域的值定义一个节点,该节点定义造型的外观,包括颜色和表面纹理等。当它为NULL值时建立的造型是无纹理的白色有阴影物体。它将在后面介绍。geometry域的值定义一个节点,该节点定义造型的3D构造及几何结构。典型的几何结构有Box,Cone,Cylinder和Sphere,它们都可以作为geometry的值。
Box节点的语法是
Box{
size 2.0 2.0 2.0 #长 高 宽(x y z 三个方向,注:2.02.0 2.0是缺省值,下同)
}
Cone节点的语法是Cone{
bottomRadius 1.0 # 圆锥底部半径
height 2.0 # 圆锥的高
side TRUE # 是否创建圆锥的锥面
bottom TRUE # 是否创建圆锥的底
}
Cylinder节点语法Cylinder{
radius 1.0 # 园柱底的半径
height 2.0 # 园柱高
side TRUE # 是否创建园柱曲面
top TRUE # 是否创建园柱顶
bottom TRUE # 是否创建园柱底
}
Sphere节点语法Sphere{
radius 1.0 # 球体的半径
}以上语法中的值,是缺省值,下同。下面是一个简单的VRML文件,它创建一个白色的,无纹理的长、高、宽分别为2.2,1.0和1.5的长方体。
#VRMLV2.0 utf8
Shape {
appearance Appearance {
material Material { } # 白色无纹理的物体(material是appearance中的一个属性,我们以后接触)
}
geometry Box { size 2.2 3.0 1.5 } # 长方体
}
3、虚拟现实模型wrl可视化方法
方法一:
参考网址: https://wenda.so.com/q/1535522172214075
myworld = vrworld('vrmount.wrl') //加载VRWORLD
open(myworld); // 打开VRWORLD
set(myworld, 'Description', 'My first virtual world'); //设置VRWORLD相关参数
view(myworld) // VRWORLD
xx=vrworld('wrl/cross.wrl'); //加载VRWORLD
vrfigure(xx)//显示VRWORLD
xx=vrview('wrl/cross.wrl');//直接显示VRWORLD
方法二:
Record animations of Simulink 3D Animation virtual worlds
参考网址:https://ww2.mathworks.cn/help/sl3d/share-visualizations.html
VRView中动画自动转录为avi视频文件的方法:
VRview中,Recoding–》Capture and Recording Paramters选择Recode to AVI,
Record mode选择Scheduled,Start time设置为0,Stop time设置为30或者需要设置的值即可。