игра (Аэро. VirtualRealityAnimation)

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

Синтаксис

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®, регистрирующий):

  • Элемент First Data

    x y z

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

    phi theta psi

'StructureWithTime'

Struct Simulink со временем (например, корневой выходной порт Simulink, регистрирующий 'Structure with time'):

  • signals(1).values: x y z

  • signals(2).values: phi theta psi

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

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

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

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

где

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

Для методов 'TimeseriesReadFcn' по умолчанию последний проигрываемый кадр является последней временной стоимостью.

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

Примеры

Анимационный мир виртуальной реальности, 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