gnupotの出力から動画作成
splotで3次元の出力をしたら見にくかったので,
2次元に切った画像を動画にしてみたときの操作メモ.
まずは,c++などでデータを出力
double func(double c, double d){ return 0;//適当な関数 } void outputC(int i, int n){ double c = 1.0*i/n; char fname[256]; sprintf(fname,"dat/c%03d.dat", i); std::ofstream out(fname); for(int j=1;j<=n;++j){ double d = 1.0*j/n; out << c << ' ' << d << ' ' << func(c,d) << "\n"; } } int main(int,char**){ int n = 128; for(int i=1;i<=n;++i){ outputC(i,n); } return 0; }
生成したデータをgnuplotでpng画像に変換し,ffmpegでaviファイルに変換
#!/bin/sh ls dat/*.dat | while read FILE do NAME=`basename $FILE .dat` echo "$NAME" gnuplot <<EOF set xrange [0:1.0] set yrange [1.0:10.0] set term png set output "dat/$NAME.png" plot "dat/$NAME.dat" using 2:3 w l EOF done ffmpeg -r 10 -i "dat/%3d.png" -vcodec mjpeg -sameq out.avi