игра

Класс: аэро. Анимация
Пакет: аэро

Анимационный объект Aero.Animation, данный временные ряды положения/угла

Синтаксис

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'.

Следующее является ограничениями для значений TFinal и TStart:

  • TStart и TFinal должны быть числовыми.

  • TStart и TFinal не может быть Inf или NaN.

  • TFinal должен быть больше, чем или равным TStart.

  • TFinal не может быть больше, чем максимальное время Timeseries.

  • TStart не может быть меньше, чем минимальное время Timeseries.

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

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

где

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

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

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

Примечание

Если будет 15%-е различие между ожидаемым усовершенствованием времени и фактическим усовершенствованием времени, то этот метод сгенерирует соблюдающее предупреждение:

TimerPeriod has been set to <value>. You may wish to modify the animation 
TimeScaling and FramesPerSecond properties to compensate for the 
millisecond limit of the TimerPeriod.  See documentation for details.

Входные параметры

hОбъект Animation.

Примеры

Анимируйте тело, idx1, на время данных временных рядов.

h = Aero.Animation;
h.FramesPerSecond = 10;
h.TimeScaling = 5;
idx1 = h.createBody('pa24-250_orange.ac','Ac3d');
load simdata;
h.Bodies{1}.TimeSeriesSource = simdata;
h.show();
h.play();