シミュレーション」タグアーカイブ

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″あたりがかなり美しくデザインされている感じがして好きです.実際に宇宙には複数の恒星から成る系もあるそうなので,今回シミュレーションしたような軌跡を描いている星も実在するかもしれないと考えるとロマンがありますね.

バネダンパ2

機能作ったプログラムに摩擦とかを追加して,車っぽい物体を動かしてみました.

動画

それっぽい動きになってきたと思うんですがどうでしょうか.
動きの自体は3次元で作ってあるので,今後はあたり判定とかを中心に作ってこうと思います.

バネダンパ

部活でレースゲームを作ることになりました.
それで,車の挙動の担当になったのでテストにとりあえずバネダンパのシミュレーションを書いてみました.

動画

単純にノードにバネとダンパをつないだものですが,最近ゲーム業界でベルレ積分が流行ってるらしいので真似して使って見ました.
いろいろいじってるのがバネ係数,ダンパ係数,ノードの質量,リンクの長さです.

とりあえず作ったという感じですが,自分で作った物理法則にしたがってものが動くのを見るのは楽しいですね.

11/10 重力の計算がおかしかったので修正しました.