Сделать фильм в MatLab
Я пытаюсь создать короткую анимацию в MatLab с помощью команды movie
. Предполагается, что анимация рисует круг. Однако, когда я запускаю следующий сценарий, знак "о"просто скачет случайным образом вокруг окна рисунка, не оставляя следа.
z = linspace(0,2*pi,100);
nframes = length(z);
Frames = moviein(nframes);
for i = 1:nframes
x = cos(i);
y = sin(i);
plot(x,y,'o','erase','none');
Frames(:,i) = getframe;
pause(0.25);
end
movie(Frames,1)
Если кто-нибудь может объяснить мне, почему сценарий не работает правильно, я буду очень признателен!
3 ответа:
Это рисует круг. Надеюсь, это поможет.
z = linspace(0,2*pi,100); nframes = length(z); Frames = moviein(nframes); for i = 1:nframes x = cos(2*pi*i/nframes); y = sin(2*pi*i/nframes); plot(x,y,'o'); hold on Frames(:,i) = getframe; pause(0.01); end movie(Frames,1)
Вы, вероятно, хотите сделать цикл через вектор
z
. Попробуйте изменитьx = cos(i)
наx = cos(z(i))
и то же самое сy = sin(i)
.
Довольно поздно с этим, но я надеюсь, что это может быть полезно для кого-то там... Я ищу способы анимировать точки На круге, и, хотя я еще не понял этого, я заметил кое-что в предложенном выше коде, что может сделать ваш круг более "круглым". после того, как вы установите
hold on
Если вы добавите еще одну строку, чтобы просто сказать
axis('equal');
Вы получите ось, масштаб которой соответствует графику, и поэтому ваш круг не поврежден в зависимости от окна рисунка размеры.