物理シミュレーションをよりスムーズに動かす方法。
物理シミュレーションで運動物体を作るとき、Dataが少ない時はスムーズに動くのに膨大なDATAを必要とする複雑な動きを再現するときなどでは動きがぎこちなくなります。
これは、Excelのもつ再計算機能のためで、DATAが増えれば再計算数が増えるのそれに要する時間が増えるからです。
したがって再計算を必要最小限にする手だてをすればよいわけです。そのためには、まず
1.シミュレーションSheetとDataSheetを分ける。
2.DataSheetで長時間分の膨大なData(時刻ごとの物体の位置座標を含む)を動かす前に一括計算しておき、その結果をシミュレーションSheetに値コピーしておく。
3.この中の物体の位置座標をLookup関数で時刻ごとに表示させることで物体をうごかす。
これだけでずいぶん動きがスムーズになります。
次に、正確な時間にこだわらず、時計のスピードをコントロールすることで物体の運動スピードを自在に表現でき、物体の動きをよりスムーズにすることができます。
下の例は、57,000個のDataをSheet3で事前に計算させ、シミュレーションSheetにコピーしておいて
から、Do~Loopでカウンターを動かすComanndです。
これはカウント数を変化させ時計を進める方式で、時刻はカウント数×⊿tで表示させるので、⊿tを変えることで表示スピードを変える事ができ動きがスムーズになります。
物体を動かすだけだったらこれで良いのですが、軌道を表示させるときは時刻がきたら位置情報を表示させるような条件式を入れた軌道表示用2列3,000行分が必要となりますが、再計算量は大幅に減るのでスムーズに動きます。
2016.12.12 よしと