IgorPro8でボールを動かす
投稿論文と就活に追われているなか始めました。
テスト前に他のことやりたくなるアレと一緒です。
皆おなじみのIgorPro8で遊んでみました。
グラフ解析ツールであるIgorでこんなことも出来るよ、ってのを発信したいのもありますが、ほぼ備忘録みたいなものです。
今回はよくあるボール動かすやつやりました。
(gifにしないと見れないんですね。気をつけよ)
Function Main()
Newmovie/O/F=60 //動画の保存
Setup()
move()
closemovie
end
Function Setup()
variable n=0
//___ボールの作成
make/O/N=1 Pos1_X,Pos1_Y
make/O/N=1 Pos2_X,Pos2_Y
//___画面の作成
dowindow/K PosDisplay
dowindow/F PosDisplay
Display/W=(30,30,430,430)/N=PosDisplay
//___ボールの追加1 (初期位置)
Pos1_X = n
Pos1_Y = n
AppendtoGraph/W=PosDisplay/C=(65535,0,0) Pos1_X vs Pos1_Y
//___ボールの追加2 (初期位置)
Pos2_X = n
Pos2_Y = n
AppendtoGraph/W=PosDisplay/C=(0,65535,0) Pos2_X vs Pos2_Y
//___諸々の調整
ModifyGraph mode=3,marker=19,msize=5,tick=3,mirror=1,noLabel=1,margin=28
Setaxis Left -10,10
Setaxis bottom -10,10
End
Function move()
variable n=0
//___Waveの導入
Wave Pos1_X,Pos1_Y
Wave Pos2_X,Pos2_Y
//___ボールを動かす
for(n=0;n<600;n++)
//____動く方法 (ボール1)
Pos1_X = n/10
Pos1_Y = 0
//____端で跳ね返る
if(Pos1_X[0] > 10)
Pos1_X[0] = 10-(Pos1_X[0]-10)
if(Pos1_X[0] < -10)
Pos1_X[0] = -10-(Pos1_X[0]+10)
endif
endif
//____動く方法 (ボール1)
Pos2_X = 0
Pos2_Y = n/10
//____端で跳ね返る
if(Pos2_Y[0] > 10)
Pos2_Y[0] = 10-(Pos2_Y[0]-10)
if(Pos2_Y[0] < -10)
Pos2_Y[0] = -10-(Pos2_Y[0]+10)
endif
endif
//____画面の更新
doupdate/W=PosDisplay/E=1
//____動画フレームへの追加
AddMovieframe
endfor
end
こんな感じになりました。意外と一般化がめんどくさい。
とりあえず動いたからヨシ
普通に使ってたら動画を保存できることを知らない人も多いのでは?
結構自由度高いし、グラフ描画ソフトだけあって画面周りはとても充実してます。みんなもやろうIgorPro
就活やだ~~~
論文だるい~~~~~