見出し画像

IgorPro8でボールを動かす

投稿論文と就活に追われているなか始めました。

テスト前に他のことやりたくなるアレと一緒です。


皆おなじみのIgorPro8で遊んでみました。

グラフ解析ツールであるIgorでこんなことも出来るよ、ってのを発信したいのもありますが、ほぼ備忘録みたいなものです。


今回はよくあるボール動かすやつやりました。

(gifにしないと見れないんですね。気をつけよ)

画像1

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


就活やだ~~~

論文だるい~~~~~

いいなと思ったら応援しよう!