2012-03-25 3 views
2

私は、基本的にbox2dを使って正確な軌道重力システムを作成しようとしています。私は地球上で弾丸を撃ちたいと思っており、この弾丸の速さに応じて、地球から脱出し、地球周回軌道に留まり、例えば地球表面上に240度または45度に上陸します。 (弾丸が0度で発射すると仮定して) 私は多くの研究をしてニュートンの物理法則に夢中になっています。 基本的なapplyforceは十分に正確な仕事をしていないようです。 私は、軌道に留まるために必要なオブジェクトの速度を計算する式も見つけました。これをbox2d内で行うことができました。しかし、私が弾を止めたいなら、弾丸は再び地球上に落ちないでしょう。 (力は半径方向の重力に適用され、第2の適用力は弾丸を「右方向に」移動するために使用される)軌道上に留まる。私がダンピングを加えるだけで、弾丸は地球に落ちますが、これは私には間違っているようです。弾丸が何か他のものと衝突すると、それも湿ってしまいます。box2dを使って正確な軌道重力を作る方法に関するアイデアはありますか?

ここでの主な問題は、弾丸の速度を変更することです。弾丸は着陸するのにx時間かかると言います:180度。弾丸が地球表面からどれくらい離れているかに応じて、同じ速度で180度の速度で着陸する。私は速度が真の正確な半径方向の重力を作るための鍵だと思いますが、私の質問は、これは本当ですか、皆さんはどう思いますか?誰も同じようなシナリオを持っていますか? 減衰とsetlinearvelocityを使用せずに、どのようにして最も適切な方法で速度を制御しますか?

また、弾丸の軌道、脱出、または土地に戻すために必要な速度を制御できるようにしたいと考えています。軌道速度を計算する公式もあるので、これが可能でなければなりません。 など。それが間違っているとき、弾丸はあまりにも速く動いています。地球から逃げ出しますが、地球の重力は弾の道を変えるので、戻ってきます。

Btw:私はインターネット上で多くの検索をしましたが、実は実際のbox2dコードにリンクすることはできません。だから、誰かが私に正しい方向を教えてくれることを願っています。 よろしくお願いします!

+0

「ダンピングを加えるだけで、弾丸は地球に戻ってきますが、これは私には間違っているようです。」どうやら実際の衛星にはわずかな量の抗力があるので、それは私のように思えます。 http://www.aero.org/capabilities/cords/faq1.html申し訳ありませんがもっと助けることができません:) – iforce2d

+0

うーん...興味深い、私は宇宙の空気抵抗がない...しかし、これは感覚を作るもちろん、これは重力の法則についても説明しています...(オブジェクトは、何もせずにストレートラインで永遠に動くで​​しょう)... guesでは、ダンピングとスピードのバランスを調整しバランスを取ることになります... 。それが正しいように。速度を下げるために必要な減衰を計算できる公式はありますか?私は10秒から5秒に2秒で速度を下げたいと思っていますが、減衰比はどのくらいでしょうか?このリンクを指すThnx ... !! :-) – stationX

+0

これは-2.5m/s/s、f = maの加速度になるので、2秒間の質量* 2.5のApplyForceが可能です。ダンピングは、タイムステップごとに体の速度を減少させるので、計算するのが難しいです。 – iforce2d

答えて

3

私はこれを見つけましたhttp://www.emanueleferonato.com/2012/03/28/simulate-radial-gravity-also-know-as-planet-gravity-with-box2d-as-seen-on-angry-birds-space/は、ActionScript3用のBox2Dを使用して放射状の重力(惑星重力)を実行する素晴らしい例でしたが、C++用のBox2Dに簡単に移植できます。他のトリックも行うためのBox2Dの例がいくつかあります。

+0

Heey、thnxは答えです!はい、それは良い出発点です。私はiOSでこれを行うことができました。しかし、この例のこのボックスを軌道に留まらせたり、惑星に優しく着陸させることは非常に難しいことに気付きました!ボックスを作成すると、それが惑星の重力場から簡単に脱出できるようになります。これは私が望むものではありません。そのボックスはどうにかして「捕らえられる」必要があります。 ABSでは、それらの鳥が惑星の周りの第2ラウンドで何かを打つことができることに気付くことができます。とにかく....私は軌道の数式と単純な減衰をbox2dで使って、その軌道の効果を再現しようとしました。 – stationX

+0

ねえ、私は必要なものでその例を改善するためにリンクを使用しました。 http:// www。mvfusion.nl/no-this-is-notgoing-to-be-angry-birds-space-v2/私は、軌道重力の影響を再現する方法を見つけたと思っています。 – stationX

+0

問題は、box2dの通常の線形重力のように、オブジェクトが静止位置を見つけることができないということです。これは、多くの '破片'オブジェクトがある場合には問題になります。 – SpoonMeiser

関連する問題