日曜日, 10月 13, 2013
位相進行プロットアニメ : phase marching plot
---------------
潮汐の状況アニメーションや,振動現象のモード表示のために
単振動グラフに現在時刻(現在位相)をプロットするという視覚表示がある.
とくに目新しい話題じゃないけど gnuplot でやってみる.
---------------
---------------
シェルスクリプト+ gnuplot で,こんな感じ.
#!/bin/bash
echo "createPhaseMarchingAnim.sh"
### parameter for plot
Xmin="-0.25*pi"
Xmax="2*pi+0.25*pi"
Ymin="-1.2"
Ymax=" 1.2"
### parameter for sliding point
Xinit=0.0
Xterm=6.28
nDiv=20
##-----
dX=`echo "scale=5; (${Xterm} - ${Xinit}) / ${nDiv}" | bc`
echo "dX:"${dX}
X=0.0
for i in `seq -w 1 $((nDiv+1)) ` ; do
Y=`echo "scale=5; s(${X})" | bc -l`
echo "i: "${i}" X: "${X}" Y: "${Y}
echo ${X}" "${Y} > "./point.tmp"
gnuplot << EOF
set out "output${i}.gif"
set term gif
set grid
set xrange [$Xmin:$Xmax]
set yrange [$Ymin:$Ymax]
set title "$TITLE"
set pointsize 4
plot sin(x), "point.tmp" w points pointtype 6 title "current point"
EOF
# plot sin(x), "point.tmp" w points pointtype 6 title "current point"
X=`echo "scale=5; (${X} + ${dX})" | bc`
done
convert -delay 10 -loop 0 ./output*.gif animation.gif
---------------
頑張った点:
・bc コマンドの scale オプションを知らなかった.
・gnuplot の pointtype オプションは set term の種別で違うものがでるかも..
---------------
パラメータを変えて,こんな感じにも.
0 件のコメント:
コメントを投稿