exponenta event banner

фильм

Проигрывайте зарегистрированные кадры фильма

Синтаксис

movie(M)
movie(M,n)
movie(M,n,fps)
movie(h,...)
movie(h,M,n,fps,loc)

Описание

Функция movie проигрывает фильм, заданный матрицей, столбцы которой являются кадрами фильма (обычно производимый getframe).

movie(M) проигрывает фильм в матричном M однажды, с помощью текущей системы координат в качестве цели по умолчанию. Если вы хотите проигрывать фильм в фигуре вместо осей, задайте указатель фигуры (или gcf) в качестве первого аргумента: movie(figure_handle,...). M должен быть массивом кадров фильма (обычно от getframe).

movie(M,n) проигрывает фильм времена n. Если n отрицателен, каждый цикл показывают вперед затем назад. Если n является вектором, первый элемент является числом раз, чтобы проигрывать фильм, и остающиеся элементы составляют список кадров, чтобы вопроизвести в фильме.

Например, если M имеет четыре кадра затем, n = [10 4 4 2 1] проигрывает фильм десять раз, и фильм состоит из кадра 4, сопровождаемый кадром 4 снова, сопровождаемый кадром 2, и наконец структурируйте 1.

movie(M,n,fps) проигрывает фильм на уровне кадров в секунду fps. Значение по умолчанию составляет 12 кадров в секунду. Компьютеры, которые не могут достигнуть заданной игры скорости максимально быстро.

movie(h,...) проигрывает фильм, сосредоточенный в фигуре или осях, идентифицированных указателем h. Определение фигуры или осей позволяет MATLAB® соответствовать фильму к доступному размеру.

movie(h,M,n,fps,loc) задает loc, четырехэлементный вектор местоположения, [x y 0 0], где левый нижний угол кадра фильма привязывается (только первые два элемента в векторе используются). Местоположение относительно левого нижнего угла фигуры или осей, заданных handle h и в модулях пикселей, независимо от свойства Units объекта.

Примеры

свернуть все

Используйте функцию getframe в цикле, чтобы записать кадры вибрирования функции peaks. Предварительно выделите массив, чтобы сохранить кадры фильма.

figure
Z = peaks;
surf(Z)
axis tight manual
ax = gca;
ax.NextPlot = 'replaceChildren';


loops = 40;
F(loops) = struct('cdata',[],'colormap',[]);
for j = 1:loops
    X = sin(j*pi/10)*Z;
    surf(X,Z)
    drawnow
    F(j) = getframe;
end

Чтобы проигрывать фильм два раза, используйте movie(F,2).

Советы

Функция movie использует размер фигуры по умолчанию 560 420 и не изменяет размер фигур, чтобы соответствовать фильмам большими или меньшими кадрами. Чтобы разместить другие форматы кадра, можно изменить размер фигуры, чтобы соответствовать фильму.

movie только принимает 8-битные фреймы изображения; это не принимает 16-битные полутоновые или 24-битные фреймы изображения истинного цвета.

Буферизация фильма помещает все кадры в память. В результате на Microsoft® Windows® и возможно других платформах, длинный фильм (на порядке нескольких сотен кадров) может исчерпать память, в зависимости от системных ресурсов. В таких случаях выпущено сообщение об ошибке:

??? Error using ==> movie 
Could not create movie frame

Можно прервать фильм путем ввода Ctrl-C.

movie не является встроенной функцией. Поэтому вы не можете вызвать movie с помощью функции builtin.

Ограничения со средством отображения на Windows Systems

Установка фигуры свойство Renderer к painters работает вокруг ограничений использования getframe со средством отображения OpenGL в некоторых системах Windows.

Представлено до R2006a