play (Aero.VirtualRealityAnimation)

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

Синтаксис

play(h)
h.play

Описание

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

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

'timeseries'

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

x y z phi theta psi

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

'Simulink.Timeseries'

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

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

    x y z

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

    phi theta psi

'StructureWithTime'

Simulink struct со временем (для примера, регистрация исходящего порта корня 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