Tuesday 6 December 2011

paramfplot2d---animated plot

以前の重力シミュレーションの時に,plot を動的に,アニメーションで表示できたらええな,と思ったので調べてみた.
scilab an 辺りで animation が候補に出てくる.割とポピュラーな話題のようだ.
まず今日見つかったのが paramfplot2d 氏.以下サンプルコード,解説などはここを参照する.
この関数は "Animated plot of the function x, t-->f(x,t) for t=theta(1),theta(2),etc."
とりあえずはサンプルコードを見てみよう.シンプルそうな一個目を見る.
deff('y=f(x,t)','y=t*sin(x)') //関数定義.
x=linspace(0,2*%pi,50); //linspace: linearly spaced vector
theta=0:0.05:1; // 刻み
clf;// 一旦画像消す……のだがこの行なくても同じように動く 
paramfplot2d(f,x,theta); // 今回の焦点
t sin x の t がじわじわ大きくなる時のアニメーションが表示される.
paramfplot2d の各引数についてはこれでわかりやすい.
3行目を theta=0:0.005:1; と書き換えると動きはもっとのったりする.
step 間の時間調整もなんかあるのかな…また調べとこう.

clf;  の存在意義はこのコード中最大の謎.

また, linspace linearly spaced vector も便利そう.
この場合は,0~2π を50 個に linear に分けた vector が x となる.一般には
[v]=linspace(x1,x2 [,n])
 n は省略可能で, default では 100 に設定されている.x とかは複素数で良い.

今日お知り合いになれたのは皆使い所の多そうな人たちである.

No comments:

Post a Comment