主要内容

建立并连接虚拟世界

介绍

此示例显示了如何使用3D世界编辑器创建一个简单的虚拟世界。该示例不会显示您可以使用编辑器执行的一切。但是,该示例确实向您展示了如何执行一些基本任务以开始。

此示例假定您已将默认编辑器设置为3D世界编辑器。有关详细信息,请参阅设置默认编辑器

此示例描述了构建虚拟世界的简化版本的步骤,您将在Matlab中输入此命令®命令窗口:

编辑(vrworld('vrdeform.wrl'))

定义问题

假设您想在虚拟现实中模拟和可视化球体的变形。在您的虚拟世界中,您希望有两个盒子代表刚性板(B1,B2)和它们之间的弹性球。所有三个物体都是中心对齐的X-轴。盒子B1和B2以相同的速度向S移动,但它们在相反的方向上移动。当他们到达球体时,他们开始通过减少它来使其变形X尺寸并伸展其yZ.方面。

这是这个虚拟世界的外观方式:

下表列出了为此示例创建的对象的位置和尺寸。

目的 中心位置 方面

B1.

[3 0 0]

[0.3 1 1]

B2.

[-3 0 0]

[0.3 1 1]

S.

[0 0 0]

r = 0.9

万博1manbetx®3D动画™产品包括教程模型vrtut3.。这种简化的模型模拟了弹性球的变形。与刚性块碰撞后,球体的X尺寸从1到0.4减小。此外,yZ.尺寸膨胀以保持变形球体 - 椭圆形常数的体积。模型中的其他块提供了正确尺寸的向量万博1manbetxSimulink 3D动画堵塞。当球体变形为其原始尺寸的0.4倍时,模拟停止X方向。

您的第一个任务是打开一个Simulink模型并添加一个万博1manbetx万博1manbetxSimulink 3D动画块到您的模型。

添加A.万博1manbetx3d动画堵塞

此过程使用Simulink模型万博1manbetxvrtut3.展示如何添加一个万博1manbetxSimulink 3D动画块到您的模型。该模型产生B1位置的值,B2的位置和S的尺寸(如定义问题)。

  1. 打开教程#3例子。

    1. 在打开的页面顶部,选择开放式

    2. 保存vrtut3.文件到MATLAB工作文件夹。

  2. 在MATLAB中,将当前文件夹更改为MATLAB工作文件夹。

  3. 在MATLAB命令窗口中,键入:

    vrtut3.

    使用万博1manbetx一个包含的模型打开一个模拟窗口万博1manbetxSimulink 3D动画VR信号膨胀机块,但没有VR水槽块从模型中写入数据万博1manbetxSimulink 3D动画。相反,这种模型使用范围块暂时监视相关信号。

  4. 从MATLAB命令窗口,键入

    vrlib.

    万博1manbetxSimulink 3D动画图书馆打开。

  5. 从库窗口,拖放拖放VR水槽块到Simulink图。万博1manbetx然后,您可以关闭库浏览器窗口。

您的下一个任务是创建一个虚拟世界,您将与之关联VR水槽堵塞。看打开一个新的虚拟世界

打开一个新的虚拟世界

您必须创建一个虚拟世界以连接到Simulink模型以可视化信号。万博1manbetx

此过程打开一个新的虚拟世界,在其中添加节点以可视化模型的信号vrtut3.。虚拟世界和Simulink模型之间的连接要求该模型包括一个万博1manbetxVR水槽块,如添加Simu万博1manbetxlink 3D动画块

  1. 使用空虚拟世界启动3D世界编辑器。从Matlab Toolstrip,在应用标签,在仿真图形和报告部分,点击3D世界编辑

    3D世界编辑器显示:

    • 在左窗格中,只有一个虚拟场景树节点

    • 在右窗格中,一个空的虚拟世界

    • 在底部窗格中,用于编辑对象的空窗格

  2. 您可以在任何时候保存虚拟世界。保存虚拟世界vrtut3.wrl.在你的同一工作文件夹中vrtut3.文件驻留。不要关闭3D世界编辑。

您的接下来的两个任务创建了一个虚拟世界即可使用vrtut3.模型:

添加节点

创建盒子

定义虚拟世界对象涉及定义节点的层次结构。此示例显示如何定义转变下面的节点节点,每个转变节点包括层次结构孩子们形状外貌几何学具体形状(在这种情况下,一个盒子)节点。

  1. 在左窗格中的树中,单击(最顶层的项目)。

  2. 添加A.转变节点,使用以下菜单选择序列。

  3. 这个转变节点适用于B1框。命名为转变节点:

    1. 右键单击转变节点。

    2. 选择编辑名称菜单项。

    3. 在左侧的编辑框中转变节点,类型B1.

  4. 添加A.形状节点:

    1. 展开B1变换节点。

    2. 选择孩子们节点。

    3. 添加A.形状节点,使用以下菜单选择序列:

  5. 加一个外貌形状节点的节点:

    1. 在下面形状节点,选择外观(SFNODE)节点。

    2. 加一个外貌节点,使用以下菜单选择序列。

  6. 添加A.材料节点到外貌节点:

    1. 展开(外貌)节点并选择材料(SFNODE)节点。

    2. 添加A.材料节点,使用以下菜单选择序列。

  7. 添加A.盒子节点到几何学节点:

    1. 选择几何(SFNODE)节点(形状)节点。

    2. 添加A.盒子节点,使用以下菜单选择序列。

    通过所有节点扩展,3D世界编辑器现在显示了一个框虚拟世界展示窗格。

  8. 通过编辑它使盒子变小尺寸财产:

    1. 选择尺寸财产的财产盒子节点。

    2. 在里面对象属性编辑窗格在3D世界编辑器的底部,输入0.3在第一列,1在第二列和第三列中。

    3. 点击申请

    盒子变小。

  9. 通过改变右侧将盒子移动到右侧翻译(sfvec3f)财产的财产B1(变换)节点。在里面对象属性编辑窗格,将第一列设置为3.并留下第二列和第三列0.

  10. 添加一个类似于第一个框的第二个框。

    1. 在下面节点,添加一个转变节点(见第2步)并命名它B2.(见第3步)。

    2. 复制形状节点。在下面B1变换节点,右键单击形状节点在B1变换节点并选择复制菜单项。

    3. 将复制的形状节点粘贴到B2变换节点。在下面B2变换节点),右键单击孩子们节点并选择粘贴节点>粘贴菜单项。

      与之B1.节点折叠和B2.节点扩展后,3D世界编辑器看起来像以下图形。

  11. 通过更改左侧的框移动到左侧的框翻译财产的财产B2(变换)节点。在里面对象属性编辑窗格,将第一列设置为-3并留下第二列和第三列0.

创造一个球体

您的下一个任务是在两个框之间添加一个球体。本节假定您已完成所描述的任务添加节点

  1. 让它更容易关注树结构窗格在您要添加的节点上,折叠B1(变换)B2(变换)节点。

  2. 在左窗格中的树中,单击节点。

  3. 添加A.领域节点。3D世界编辑器包括构建虚拟世界的对象库,包括一个领域目的。

    添加A.领域库对象使用以下菜单选择序列。

    从组件库文件夹列表中,选择形状文件夹,然后选择SPINE.WRL.文件。

  4. 选择转变节点并命名它S.

    与之变换节点完全扩展和另一个转变节点折叠,3D世界编辑器看起来像以下图形。

  5. 制作蓝色,下面材料节点,选择漫反应财产。在里面对象属性编辑窗格,将第一个列值更改为0.2,第二栏1,和第三列1

  6. 保存虚拟世界文件。

您的下一个任务是将模型输出连接到万博1manbetxSimulink 3D动画在Simulink模型中块。万博1manbetx看链接到Simulin万博1manbetxk模型

链接到A.万博1manbetx模型

使用VR接收器块创建虚拟世界和Simulink模型后,定义模型信号与虚拟世界之万博1manbetx间的关联。

笔记

此过程使用模型vrtut3.举个例子。它假设您已打开该模型,并且您已添加VR接收器块,并且您已创建一个名为Virtual Worldvrtut3.wrl.。请参阅从中开始的教程添加Simu万博1manbetxlink 3D动画块

  1. 打开VR水槽阻止参数对话框。在Simuli万博1manbetxnk编辑器中,双击VR水槽堵塞。

  2. 旁边的源文件编辑框,单击浏览

  3. 选择vrtut3.wrl.,然后单击打开

  4. 在里面输出窗格,选择自动打开查看器。此复选框指定在运行模型时启动虚拟世界的查看器。

  5. 为了描述参数,类型vrtut3.

  6. 在里面VR水槽对话框,单击申请

  7. 在里面树结构窗格,选择B1翻译B2翻译, 和s鳞片复选框作为要连接到模型信号的节点。点击好的

    VR水槽块出现相应的输入。

  8. 删除三个范围块及其相关的输入信号线。

  9. 将输入线从两者连接VR信号膨胀机块和在XYZ中的缩放阻止到适当的端口VR水槽堵塞。

  10. 双击VR水槽堵塞。

    查看者出现。

  11. 在查看器中,选择模拟>块参数选项。您的默认查看器将打开并显示虚拟世界。有关更改默认查看器的详细信息,请参阅设置默认查看器

  12. 在里面VR水槽阻止参数对话框,单击“看法按钮。

  13. 在Simuli万博1manbetxnk编辑器中,选择模拟>

    在您的默认查看器中,您可以看到场景的3-D动画。使用Viewer控件,您可以从各个点遵守操作。

    当球体的宽度降低到其原始尺寸的0.4时,模拟停止运行。

此示例显示了如何创建和使用简单的虚拟现实模型。使用相同的方法,您可以创建更复杂的模型,以解决您面临的特定问题。

也可以看看

职能

相关话题