movie

Воспроизведение записанных кадров фильма

Описание

пример

movie(M) воспроизводит кадры фильма в массиве M один раз. Чтобы создать кадр фильма из текущей фигуры или осей, смотрите getframe.

пример

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

пример

movie(M,n,fps) задает количество систем координат в секунду fps на котором играть фильм.

пример

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

пример

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

Примеры

свернуть все

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

Создайте figure h объекта. Инициализируйте объемную поверхностную диаграмму peaks функциональные Z. Настройте ось рисунка.

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

Предварительно выделите массив из 40 M для хранения кадров фильма.

loops = 40;
M(loops) = struct('cdata',[],'colormap',[]);

Для каждой итерации j, захватывайте каждый график функции X как отдельная система координат. Сохраните систему координат в M.

Установите 'Visible' свойство объекта рисунка, чтобы 'off' чтобы скрыть объемные поверхностные диаграммы при вычислении X.

h.Visible = 'off';
for j = 1:loops
    X = sin(j*pi/10)*Z;
    surf(X,Z)
    drawnow
    M(j) = getframe;
end

Установите 'Visible' свойство рисунка, чтобы 'on' и играть фильм в M один раз.

h.Visible = 'on';

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

movie(M);

Просмотрите графики рисунков во время их вычисления. Воспроизведите массив фильмов один раз.

Создайте figure h объекта и инициализируйте объемную поверхностную диаграмму. Настройте ось рисунка.

h = figure;
Z = peaks;
surf(Z)
axis tight manual

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

ax = gca;
ax.NextPlot = 'replaceChildren';

Предварительно выделите массив из 40 M для хранения кадров фильма.

loops = 40;
M(loops) = struct('cdata',[],'colormap',[]);

Захватывайте каждый график функции X как отдельная система координат и хранить их в M.

for j = 1:loops
    X = sin(j*pi/10)*Z;
    surf(X,Z)
    drawnow
    M(j) = getframe;
end

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

Воспроизведение фильма в M один раз.

movie(M);

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

Создайте figure h объекта и инициализируйте объемную поверхностную диаграмму. Настройте ось рисунка.

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

Предварительно выделите массив из 40 M для хранения кадров фильма.

loops = 40;
M(loops) = struct('cdata',[],'colormap',[]);

Захватывайте каждый график функции X как отдельная система координат и хранить их в M.

Установите 'Visible' свойство объекта рисунка, чтобы 'off'.

h.Visible = 'off';
for j = 1:loops
    X = sin(j*pi/10)*Z;
    surf(X,Z)
    drawnow
    M(j) = getframe;
end

Установите 'Visible' свойство рисунка, чтобы 'on'. Проигрывайте первые , пятнадцатые двадцать третьи и тридцать шестые системы координат в фильме в последовательном порядке дважды. Установите фильм, чтобы воспроизводить 12 системы координат в секунду.

h.Visible = 'on';

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

movie(M,[2 1 15 23 36],12);

Указание количества систем координат в секунду для воспроизведения фильма.

Создайте figure h объекта и инициализируйте объемную поверхностную диаграмму. Настройте ось рисунка.

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

Предварительно выделите массив из 40 M для хранения кадров фильма.

loops = 40;
M(loops) = struct('cdata',[],'colormap',[]);

Захватывайте каждый график функции X как отдельная система координат и хранить их в M.

Установите 'Visible' свойство объекта рисунка, чтобы 'off'.

h.Visible = 'off';
for j = 1:loops
    X = sin(j*pi/10)*Z;
    surf(X,Z)
    drawnow
    M(j) = getframe;
end

Установите 'Visible' свойство рисунка, чтобы 'on'. Воспроизведение фильма один раз со скоростью 6 систем координат в секунду.

h.Visible = 'on';

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

movie(M,1,6);

Воспроизведение кадров фильма в левом нижнем углу рисунка.

Создайте figure h объекта и инициализируйте объемную поверхностную диаграмму. Настройте ось рисунка.

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

Предварительно выделите массив из 40 M для хранения кадров фильма.

loops = 40;
M(loops) = struct('cdata',[],'colormap',[]);

Установите 'Visible' свойство объекта рисунка, чтобы 'off'. Захватывайте каждый рисунок в указатель h как отдельная система координат и хранить их в M.

h.Visible = 'off';
for j = 1:loops
    X = sin(j*pi/10)*Z;
    surf(X,Z)
    drawnow
    M(j) = getframe(h);
end

Установите 'Visible' свойство рисунка, чтобы 'on'. Воспроизведение фильма в M один раз с 12 системами координат в секунду и со смещением 30 пикселей в направлениях x и y. Задайте h указателя воспроизведение фильма на текущей фигуре.

h.Visible = 'on';

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

movie(h,M,1,12,[30 30 0 0]);

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

свернуть все

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

Можно использовать getframe функция для захвата и хранения данных изображения как структуры с полями cdata и colormap. Для получения дополнительной информации о cdata свойство изображения и colormap , см. Image Properties и colormap.

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

Если вы задаете n в качестве вектора первый элемент является количеством раз для воспроизведения фильма, а остальные элементы составляют список систем координат для воспроизведения в фильме.

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

Системы координат в секунду, заданные как числовой скаляр. Если вы не задаете fps, movie будет воспроизводить 12 системы координат в секунду. Если ваша машина не может достичь скорости, которую вы задаете как fps, он будет играть фильм как можно быстрее.

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

Если вы хотите воспроизвести фильм на рисунке вместо осей, задайте указатель на фигуру (или gcf) как первый аргумент: фильм (figure_handle,...).

Вектор местоположения, заданный как четырехэлементный числовой массив, [x y 0 0], где нижний левый угол кадра фильма привязывается в координатах, заданных первыми двумя элементами массива. Координаты, указанные в loc относятся к нижнему левому углу рисунка или осям, заданным указателем h, и указаны в единицах измерения пикселей. The movie функция игнорирует последние два элемента loc.

Совет

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

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

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

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

См. также

| |

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