HOME > natural science Laboratory > コンピュータ・シミュレーション講座 > TIPS 集

gnuplotでアニメーション
直接 gif アニメーションを出力する

文責:遠藤 理平 (2010年12月 3日) カテゴリ:TIPS 集(107)

gnuplot はフリーのグラフ描画ツールですが、アニメーションも作ることができます。 gnuplot でアニメーション サイクロイド曲線では、 ファイル名が連番な jpg ファイルを書き出し、 「TMPGEnc」や「Giam」を用いて結合することでアニメーションを実現しましたが、gnuplot では直接 gif アニメーションを作成することができます。

gnuplot テンプレート

前回のサイクロイド曲線のテンプレートを改造して、gif アニメーションを作成するテンプレートを作成します。
出力ファイル名などを指定するためのメインファイルと、アニメーションを実現するために、繰り返し呼びこむことが必要なプログラム「cycloid.plt」に分けます。

set size ratio 0.2
set samples 256
set xrange [0:15]
set yrange [0:3]
set trange [0:5*pi]
set xtics 0, 2, 15
set ytics 0, 1, 3
set nokey
set parametric

set terminal gif animate optimize size 600, 240
set output "cycloid.gif"
set tics font 'Times,18'

load "cycloid.plt"
n = 0

cycloid.plt

if (exist("n")==0 || n<0) n=0 #変数の初期化
title(n) = sprintf("t = %d",n)  #タイトル名
unset label 
set label title(n)  font 'Times,20'  at 0 , 3.3 

theta = pi/20 * n
fx(t) = t<=theta ? t-sin(t) : 1/0
fy(t) = t<=theta ? 1-cos(t) : 1/0
plot fx(t),fy(t) w l,\
     cos(t)+theta,sin(t)+1 w l ,\
     fx(theta), fy(theta) with points pt 7 lc rgb "blue"

if (n<100)  n=n+1; reread

出力結果

20101203-1.gif



▲このページのトップNPO法人 natural science トップ

▲このページのトップNPO法人 natural science トップ




Warning: mysqli_connect(): (28000/1045): Access denied for user 'xsvx1015071_ri'@'sv102.xserver.jp' (using password: YES) in /home/xsvx1015071/include/natural-science/include_counter-d.php on line 8
MySQL DBとの接続に失敗しました