fanimator

Создайте объект анимации движения упора

Описание

пример

fanimator(f) создает объект анимации движения упора из функции 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 аргументы в виде пар. Используйте эту опцию с любыми комбинациями входных аргументов в предыдущих синтаксисах. Пары "имя-значение" применяются к созданному объекту анимации.

пример

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

fp = fanimator(___) возвращает Animator объект. Использование fp запрос и изменение свойств определенного объекта анимации. Список свойств см. в разделе «Свойства аниматора».

Примеры

свернуть все

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

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

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

Создайте объект анимации движения упора, заданный f.

fanimator(f)

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

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

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

Введите команду playAnimation воспроизведение анимации. По умолчанию fanimator создает объект анимации, генерируя 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 для создания объекта анимации о модуль круге. Установите область значений анимации временного параметра в [2 4.5] и частоту систем координат в единицу времени до 4. Установите оси X и Y равной длины.

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

Затем добавьте объект анимации таймера. Создайте фрагмент текста для подсчета истекшего времени при помощи 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. Создайте объект анимации о движущемся круге в 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*'))

Чтобы проследить циклоид, используйте переменную времени в интервале графического изображения. The fplot графики функций кривой в пределах интервала [0 t]. Создайте объект циклоидной анимации. По умолчанию 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);

Figure contains an axes. The axes is empty.

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

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

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

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

Копирайт 2018 The MathWorks, Inc.

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

свернуть все

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

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

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

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

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

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

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

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

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

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

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

Пример: 30

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

свернуть все

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

Совет

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

Введенный в R2019a