В этой теме описывается, как программно записать файлы анимации для виртуальных миров, которые не связаны с Simulink® модели (другими словами, из MATLAB® интерфейс). В этом случае необходимо задать отношение между событиями, которые изменяют состояние виртуального мира, и временем в файле анимации. Это требование отличается от виртуальных миров, связанных с моделями Simulink. Виртуальные миры, которые полностью управляются из интерфейса MATLAB, не имеют интуитивно понятной интерпретации временных отношений между моделями окружения MATLAB и виртуальными сценами.
Примечание
Многие инженерные зависящие от времени задачи моделируются и решаются в MATLAB. Для тех задач, которые имеют значимое визуальное представление, можно создавать модели виртуальной реальности и анимировать их решения. В сложение время автономной анимации может представлять любую независимую переменную, вдоль которой можно наблюдать и визуализировать решение модели. Использование офлайн- файлы анимации может вывести коммуникацию таких разрешений инженерных задач на новые уровни. Пример 3D Animation™ Simulink vrheat
(визуализация теплопередачи) является примером зависящей от времени задачи, смоделированной и решенной в MATLAB. Его измененная версия, vrheat_anim
, показывает использование метода программирования, описанного в этой теме.
Чтобы записать файлы анимации для виртуальных миров, которые не связаны с моделями Simulink, обратите внимание на следующие рекомендации, которые требуют глубокого понимания расширенного программного обеспечения Simulink 3D Animation.
Извлечение vrworld
указатель на объект виртуальной сцены, который необходимо записать.
Чтобы записать 2-D анимации,
Извлечение соответствующих vrfigure
объект. Для 2-D анимации программное обеспечение Simulink 3D Animation записывает точно то, что вы видите в окне средства просмотра. Поскольку 2-D анимации записывают точно то, что вы видите в окне Simulink 3D Animation Viewer, свойства, которые управляют 2-D записи файла, принадлежат 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 (как описано в Scheduled 3-D Recording with 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
пример.