processing」タグアーカイブ

3体問題

最近更新していないじゃないか,とsierraさんに怒られたので久しぶりの更新です.
もう少しまめに更新を行おうと思います.

toggerの3体問題のまとめをたどって見た3体問題の特殊解がおもしろかったので,プログラムを書いてみました.パラメータはInstitude of Physics Belgrade THREE-BODY GALLERYから拝借しました.いずれも周期性を持ったシミュレーションになっています.

0-9キー:異なる初期値でシミュレーション  スペース : 色替え
7, 8, 9ではかなり計算精度を上げているので,少し重いかも

はじめは単純なオイラー法でシミュレーションを実装していて,Brouckeのパラメータではそれでもうまく出来ていたのですが,計算精度が悪いせいかDRAGONFLY以降のパラメータではすぐに発散してしまいました.精度を上げるためにルンゲクッタに変えてみても発散してしまったため,しょうがないのでDRAGONFLY以降のパラメータでは計算ステップをかなり細かくしています.GOGGLESパラメータは特に計算がシビアなようで,ずっと動かしているとそのうち発散します.今回はprocessingで作ったのですが,processingはクラスインスタンスを生成すると極端に遅くなってしまうので,やっぱりプログラマよりはデザイナ向けの環境なんだなぁと思いました.

個人的には一番最初に表示している”Broucke A11″や2番目の”Broucke A7″あたりがかなり美しくデザインされている感じがして好きです.実際に宇宙には複数の恒星から成る系もあるそうなので,今回シミュレーションしたような軌跡を描いている星も実在するかもしれないと考えるとロマンがありますね.

バネ・ダンパ・斥力

なんか,前もちょっと似たプログラムを作った気がしますが,
バネ・ダンパと斥力のデモプログラムを作りました.
適当に作ったので,ときどき落ちるかもしれません.

マウス:掴む,1~6キー:リセット

プログラム自体はすぐできたんですが,ブラウザで実行するとやたら遅かったので原因を調べたところ,どうやらメモリ確保がボトルネックになっていたみたいだったので,インスタンスを使いまわす汚い書き方に修正しました.processingってなんかお洒落なんでモダンな感じにプログラミングできるかと思ったんですが,意外と芋っぽいですね.実行環境の制約があるので仕方ないといえば仕方ないですが.