Этот пример показывает вам, как создать простой виртуальный мир с помощью 3D World Editor. Пример не показывает все, что можно сделать с редактором. Однако пример действительно показывает вам, как выполнить некоторые основные задачи начать.
Этот пример принимает, что вы установили свой редактор по умолчанию быть 3D World Editor. Для получения дополнительной информации смотрите Набор Редактор По умолчанию.
Этот пример описывает шаги, чтобы создать упрощенную версию виртуального мира, который вы видите, вводите ли вы эту команду в командном окне MATLAB®:
edit(vrworld('vrdeform.wrl'))
Предположим, что вы хотите моделировать и визуализировать в виртуальной реальности деформацию сферы. В вашем виртуальном мире вы хотите иметь два поля, представляющие твердые пластины (B1, B2) и эластичная сфера (S) между ними. Все три из объектов выравниваются центром вдоль оси X. Поля B1 и B2 перемещаются к S с идентичными скоростями, но они перемещаются в противоположные направления. Когда они достигают сферы S, они начинают деформировать ее путем сокращения ее x размерности и протяжения и ее y и z размерностей.
Вот то, как этот виртуальный мир смотрит:
В следующей таблице перечислены положения и размерности объектов, которые вы создаете для этого примера.
Объект | Центральное положение | Размерности |
---|---|---|
| [3 0 0] | [0.3 1 1] |
| [-3 0 0] | [0.3 1 1] |
| [0 0 0] |
|
Продукт Simulink® 3D Animation™ включает учебную модель vrtut3
. Эта упрощенная модель моделирует деформацию эластичной сферы. После столкновения с твердыми блоками x размерность сферы уменьшается фактором с 1 до 0,4. Кроме того, y и z размерности расширяются, чтобы сохранить объем деформированного эллипсоида сферы постоянным. Дополнительные блоки в модели предоставляют правильно размерные векторы к блоку Simulink 3D Animation. Симуляция останавливается, когда сфера деформирована к 0.4 раза ее первоначальному размеру в направлении X.
Ваша первая задача состоит в том, чтобы открыть модель Simulink и добавить блок Simulink 3D Animation в вашу модель.
Эта процедура использует модель Simulink vrtut3
, чтобы показать, как добавить блок Simulink 3D Animation в вашу модель. Модель генерирует значения для положения B1, положение B2 и размерности S (как описано в Задают проблему).
Откройте Tutorial #3
. пример.
В верхней части страницы это открывается, выберите Open this Example.
Сохраните thevrtut3
файл к своему MATLAB рабочая папка.
В MATLAB, изменение текущая папка к вашему MATLAB рабочая папка.
В Окне Команды MATLAB введите:
vrtut3
Окно Simulink открывается моделью, которая содержит блоки Расширителя Сигнала VR Simulink 3D Animation, но никакой блок VR Sink, чтобы записать данные от модели до Simulink 3D Animation. Вместо этого эта модель использует блоки Осциллографа, чтобы контролировать временно соответствующие сигналы.
Из Окна Команды MATLAB ввести
vrlib
Библиотека Simulink 3D Animation открывается.
Из окна Library перетащите мышью блок VR Sink к схеме Simulink. Можно затем закрыть Окно браузера Библиотеки.
Ваша следующая задача состоит в том, чтобы создать виртуальный мир, который вы сопоставите с блоком VR Sink. Смотрите Открытый Новый Виртуальный мир.
Необходимо создать виртуальный мир, чтобы соединиться с моделью Simulink для визуализации сигналов.
Эта процедура открывает новый виртуальный мир, в котором вы добавляете узлы для визуализации сигналов модели vrtut3
. Связь между виртуальным миром и моделью Simulink требует, чтобы модель включала блок VR Sink, как описано в Добавляют Блок Simulink 3D Animation.
Запустите 3D World Editor с пустого виртуального мира. От Панели инструментов MATLAB, во вкладке Apps, в разделе Simulation Graphics and Reporting, нажимают 3D World Editor.
Отображения 3D World Editor:
На левой панели, дереве виртуальной сцены только с узлом ROOT
На правой панели, пустом виртуальном мире
В нижней области, пустой панели для редактирования объектов
Можно спасти виртуальный мир в любой точке. Спасите виртуальный мир как vrtut3.wrl
в той же рабочей папке, где ваш файл vrtut3
находится. Не закрывайте 3D World Editor.
Ваши следующие две задачи создают виртуальный мир, чтобы использовать с моделью vrtut3
:
Определение объектов виртуального мира включает определение иерархии узлов. Этот пример показывает, как задать узлы Transform
под узлом ROOT
, с каждым узлом Transform
включая иерархию children
, Shape
, Appearance
, Geometry
и определенной формы (в этом случае, Box
) узлы.
В дереве на левой панели нажмите ROOT
(самый верхний элемент).
Добавьте узел Transform
, с помощью следующей последовательности выборов пункта меню.
Этот узел Transform
для поля B1. Назвать узел Transform
:
Щелкните правой кнопкой по узлу Transform
.
Выберите пункт меню Edit Name.
В окне редактирования слева от узла Transform
введите B1
.
Добавьте узел Shape
:
Расширьте узел B1 Transform
.
Выберите узел children
.
Добавьте узел Shape
, с помощью следующей последовательности выборов пункта меню:
Добавьте узел Appearance
для узла Формы:
Под узлом Shape
выберите узел appearance (SFNode)
.
Добавьте узел Appearance
, с помощью следующей последовательности выборов пункта меню.
Добавьте узел Material
в узел Appearance
:
Расширьте узел (Appearance)
и выберите узел material(SFNode)
.
Добавьте узел Material
, с помощью следующей последовательности выборов пункта меню.
Добавьте узел Box
в узел geometry
:
Выберите узел geometry(SFNode)
узла (Shape)
.
Добавьте узел Box
, с помощью следующей последовательности выборов пункта меню.
Со всеми расширенными узлами 3D World Editor теперь отображает поле в панели virtual world display.
Сделайте поле меньшим путем редактирования его свойства size
:
Выберите свойство size
узла Box
.
В панели object properties edit в нижней части 3D World Editor введите 0.3
в первый столбец и 1
во вторых и третьих столбцах.
Нажмите Apply.
Поле становится меньшим.
Переместите поле направо путем изменения свойства translation(SFVec3f)
узла B1(Transform)
. В панели object properties edit, набор первый столбец к 3
и отпуску второй и третий набор столбцов к 0
.
Добавьте второе поле, которое подобно первому полю.
Под узлом ROOT
добавьте узел Transform
(см. шаг 2), и назовите его B2
(см. шаг 3).
Скопируйте узел Shape
. Под узлом B1 Transform
щелкните правой кнопкой по узлу Shape
по узлу B1 Transform
и выберите пункт меню Copy.
Вставьте скопированный узел Формы в узел B2 Transform
. Под узлом B2 Transform
), щелкните правой кнопкой по узлу children
и выберите пункт меню Paste Node> Paste.
Со свернутым узлом B1
и расширенным узлом B2
, 3D World Editor похож на следующую диаграмму.
Переместите поле, которое вы создали налево путем изменения свойства translation
узла B2(Transform)
. В панели object properties edit, набор первый столбец к -3
и отпуску второй и третий набор столбцов к 0
.
Ваша следующая задача состоит в том, чтобы добавить сферу между этими двумя полями. Этот раздел принимает, что вы выполнили задачи, описанные в, Добавляют Узлы.
Чтобы облегчить фокусировать панель tree structure на узлах, которые вы хотите добавить, сверните узлы B2(Transform)
и B1(Transform)
.
В дереве на левой панели нажмите узел ROOT
.
Добавьте узел Sphere
. 3D World Editor включает библиотеку объектов для создания виртуального мира, включая объект Sphere
.
Добавьте объект библиотеки Sphere
с помощью следующей последовательности выборов пункта меню.
Из списка папок Component Library выберите папку Shapes
, и затем выберите файл Sphere.wrl
.
Выберите узел Transform
и назовите его S
.
С узлом S Transform
, полностью расширенным и другими свернутыми узлами Transform
, 3D World Editor похож на следующую диаграмму.
Чтобы сделать сферу синей, под узлом Material
, выбирают свойство diffuseColor
. В панели object properties edit измените первое значение столбца на 0.2
, второй столбец к 1
и третий столбец к 1
.
Сохраните файл виртуального мира.
Ваша следующая задача состоит в том, чтобы соединить образцовые выходные параметры с блоком Simulink 3D Animation в вашей модели Simulink. Смотрите Ссылку на Модель Simulink.
После того, как вы создаете виртуальный мир и модель Simulink с блоком VR Sink, задаете ассоциации между образцовыми сигналами и виртуальным миром.
Эта процедура использует модель vrtut3
в качестве примера. Это принимает, что вы открыли модель и что вы добавили блок VR Sink, и что вы создали виртуальный мир под названием vrtut3.wrl
. Смотрите, что пример начиная с Добавляет Блок Simulink 3D Animation.
Откройте диалоговое окно VR Sink Block Parameters. В Редакторе Simulink дважды кликните блок VR Sink.
Рядом с окном редактирования Source file нажмите Browse.
Выберите vrtut3.wrl
, и затем нажмите Open.
В панели Output выберите Open Viewer automatically. Этот флажок указывает, что средство просмотра для виртуального мира запускается, когда вы запускаете модель.
Для параметра Description введите vrtut3
.
В диалоговом окне VR Sink нажмите Apply.
В панели tree structure выберите B1 translation, B2 translation и флажки S scale как узлы, которые вы хотите соединить со своими образцовыми сигналами. Нажмите OK.
Блок VR Sink появляется с соответствующими входными параметрами.
Удалите три блока Осциллографа и их связанные строки входного сигнала.
Соедините входные строки от двух блоков Расширителя Сигнала VR и блока S Scaling in XYZ
к соответствующим портам в блоке VR Sink.
Дважды кликните блок VR Sink.
Средство просмотра появляется.
В средстве просмотра выберите Simulation> опция Block Parameters. Ваше средство просмотра по умолчанию открывает и отображает виртуальный мир. Для получения дополнительной информации об изменении вашего средства просмотра по умолчанию смотрите Набор Средство просмотра По умолчанию.
В диалоговом окне VR Sink Block Parameters нажмите кнопку View.
В Редакторе Simulink выберите Simulation> Run.
В вашем средстве просмотра по умолчанию вы видите 3-D анимацию сцены. Используя средства управления средством просмотра, можно наблюдать действие от различных точек.
Когда ширина сферы уменьшается до 0.4 из своего первоначального размера, симуляция прекращает запускаться.
Этот пример показывает вам, как создать и использовать простую модель виртуальной реальности. Используя тот же метод, можно создать более сложные модели для решения конкретных проблем, с которыми вы сталкиваетесь.
vredit
| vrgetpref
| vrjoystick
| vrlib
| vrsetpref
| vrspacemouse