概要
windowsのOctaveを用いて,gifアニメーションを作成してみます.
できる限り楽で軽い方法を探しました.
データ
データは 1xN の行列(ベクトル)を用います.
流れ
一度pngファイルにしてから,gifに変換します.
点が増えて行く場合
グラフを定義します.
これは最後にpngに保存するために必要です.
img.m
h=gcf();
そして,通常のようにグラフを描いていきます.
hold on は,まだグラフを初期化せずにholdしておくということです.
sprintfによって,pngファイルの名前をiに依存する名前にしています.
img.m
for i=1:N
plot(x(i),y(i),"or")
hold on
xlim([-10 10])
ylim([-10 10])
saveas(h, sprintf('img_%03d.png', i));
endfor
点が動いていく
点が動く場合は毎回hold offすれば可能です.
img.m
for i=1:N
plot(x(i),y(i),"or")
hold on
xlim([-10 10])
ylim([-10 10])
saveas(h, sprintf('img_%03d.png', i));
endfor
pngをgifに変換
このサイトを使えば,オンラインで変換可能です.
おまけ
グラデーション
グラフの種類によっては点の色を変えてグラデーションにしてみるということも考えられます.
img.m
for i=1:N
plot(x(i),y(i),"or","Color",[i/N, 1-i/N, 0.5])
hold on
xlim([-10 10])
ylim([-10 10])
endfor
点の色ををランダムに変えることも
img.m
color = rand(N, 3)
for i=1:N
plot(x(i),y(i),"or","Color",[color(i,1), color(i,2), color(i,3)])
hold on
xlim([-10 10])
ylim([-10 10])
endfor