主要内容

旋转膜的MATLAB GUI

vrmemb示例展示了如何使用MATLAB®生成的三维图形对象与Simulink®3D动画™。金宝app著名的薄膜由logo函数生成,并使用MATLAB标准函数VRML保存为VRML格式。您可以以这种方式保存所有Handle Graphics®对象,并将它们与Simulink 3D Animation一起用作相关虚拟世界的组件。金宝app

启动示例后,您将看到一个带有两个滑块和三个复选框的控制面板。使用滑块旋转和缩放膜,同时使用复选框确定要围绕哪个轴旋转。

在VRML场景中,注意文本对象是很有趣的。它是VRML公告牌节点的子节点。您可以配置此节点,使其本地z轴始终指向查看器。这对于虚拟控制面板和头显(HUD)建模非常有用。

创建一个World对象

我们首先创建一个VRWORLD类的对象,它表示虚拟世界。构成世界的VRML文件以前是使用Simulink 3D动画产品中包含的3D世界编辑器制作的。金宝app文件名为膜。x3d。

Wh = vrworld(“membrane.x3d”);

膜对象是使用'logo'函数生成的,并使用' VRML '函数保存为VRML格式。在VRML编辑器中经过一些小的修改后,它可以直接被Simulink 3D动画使用。金宝app

启动示例后,您将看到一个带有两个滑块和三个复选框的控制面板。滑动条用于旋转和缩放膜,而复选框决定围绕哪个轴旋转。

打开虚拟世界

世界必须先被打开,才能被利用。这是通过OPEN命令完成的。

打开(wh);

访问VRML节点

要访问VRML节点,必须创建适当的VRNODE对象。节点由它的名称和它所属的世界标识。

h .膜= vrnode(wh,“膜”);H.view1 = vrnode(wh,“View1”);

创建对话框

对话框用于交互式地更改由刚刚创建的VRNODE对象引用的VRML节点的字段值。

对话(“位置”,[358 402 530 107],“名字”S金宝appimulink 3D动画示例...“WindowStyle”“正常”...“CloseRequestFcn”...'w = vrworld("膜。x3d ");关闭(w);试着;删除(w);结束;closereq”);

创建旋转控件

uicontrol (“父”figh,“位置”,[84 68 80 14],“HorizontalAlignment”“左”...“字符串”“旋转”“风格”“文本”);H.rotation = uicontrol(“父”figh,“风格”“滑块”“位置”,[164 65 352 20],...“最小值”0,“马克斯”, 2 *π,...“回调”, ('cur_rot = get(H.rotation, " Value ");'...'cur_x = get(H.xaxis, " Value ");'...'cur_y = get(H.yaxis, " Value ");'...'cur_z = get(H.zaxis, " Value ");'...'if (cur_x || cur_y || cur_z)'...' H.membrane.rotation = [cur_x cur_y cur_z cur_rot];'...“结束”]);

创建缩放控制

H.zoom = uicontrol(“父”figh,“风格”“滑块”...“位置”,[164 24 352 20],“价值”, 1...“回调”“H.view1。fieldOfView = 0.25 + 0.55 *(买(H.zoom " Value "));“);uicontrol (“父”figh,“位置”,[84 27 80 14],“字符串”“放大”...“风格”“文本”“HorizontalAlignment”“左”);

添加复选框

H.xaxis = uicontrol(“父”figh,“位置”,[24 70 60 20],“字符串”“X”...“风格”“复选框”);H.yaxis = uicontrol(“父”figh,“位置”,[24 42 60 20],“字符串”“Y”...“风格”“复选框”);H.zaxis = uicontrol(“父”figh,“位置”,[24 14 60 20],“字符串”“Z”...“风格”“复选框”“价值”1);setappdata (figh“处理”、H);

浏览虚拟世界

虚拟世界可以在VRML查看器中查看。金宝appSimulink 3D Animation提供了两种查看虚拟世界的方式——内部查看器(默认方法)和外部查看器(与Web浏览器集成,在某些平台上可用)。我们将使用view函数查看虚拟世界。

视图(wh);

该示例通过关闭控制面板完成。