animationToFrame

Возвратите структуру кадров от объектов Animation

Синтаксис

frames = animationToFrame
frames = animationToFrame(fig)
frames = animationToFrame(___,Name,Value)

Описание

пример

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

пример

frames = animationToFrame(fig) возвращает массив структур кадров от объектов Animation в фигуре fig.

пример

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

Примеры

свернуть все

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

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

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

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

Затем, возвратите массив структур кадров от объекта Animation при помощи animationToFrame.

frames = animationToFrame

frames = 1x101 struct array with fields:
    cdata
    colormap

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

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

imshow(frames(50).cdata)

imshow(frames(101).cdata)

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

Во-первых, создайте две символьных переменные, t и x. Переменная t задает параметр времени анимации. Создайте окно рисунка для анимации.

syms t x
fig1 = figure;

Создайте круговой объект Animation с помощью 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. Объект Animation по умолчанию содержит в общей сложности 101 кадр. Используйте команду playAnimation, чтобы проигрывать анимацию.

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

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

frames = 1x21 struct array with fields:
    cdata
    colormap

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

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

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

imshow(frames(11).cdata)

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

свернуть все

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

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

Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

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

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

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

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

Пример: 20

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

Пример: true

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

свернуть все

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

  • cData Данные изображения, сохраненные как массив значений uint8. Размер массива данных изображения зависит от вашего разрешения экрана.

  • палитра Палитра. В системах истинного цвета это поле пусто.

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

Введенный в R2019a