Записи анимации для несвязанных виртуальных миров

В этой теме описывается, как программно записать файлы анимации для виртуальных миров, которые не связаны с Simulink® модели (другими словами, из MATLAB® интерфейс). В этом случае необходимо задать отношение между событиями, которые изменяют состояние виртуального мира, и временем в файле анимации. Это требование отличается от виртуальных миров, связанных с моделями Simulink. Виртуальные миры, которые полностью управляются из интерфейса MATLAB, не имеют интуитивно понятной интерпретации временных отношений между моделями окружения MATLAB и виртуальными сценами.

Примечание

Многие инженерные зависящие от времени задачи моделируются и решаются в MATLAB. Для тех задач, которые имеют значимое визуальное представление, можно создавать модели виртуальной реальности и анимировать их решения. В сложение время автономной анимации может представлять любую независимую переменную, вдоль которой можно наблюдать и визуализировать решение модели. Использование офлайн- файлы анимации может вывести коммуникацию таких разрешений инженерных задач на новые уровни. Пример 3D Animation™ Simulink vrheat (визуализация теплопередачи) является примером зависящей от времени задачи, смоделированной и решенной в MATLAB. Его измененная версия, vrheat_anim, показывает использование метода программирования, описанного в этой теме.

Чтобы записать файлы анимации для виртуальных миров, которые не связаны с моделями Simulink, обратите внимание на следующие рекомендации, которые требуют глубокого понимания расширенного программного обеспечения Simulink 3D Animation.

  • Извлечение vrworld указатель на объект виртуальной сцены, который необходимо записать.

  • Чтобы записать 2-D анимации,

    1. Извлечение соответствующих vrfigure объект. Для 2-D анимации программное обеспечение Simulink 3D Animation записывает точно то, что вы видите в окне средства просмотра. Поскольку 2-D анимации записывают точно то, что вы видите в окне Simulink 3D Animation Viewer, свойства, которые управляют 2-D записи файла, принадлежат vrfigure объекты.

    2. Установите Record2D vrfigure свойство.

    3. Чтобы переопределить имена файлов по умолчанию для файлов анимации, установите vrfigure Record2DFileName свойство.

  • Чтобы создать 3-D файлы анимации,

    1. Извлечение соответствующих vrworld объект.

    2. Установите Record3D vrworld свойство.

    3. Чтобы переопределить имена файлов по умолчанию для файлов анимации, установите 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 пример.

Похожие примеры

Подробнее о