animatedline

Создайте анимированную строку

Синтаксис

an = animatedline
an = animatedline(x,y)
an = animatedline(x,y,z)
an = animatedline(___,Name,Value)
an = animatedline(ax,___)

Описание

an = animatedline создает анимированную строку, которая не имеет никаких данных и добавляет его к текущей системе координат. Создайте анимацию путем добавления точек к строке в цикле с помощью функции addpoints.

пример

an = animatedline(x,y) создает анимированную строку с точками исходных данных, заданными x и y.

an = animatedline(x,y,z) создает анимированную строку с точками исходных данных, заданными x, y и z.

пример

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

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

Примеры

свернуть все

Создайте анимированный объект линии начальной буквы. Затем используйте цикл, чтобы добавить 1 000 точек к строке. После добавления каждой новой точки используйте drawnow, чтобы отобразить новую точку на экране.

h = animatedline;
axis([0,4*pi,-1,1])

x = linspace(0,4*pi,1000);
y = sin(x);
for k = 1:length(x)
    addpoints(h,x(k),y(k));
    drawnow
end

Для более быстрого рендеринга добавьте больше чем одну точку к строке каждый раз через цикл или используйте drawnow limitrate.

Запросите точки строки.

[xdata,ydata] = getpoints(h);

Очистите точки от строки.

clearpoints(h)
drawnow

Copyright 2015-2017 The MathWorks, Inc.

Выберите цвет анимированной строки к красному и установите ее ширину линии на 3 точки.

x = [1 2];
y = [1 2];
h = animatedline(x,y,'Color','r','LineWidth',3);

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

h = animatedline('MaximumNumPoints',100);
axis([0,4*pi,-1,1])

x = linspace(0,4*pi,1000);
y = sin(x);
for k = 1:length(x)
    addpoints(h,x(k),y(k));
    drawnow
end

Copyright 2015 The MathWorks, Inc.

Используйте цикл, чтобы добавить 100 000 точек к анимированной строке. Поскольку число точек является большим, добавляя одну точку к строке, каждый раз через цикл может быть медленным. Вместо этого добавьте 100 точек к строке каждый раз через цикл для более быстрой анимации.

h = animatedline;
axis([0,4*pi,-1,1])

numpoints = 100000;
x = linspace(0,4*pi,numpoints);
y = sin(x);
for k = 1:100:numpoints-99
    xvec = x(k:k+99);
    yvec = y(k:k+99);
    addpoints(h,xvec,yvec)
    drawnow
end

Другой метод для создания более быстрых анимаций должен использовать drawnow limitrate вместо drawnow.

Используйте цикл, чтобы добавить 100 000 точек к анимированной строке. Поскольку число точек является большим, использование drawnow, чтобы отобразить изменения может быть медленным. Вместо этого используйте drawnow limitrate для более быстрой анимации.

h = animatedline;
axis([0,4*pi,-1,1])

numpoints = 100000;
x = linspace(0,4*pi,numpoints);
y = sin(x);
for k = 1:numpoints
    addpoints(h,x(k),y(k))
    drawnow limitrate
end

Copyright 2015 The MathWorks, Inc.

Управляйте скоростью анимации путем пробежки нескольких итераций цикла анимации прежде, чем чертить обновления на экране. Используйте этот метод, когда drawnow является слишком медленным, и drawnow limitrate слишком быстр.

Например, обновите экран каждый 1/30 секунды. Используйте tic и команды toc, чтобы отслеживать то, сколько время передает между экранными обновлениями.

h = animatedline;
axis([0,4*pi,-1,1])
numpoints = 10000;
x = linspace(0,4*pi,numpoints);
y = sin(x);
a = tic; % start timer
for k = 1:numpoints
    addpoints(h,x(k),y(k))
    b = toc(a); % check timer
    if b > (1/30)
        drawnow % update screen every 1/30 seconds
        a = tic; % reset timer after updating
    end
end
drawnow % draw final frame

Меньший интервал обновляет экран чаще и приводит к более медленной анимации. Например, используйте b > (1/1000), чтобы замедлить анимацию.

Copyright 2015 The MathWorks, Inc.

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

свернуть все

Начальная буква x значения для анимированной строки, заданной как скаляр или вектор. Входной параметр x должен быть равен в размере y.

Пример 1: 10

Типы данных: double

Начальная буква y значения для анимированной строки, заданной как скаляр или вектор. Входной параметр y должен быть равен в размере x.

Пример 1: 10

Типы данных: double

Начальная буква z значения для анимированной строки, заданной как скаляр или вектор. Входной параметр z должен быть равен в размере x и y.

Пример 1: 10

Типы данных: double

Объект осей. Если вы не задаете объект осей, то animatedline использует текущую систему координат.

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

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

Пример: 'Цвет', 'красный', 'Маркер', 'o'

Анимированные свойства строки, перечисленные здесь, являются только подмножеством. Для полного списка см. Свойства AnimatedLine.

Цвет линии, заданный как триплет RGB или один из перечисленных в таблице параметров цвета. Значение по умолчанию [0 0 0] соответствует черный.

Для пользовательского цвета укажите триплет RGB. Триплет RGB представляет собой трехэлементный вектор-строку, элементы которого определяют интенсивность красных, зеленых и синих компонентов цвета. Интенсивность должны быть в диапазоне [0,1]; например, [0,4 0,6 0,7]. Кроме того, вы можете задать имена некоторых простых цветов. В этой таблице перечислены варианты длинного и краткого наименований цветов и их эквивалентные значения RGB.

ОпцияОписаниеЭквивалентный триплет RGB
'красный' или 'r'Красный[1 0 0]
'green' или 'g'Зеленый[0 1 0]
'blue' или 'b'Синий[0 0 1]
'yellow' или 'y'Желтый[1 1 0]
'пурпурный' или 'm'Пурпурный[1 0 1]
'голубой' или 'c'Голубой[0 1 1]
'white' или 'w'Белый[1 1 1]
'black' или 'k'Черный[0 0 0]
'none'Нет цветаНе применяется

Пример: [0.4 0.6 0.7]

Стиль линии, заданный как одна из опций, перечислен в этой таблице.

Стиль линииОписаниеПолучившаяся строка
'-'Сплошная линия

'--'Пунктирная линия

':'Пунктирная линия

'-.'Штрих-пунктирная линия

'none'Никакая строкаНикакая строка

Ширина линии, заданная в виде положительного значения в точках. Если у линии есть маркеры, ширина линии также влияет на края маркера.

Пример: 0.75

Символ маркера, заданный как один из символов маркера, перечислен в этой таблице. По умолчанию анимированный объект линии не имеет маркеров. Определение символа маркера добавляет маркеры в каждой точке данных или вершине.

ЗначениеОписание
OКруг
'+'Знак «плюс»
'*'Звездочка
'.'Точка
XКрест
square' или 's'Квадрат
'diamond' или 'd'Ромб
'^'Треугольник, направленный вверх
VНисходящий треугольник
'>'Треугольник, указывающий вправо
'<'Треугольник, указывающий влево
pentagram' или 'p'Пятиконечная звезда (пентаграмма)
'hexagram' or 'h'Шестиконечная звезда (гексаграмма)
'none'Никакие маркеры

Размер маркера, заданный как положительное значение в точках.

Пример: 10

Цвет контура маркера, заданный как 'auto', триплет RGB или один из перечисленных в таблице параметров цвета. Значение по умолчанию 'auto' использует тот же цвет в качестве свойства Color.

Для пользовательского цвета укажите триплет RGB. Триплет RGB представляет собой трехэлементный вектор-строку, элементы которого определяют интенсивность красных, зеленых и синих компонентов цвета. Интенсивность должны быть в диапазоне [0,1]; например, [0,4 0,6 0,7]. Кроме того, вы можете задать имена некоторых простых цветов. В этой таблице перечислены варианты длинного и краткого наименований цветов и их эквивалентные значения RGB.

ОпцияОписаниеЭквивалентный триплет RGB
'красный' или 'r'Красный[1 0 0]
'green' или 'g'Зеленый[0 1 0]
'blue' или 'b'Синий[0 0 1]
'yellow' или 'y'Желтый[1 1 0]
'пурпурный' или 'm'Пурпурный[1 0 1]
'голубой' или 'c'Голубой[0 1 1]
'white' или 'w'Белый[1 1 1]
'black' или 'k'Черный[0 0 0]
'none'Нет цветаНе применяется

Пример: [0.5 0.5 0.5]

Пример: 'blue'

Цвет заливки маркера, заданный как 'auto', триплет RGB или один из цветовых параметров, перечисленных в таблице. Значение 'auto' использует тот же цвет в качестве Свойства цвета для осей.

Для пользовательского цвета укажите триплет RGB. Триплет RGB представляет собой трехэлементный вектор-строку, элементы которого определяют интенсивность красных, зеленых и синих компонентов цвета. Интенсивность должны быть в диапазоне [0,1]; например, [0,4 0,6 0,7]. Кроме того, вы можете задать имена некоторых простых цветов. В этой таблице перечислены варианты длинного и краткого наименований цветов и их эквивалентные значения RGB.

ОпцияОписаниеЭквивалентный триплет RGB
'красный' или 'r'Красный[1 0 0]
'green' или 'g'Зеленый[0 1 0]
'blue' или 'b'Синий[0 0 1]
'yellow' или 'y'Желтый[1 1 0]
'пурпурный' или 'm'Пурпурный[1 0 1]
'голубой' или 'c'Голубой[0 1 1]
'white' или 'w'Белый[1 1 1]
'black' или 'k'Черный[0 0 0]
'none'Нет цветаНе применяется

Example: [0.3 0.2 0.1]

Пример: 'green'

Максимальное количество точек сохранено и отображенное как часть строки, заданной как положительное значение или Inf. По умолчанию значение является одним миллионом точек. Если число точек превышает разрешенное максимальное значение, то анимированная строка сохраняет последний раз добавленные точки и упала на пункты с начала строки. Эти пункты, на которые упали, больше не отображаются на экране и не возвращены при использовании getpoints.

Используйте это свойство ограничить число точек, появляющееся на экране в любой момент времени или ограничить используемый объем памяти. Если вы задаете значение как Inf, то анимированная строка не упала ни на какие пункты, но сохраненное число точек ограничивается доступным объемом памяти.

Пример: 10

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

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

свернуть все

Объект AnimatedLine. Используйте an, чтобы изменить объект AnimatedLine после ее созданного, такой как изменение значений свойств или добавление точек к строке. Для списка свойств см. Свойства AnimatedLine.

Советы

  • Анимированные строки не поддерживают советы данных.

Расширенные возможности

Смотрите также

Функции

Свойства

Введенный в R2014b

Была ли эта тема полезной?