おまけ 簡単なアニメーションの作り方 – 計算結果の可視化
コンピュータで計算を行っていくと、計算結果をグラフやアニメーションにして可視化したい場面が出てきます。 ここでは gnuplot と Giam というソフトを使って、Windows PC上で簡単なアニメーションを作る方法について紹介します。
準備
アニメーションを作るための準備として、必要なソフトウェアである gnuplot と Giam を用意しましょう。 Giam は webページ http://furumizo.net/tsu/giamd.htm にて製作者が無料で配布しています。
数値計算結果のアニメーションはパラパラ漫画と同じ原理で作ることができます。 そのため、アニメーションを作るためにはパラパラ漫画の各コマに対応したデータファイルと画像が必要となります。 アニメーションを作る上で問題となるのは、
- 各コマに対応したデータファイルをどのように出力するのか
- 各コマに対応したそれぞれのデータファイルからどのように1コマ、1コマの絵を作るのか
- 作ったたくさんの画像ファイルをどうやってつなげてアニメーションにするのか
と言った点でしょう。 以下では簡単なアニメーションの作成例を通して、これらの問題にどうやって対応していくかについて学んでいきましょう。
簡単なアニメーションの作成例
ここでは下図のような簡単なアニメーションの作成例について触れていきます。
このアニメーションを作るためには、まず下に示すサンプルプログラムを実行してアニメーションの各コマに対応する連番のファイルを作成します。
program main implicit none integer :: Nx,Nt,ix,it real(8) :: Xf,Tf,dx,dt real(8) :: f,t,x real(8) :: k_1,omega_1 character(50) :: time_stamp,filename,gifname Xf=10d0 Tf=10d0 Nt=50 Nx=100 k_1=1d0 omega_1=1d0 dx=Xf/Nx dt=Tf/Nt open(10,file='plot.plt') write(10,*)'set term gif' write(10,*)'set yrange [-1.0:1.0]' do it=1,Nt t=dt*it write(time_stamp,'(I7.7)')it filename=trim('anim_')//trim(time_stamp)//'.dat' gifname=trim('anim_')//trim(time_stamp)//'.gif' ! makeing data file open(20,file=filename) do ix=1,Nx x=dx*ix f=sin(k_1*x-omega_1*t) write(20,'(3e16.6E3)')x,f end do close(20) ! makeing plot file write(10,*)trim('set output "')//trim(gifname)//'"' write(10,'(A)')'plot "'//trim(filename)//'" u 1:2 w l' end do write(10,*)'unset output' write(10,*)'reset' close(10) end program main
このプログラムを実行すると “anim_*******.dat” という50個のデータファイルと “plot.plt” というファイルが出力されます。 50個のデータファイルから gnuplot を用いて一つずつ画像ファイルを作っていく作業が必要となりますが、すべて手作業でやるのは大変です。 そこで先ほど出力していた “plot.plt” を使います。 このファイルには、データファイルから画像ファイルを作るために gnuplot コマンドがずらっと書いてあります。(開いて確認してみましょう) gnuplot を開いて load “plot.plt” と入力してみましょう。 すると gnuplotが “plot.plt” の中に書いてあるコマンドを順番に実行して、50個のデータファイルから50個の絵を作ってくれるはずです。
ここまでの操作が完了していれば、”anim_*******.gif” という50個の画像ファイルが出来上がっているはずです。 あとはこれらの gifファイルをつなげて、一つの gifアニメにすればアニメーションの作成は完了です。 たくさんの gifファイルを一つにつなげるために、先頭で紹介した Giamを使います。 まず、Giamを起動して「ファイル」->「コマの挿入」から、作成した50個の gifファイルをインポートします。 あとはコマ送りの速さなどを調節して「ファイル」->「名前を付けて保存」からアニメーションを保存すれば gifアニメの完成です。
おわりに
ここでは簡単なアニメーションの作り方について紹介しました。 ここに書いてあることを参考にしながら、自分で創意・工夫をして計算結果のアニメーションを作ってみましょう。