Эта тема описывает, как записать файлы анимации программно для виртуальных миров, которые не сопоставлены с моделями Simulink® (другими словами, от интерфейса MATLAB®). В этом экземпляре необходимо задать отношение между событиями, которые изменяют состояние виртуального мира и время в файле анимации. Это требование отличается от виртуальных миров, сопоставленных с моделями Simulink. Виртуальные миры, которыми управляют полностью от интерфейса MATLAB, не имеют никакого значения по умолчанию, интуитивной интерпретации отношения времени между моделями среды MATLAB и виртуальными сценами.
Много технических зависящих от времени задач смоделированы и решены в MATLAB. Для тех проблем, которые имеют значимое визуальное представление, можно создать модели виртуальной реальности и анимировать их решения. Кроме того, оффлайновое время анимации может представлять любую независимую переменную, вдоль которой можно наблюдать и визуализировать решение модели. Используя оффлайновые файлы анимации может принести коммуникацию такого технического решения проблем к новым уровням. Пример Simulink 3D Animation™ vrheat
(визуализация теплопередачи), пример зависящей от времени задачи, смоделированной и решенной в MATLAB. Его модифицированная версия, vrheat_anim
, показывает использование метода программирования, описанного в этой теме.
Чтобы записать файлы анимации для виртуальных миров, которые не сопоставлены с моделями Simulink, отметьте следующие инструкции, которые требуют глубокого понимания усовершенствованного программного обеспечения Simulink 3D Animation.
Получите vrworld
указатель на объект виртуальной сцены, которую вы хотите записать.
Записывать 2D анимации,
Получите соответствующий vrfigure
объект. Для 2D анимаций программное обеспечение Simulink 3D Animation записывает точно, что вы видите в окне средства просмотра. Поскольку 2D анимации записывают точно, что вы видите в окне Simulink 3D Animation Viewer, свойства, которые управляют 2D записью файла, принадлежат vrfigure
объекты.
Установите Record2D
vrfigure
свойство.
Чтобы заменить имена файлов по умолчанию для файлов анимации, установите vrfigure
Record2DFileName
свойство.
Создать 3-D файлы анимации,
Получите соответствующий vrworld
объект.
Установите Record3D
vrworld
свойство.
Чтобы заменить имена файлов по умолчанию для файлов анимации, установите vrworld
Record3DFileName
свойство.
Установите RecordMode
vrworld
свойство объекта к manual
или scheduled
. Для оптимальных результатов выберите scheduled
.
Если вы выбираете scheduled
для RecordMode
, обязательно установите vrworld
RecordInterval
свойство к желаемому временному интервалу.
Чтобы указать, что источник времени виртуального мира является внешним, устанавливает vrworld
свойство TimeSource
к external
. Эта установка гарантирует что программное управление MATLAB время сцены виртуального мира. Ввод
set(virtual_world,'TimeSource', 'external')
Чтобы задать временные стоимости, в которых вы хотите сохранить кадры анимации, итеративно установите vrworld
Time
свойство. Для более сглаженной анимации, набор время в равных интервалах, например, каждые пять секунд. Используйте последовательность как этот:
set(virtual_world,'Time',time_value)
Например, чтобы установить Time
свойство для vrworld
W
, со значениями, увеличивающимися на 10, войти
set(w,'Time',10); set(w,'Time',20); set(w,'Time',30); set(w,'Time',40); set(w,'Time',50); set(w,'Time',60); set(w,'Time',70); set(w,'Time',80); set(w,'Time',90); set(w,'Time',100); set(w,'Time',110); set(w,'Time',120); set(w,'Time',130); set(w,'Time',140);
Если вы выбираете время начала 60 и время остановки 120 (как описано в Запланированной 3-D Записи с MATLAB), программное обеспечение Simulink 3D Animation начинает записывать в 60
и остановки в 120
.
Из-за повторяющейся природы установки временного интервала, набор Time
свойство в цикле из скрипта или программы.
После того, как вы устанавливаете vrworld
Time
свойство, набор свойства объектов виртуальной сцены по мере необходимости. Установите эти свойства на значения, которые соответствуют данному периоду времени, чтобы достигнуть желаемого эффекта анимации.
В каждый период времени выпустите vrdrawnow
команда для изменений сцены. Эта команда представляет и обновляет сцену.
Следующий фрагмент кода содержит типичный цикл, который итеративно устанавливает Time
свойство, изменяет свойство объекта виртуальной сцены и вызывает vrdrawnow
представлять сцену:
for time=StartTime:Step:StopTime % advance the time in the virtual scene set(myworld,'Time',time); % here we change node properties myworld.Car.translation = [ time*speed 0 0 ]; % render the changed position vrdrawnow; end
Если вы устанавливаете Time
свойство в или вне контура конца RecordInterval
, программное обеспечение Simulink 3D Animation прекращает записывать. Можно затем просмотреть получившийся файл анимации.
Для полного примера того, как выполнить этот вид записи анимации, отошлите к Simulink 3D Animation vrheat_anim
пример.