fanimator

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

Описание

пример

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

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

пример

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

По умолчанию, переменная t = sym('t') параметр времени анимации. Этот синтаксис создает системы координат движения остановки f(subs(argsTt0 )) в области значений 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).

Copyright 2018 The MathWorks, Inc.

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

свернуть все

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

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

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

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

Задайте дополнительные разделенные запятой пары Name,Value аргументы. 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