fanimator

Создайте объект Animation движения остановки

Синтаксис

fanimator(f)
fanimator(f,args)
fanimator(___,Name,Value)
fanimator(ax,___)
fp = fanimator(___)

Описание

пример

fanimator(f) создает объект Animation движения остановки из функционального f. Функциональный f должен возвратить графические объекты, которые зависят только от одной переменной. Эта переменная задает параметр времени анимации.

По умолчанию fanimator создает кадры движения остановки f (t0), генерируя 10 кадров на единичный интервал t0 в области значений t0 от 0 до 10.

пример

fanimator(f,args) позволяет функциональному f зависеть от нескольких переменных. args задает входные параметры f.

По умолчанию переменная t = sym('t') является параметром времени анимации. Этот синтаксис создает кадры движения остановки f (subs (args, t, t0)) в области значений t0 от 0 до 10. Можно анимировать определенное свойство графических объектов путем устанавливания его значения, чтобы зависеть от t во входном параметре args.

пример

fanimator(___,Name,Value) задает свойства анимации с помощью одного или нескольких аргументов пары Name,Value. Используйте эту опцию с любыми комбинациями входных аргументов в предыдущих синтаксисах. Настройки пары "имя-значение" применяются к созданному объекту Animation.

пример

fanimator(ax,___) создает объект Animation движения остановки на оси, заданной ax вместо на текущей оси (gca). Опция ax может предшествовать любым комбинациям входных аргументов в предыдущих синтаксисах.

fp = fanimator(___) возвращает объект Animator. Используйте fp, чтобы запросить и изменить свойства определенного объекта Animation. Для списка свойств смотрите Animator Properties.

Примеры

свернуть все

Анимируйте точку и круг, которые проходят прямая линия.

Во-первых, создайте функцию, чтобы построить точку в (t,1). Переменная t задает параметр времени анимации.

f = @(t) plot(t,1,'r*');

Создайте объект Animation движения остановки, заданный f.

fanimator(f)

Затем, создайте указатель на функцию при помощи fplot, чтобы построить модульный круг. Круг является функцией двух переменных.

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

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

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

Анимируйте строку, которая изменяет вертикальную длину и ширину линии. Можно анимировать определенное графическое свойство путем устанавливания его значения, чтобы зависеть от параметра времени анимации. По умолчанию переменная t является параметром времени анимации.

Создайте две символьных переменные, y и t. Постройте график с координатами y в интервале [0 t] при помощи fplot. Используйте функцию fanimator, чтобы создать объект линейной анимации. fanimator изменяет строку вертикальная длина путем увеличения значения t от 0 до 10.

syms y t
fanimator(@fplot,1,y,[0 t])

Введите команду playAnimation, чтобы проигрывать анимацию.

Теперь постройте график с координатами y в интервале [0 2] при помощи fplot. Установите значение свойства 'LineWidth' на t+1. Используйте функцию fanimator, чтобы создать объект линейной анимации. fanimator изменяет ширину линии путем увеличения значения t от 0 до 10.

fanimator(@fplot,1,y,[0 2],'LineWidth',t+1)

Введите команду playAnimation, чтобы проигрывать анимацию.

Анимируйте круг с таймером.

Во-первых, создайте функцию, которая строит модульный круг, и сохраните его в файле с именем circ.m. Функция использует fplot, чтобы построить модульный круг, сосредоточенный в (t,1) и локальной символьной переменной x, чтобы параметризовать периметр круга.

function C = circ(t)
    x = sym('x');
    C = fplot(cos(x)+t,sin(x)+1,[0 2*pi],'Color','red');
end

Используйте fanimator, чтобы создать модульный объект Animation круга. Установите область значений анимации параметра времени к [2 4.5] и частоте кадров в единицу времени к 4. Установите ось X и ось Y быть равной длиной.

fanimator(@circ,'AnimationRange',[2 4.5],'FrameRate',4)
axis equal

Затем, добавьте объект Animation таймера. Создайте часть текста, чтобы считать прошедшее время при помощи функции text. Используйте num2str, чтобы преобразовать параметр времени в строку. Установите область значений анимации таймера к [0 4.5].

hold on
fanimator(@(t) text(4.5,2.5,"Timer: "+num2str(t,2)),'AnimationRange',[0 4.5])
hold off

Введите команду playAnimation, чтобы проигрывать анимацию. Таймер считает прошедшее время от 0 до 4,5 секунд. Движущийся круг запускается в 2 секунды и остановки в 4,5 секунды.

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

Во-первых, создайте две символьных переменные x и t. Создайте фигуру с двумя подграфиками и возвратите первый объект осей как ax1. Создайте движущийся круговой объект Animation в ax1 и добавьте фиксированную точку на оправе круга. Установите ось X и ось Y быть равной длиной.

syms x t
ax1 = subplot(2,1,1);
fanimator(ax1, @fplot, cos(x)+t, sin(x)+1, [-pi pi])
axis equal
hold on
fanimator(ax1, @(t) plot(t-sin(t), 1-cos(t), 'r*'))

Чтобы проследить циклоиду, используйте переменную времени в интервале графического вывода. Графики функций fplot кривая в интервале [0 t]. Создайте циклоидный объект Animation. По умолчанию fanimator создает кадры движения остановки в области значений t от 0 до 10 секунд. fanimator строит первый кадр в t, равном 0.

fanimator(ax1, @fplot, x-sin(x), 1-cos(x), [0 t], 'k')
hold off

Затем, создайте другую циклоиду на втором объекте осей ax2. Проследите кривую, созданную фиксированной точкой на расстоянии 1/2 от центра круга. Установите ось X и ось Y быть равной длиной.

ax2 = subplot(2,1,2);
fanimator(ax2, @fplot, cos(x)+t, sin(x)+1, [-pi pi])
axis equal
hold on
fanimator(ax2, @(t) plot(t-sin(t)/2, 1-cos(t)/2, 'r*'))
fanimator(ax2, @fplot, x-sin(x)/2, 1-cos(x)/2, [0 t], 'k')
hold off

Введите команду playAnimation, чтобы проигрывать анимацию.

Создайте фигуру пользовательского интерфейса. Задайте оси пользовательского интерфейса фигуры.

fig = uifigure;
ax = uiaxes(fig);

Добавьте объект Animation в оси пользовательского интерфейса с помощью fanimator. Создайте две символьных переменные, x и t. Постройте кривую, которая растет экспоненциально как функция времени t в интервале [0 3].

syms x t;
fanimator(ax,@fplot,exp(x),[0 t],'r','AnimationRange',[0 3])

Проигрывайте анимацию в фигуре пользовательского интерфейса fig путем ввода команды playAnimation(fig). Также можно также использовать команду playAnimation(ax.Parent).

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

свернуть все

Графические объекты возврата функции, заданные как указатель на функцию. Для получения дополнительной информации об указателях на функцию, см. Создание указателя на функцию (MATLAB).

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

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

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

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

Пример: 'AnimationRange',[2 8],'FrameRate',30

Параметр времени анимации, заданный как символьная переменная.

Пример: sym('y')

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

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

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

Пример: 30

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

свернуть все

Объект Animation, возвращенный как скаляр. Можно использовать этот объект запросить и изменить свойства сгенерированных кадров анимации. Для списка свойств смотрите Animator Properties.

Советы

  • Когда вы создаете график при помощи функции построения графика, такой как fplot, MATLAB® создает серию графических объектов. Можно затем анимировать определенное свойство графических объектов при помощи fanimator и функций playAnimation. Обратите внимание на то, что некоторые функции, такие как title и xlabel, создают текстовые объекты, которые не могут быть анимированы. Вместо этого используйте функцию text, чтобы создать текстовые объекты, которые могут быть анимированы.

Введенный в R2019a