exponenta event banner

animationToFrame

Вернуть структуру кадров из объектов анимации

Описание

пример

frames = animationToFrame возвращает структурный массив кадров из объектов анимации. Объекты анимации должны быть созданы с помощью fanimator функция.

пример

frames = animationToFrame(fig) возвращает структурный массив кадров из объектов анимации на рисунке fig.

пример

frames = animationToFrame(___,Name,Value) использует указанное Name,Value аргументы пары. Используйте эту опцию с любой из комбинаций входных аргументов в предыдущих синтаксисах.

Примеры

свернуть все

Создайте анимацию движущегося круга и верните определенные кадры анимации.

Сначала создайте две символьные переменные: t и x. Переменная t определяет параметр времени анимации. Использовать t для установки центра окружности в (t,1) и x для параметризации периметра окружности в пределах диапазона [-pi pi]. Создание объекта анимации круга с помощью fanimator. Задайте для осей X и Y одинаковую длину.

syms t x
fanimator(@fplot,cos(x)+t,sin(x)+1,[-pi pi])
axis equal

По умолчанию fanimator генерирует анимационный объект с 10 кадрами в единицу времени в диапазоне t от 0 до 10. Объект анимации по умолчанию содержит в общей сложности 101 кадр. Используйте команду playAnimation для воспроизведения анимации.

Затем верните структурный массив кадров из объекта анимации с помощью animationToFrame.

frames = animationToFrame

Figure contains an axes. The axes contains an object of type parameterizedfunctionline.

frames=1×101 struct array with fields:
    cdata
    colormap

Структура frames содержит два поля. cdata поле хранит данные изображения в виде массива uint8 значения.

Реконструируйте кадры анимации с помощью imshow функция. Например, отобразите 50-й кадр и последний кадр анимации.

imshow(frames(50).cdata)

Figure contains an axes. The axes contains an object of type image.

imshow(frames(101).cdata)

Figure contains an axes. The axes contains an object of type image.

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

Сначала создайте две символьные переменные: t и x. Переменная t определяет параметр времени анимации. Создайте окно фигуры для анимации.

syms t x
fig1 = figure;

Создание объекта анимации круга с помощью fanimator. Использовать t для установки центра окружности в (t,1) и x для параметризации периметра окружности в пределах диапазона [-pi pi]. Задайте для осей X и Y одинаковую длину.

fanimator(@fplot,cos(x)+t,sin(x)+1,[-pi pi])
axis equal

Далее используйте text функция для добавления фрагмента текста для подсчета прошедшего времени. Использовать num2str для преобразования параметра времени в строку.

hold on
fanimator(@(t) text(8,3,"Timer: "+num2str(t,2)))
hold off

По умолчанию fanimator создает кадры стоп-движения с 10 кадрами в единицу времени в диапазоне t от 0 до 10. Объект анимации по умолчанию содержит в общей сложности 101 кадр. Используйте команду playAnimation для воспроизведения анимации.

Затем верните структурный массив кадров из анимации на рисунке fig с помощью animationToFrame. Возврат кадров анимации в обратном порядке путем установки 'Backwards' опция для true. Установите частоту кадров в единицу времени равной 2, чтобы вернуть в общей сложности 21 кадр.

frames = animationToFrame(fig1,'Backwards',true,'FrameRate',2)

Figure contains an axes. The axes contains 2 objects of type parameterizedfunctionline, text.

frames=1×21 struct array with fields:
    cdata
    colormap

Структура frames содержит два поля. cdata поле хранит данные изображения в виде массива uint8 значения.

Реконструируйте кадры анимации с помощью imshow функция. Например, отобразите первый кадр и 11-й кадр анимации в новом окне рисунка.

fig2 = figure;
imshow(frames(1).cdata)

Figure contains an axes. The axes contains an object of type image.

imshow(frames(11).cdata)

Figure contains an axes. The axes contains an object of type image.

Входные аргументы

свернуть все

Целевой показатель, указанный как Figure объект. Для получения дополнительной информации о Figure объекты, см. figure.

Аргументы пары «имя-значение»

Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.

Пример: 'Backwards',true,'AnimationRange',[-2 5]

Диапазон параметра времени анимации, заданный как двухэлементный вектор строки. Эти два элемента должны быть реальными значениями, которые увеличиваются.

Пример: [-2 4.5]

Частота кадров, заданная как положительное значение. Частота кадров определяет количество кадров в единицу времени при возврате кадров анимации в виде структурного массива.

Пример: 20

Обратный выбор, определенный как (булево) логическое значение. При указании trueзатем функция возвращает кадры анимации назад или в обратном порядке.

Пример: true

Выходные аргументы

свернуть все

Кадры анимации, возвращаемые в виде структурного массива с двумя полями:

  • cdata - данные изображения, хранящиеся в виде массива uint8 значения. Размер массива данных изображения зависит от разрешения экрана.

  • colormap - Цветовая карта. В истинных цветовых системах это поле пустое.

animationToFrame функция возвращает структуру кадров анимации в том же формате, что и выходные данные, возвращенные getframe функция.

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