exponenta event banner

фильм

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

Описание

пример

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 см. Свойства изображения и colormap.

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

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

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

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

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

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

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

Совет

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

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

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

    Вы можете прервать фильм, введя Ctrl-C.

См. также

| |

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