play

Класс: Aero.Animation
Пакет: Aero

Анимируйте 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'

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

Ниже приведены ограничения для TStart и TFinal значения:

  • 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' по умолчанию методы, последний воспроизведённая система координат является последним значением времени.

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

Примечание

Если между ожидаемым усовершенствованием по времени и фактическим усовершенствованием по времени имеется различие 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Объект анимации.

Примеры

Анимируйте тело, 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();