exponenta event banner

Воспроизвести (Aero.VirteyTalkAnimation)

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

Синтаксис

play(h)
h.play

Описание

play(h) и h.play анимировать мир виртуальной реальности в h для текущего TimeseriesDataSource по указанной ставке, указанной 'TimeScaling' (в секундах анимационных данных в секунду настенного тактового времени) и анимация при определенном количестве кадров в секунду с использованием 'FramesPerSecond' собственность.

Данные временных рядов интерпретируются в соответствии с 'TimeseriesSourceType' свойство, которое может быть одним из:

'timeseries'

Данные временных рядов MATLAB ® с шестью значениями в раз:

x y z phi theta psi

Значения повторно дискретизируются.

'Simulink.Timeseries'

Simulink.Timeseries (регистрация сигналов Simulink ®):

  • Первый элемент данных

    x y z

  • Второй элемент данных

    phi theta psi

'StructureWithTime'

Структура Simulink со временем (например, регистрация исходящего порта корня Simulink) 'Structure with time'):

  • signals(1).values: x y z

  • signals(2).values: phi theta psi

Сигналы линейно интерполируются в зависимости от времени с использованием interp1.

'Array6DoF'Массив с двойной точностью в n строки и 7 столбцов для 6-DoF данных: time x y z phi theta psi. Если массив с двойной точностью из 8 или более столбцов находится в 'TimeseriesSource'первые 7 столбцов используются в качестве 6-DoF данных.
'Array3DoF'Массив с двойной точностью в n строки и 4 столбца для 3-DoF данных: time x z theta. Если массив с двойной точностью из 5 или более столбцов находится в 'TimeseriesSource'первые 4 столбца используются в качестве 3-DoF данных.
'Custom'Данные о положении и угле извлекаются из 'TimeseriesSource' зарегистрированным в настоящее время 'TimeseriesReadFcn'.

Алгоритм продвижения по времени, используемый play основан на кадрах анимации, отсчитанных по засечкам:

ticks = ticks + 1;
time  = tstart + ticks*FramesPerSecond*TimeScaling;

где

TimeScalingУкажите секунды данных анимации в секунду времени настенного времени.
FramesPerSecondУкажите количество кадров в секунду, используемых для анимации 'TimeseriesSource'.

По умолчанию 'TimeseriesReadFcn' методы, последний воспроизведенный кадр является последним значением времени.

Время в секундах, значения положения находятся в тех же единицах, что и геометрические данные, загруженные в объект анимации, и все углы находятся в радианах.

Примеры

Анимация мира виртуальной реальности, asttkoff.

h = Aero.VirtualRealityAnimation;
h.FramesPerSecond = 10;
h.TimeScaling = 5;
h.VRWorldFilename = [matlabroot,'/toolbox/aero/astdemos/asttkoff.wrl'];
copyfile(h.VRWorldFilename,[tempdir,'asttkoff.wrl'],'f');
h.VRWorldFilename = [tempdir,'asttkoff.wrl'];
h.initialize();
load takeoffData
[~, idxPlane] = find(strcmp('Plane', h.nodeInfo));
h.Nodes{idxPlane}.TimeseriesSource = takeoffData;
h.Nodes{idxPlane}.TimeseriesSourceType = 'StructureWithTime';
h.Nodes{idxPlane}.CoordTransformFcn = @vranimCustomTransform;
h.play();

См. также

Представлен в R2007b