exponenta event banner

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

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

Примечание

Многие технические задачи, зависящие от времени, моделируются и решаются в MATLAB. Для тех задач, которые имеют значимое визуальное представление, можно создавать модели виртуальной реальности и анимировать их решения. Кроме того, время автономной анимации может представлять любую независимую переменную, по которой можно наблюдать и визуализировать решение модели. Использование автономных файлов анимации может привести к новым уровням передачи таких решений технических проблем. Пример 3D Simulink Animation™ 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 (как описано в разделе Запланированная запись 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 пример.

Связанные примеры

Подробнее