5

私は物理学のプログラミングで衝突について学んでいますが、大きな疑問が 1 つあります。

球で考えてみると、一つの球が同時に二つの球に衝突すると、両方の球を動かす力の大きさは 2 で割る必要があると思いました。しかし、私がそれをプログラミングしているとき、私はいつも 1 つの球体が 2 番目の球体よりも速い速度を持っていることを確認します。問題を明確に表す画像を表示してみましょう。

ここに画像の説明を入力

最初は赤い球体を検出します。その後、衝突が検出され、力の大きさは、球が 1 つしかないようなものになります。次に、オレンジ色の球を検出し、力の大きさは最初のものよりも小さくなります。

これをプログラムするために何を使用する必要があるか、または誤解がある場合はどうすればよいですか?

mod :

さらに、これをうまく実現するメカニズムを探すのを手伝ってくれたら、さらに 50 以上あげます。

4

4 に答える 4

1

力、速度、エネルギーなどの変化を計算する前に、考えられるすべてのペアワイズ相互作用をテストするように注意してください。物理シミュレーションは、最初の衝突が検出された直後にダイナミクスを計算することに満足しているようです。

于 2012-04-30T06:07:13.217 に答える
1

問題は、2 体の衝突の場合、基本的にエネルギーと運動量の保存で結果を決定するのに十分ですが、3 体の問題ではこれが当てはまらないことです。Mark と Daren が提案することを実行し、タイム ステップ内ですべての衝突体を決定したとしても、1) 衝突後にオブジェクトを移動する方法がまだわからないため、実際にはどこにも到達しません。2) 各衝突で考慮すべきオブジェクトの数に関する主な問題は、タイムステップではなく、オブジェクトの変形です。これを正しく処理すれば、タイムステップ内の更新の順序は問題になりません。たとえば、非常に柔らかいオブジェクトがある場合、それらはおそらく多くのタイム ステップで接触し、非常に硬いオブジェクトは数タイム ステップだけ接触します。

この問題に対する適切な答えは少しトリッキーです。その理由はボーナスの質問に含まれています。つまり、メカニズムは何ですか。メカニズムは基本的に、単純化された問題で考慮していないものだけです: オブジェクトの変形、スリップ、回転などですが、これらは通常、3 体の衝突で支配的な問題になります。

何をするかは、必要な精度に完全に依存します。すべての衝突が 2 つのオブジェクト間で発生するか、2 つに衝突する 3 番目の衝突が常に正確に対称であると仮定することができます (これは非常にまれなイベントです)。より正確な出発点として、それらは変形可能なオブジェクトであると考えることができ、各衝突にはすべてが最大に変形する瞬間があり、これらの変形から生じる力は何か、これらの力に基づいて物を送ることができます( F=dp/dt)。ただし、どちらが最初にヒットしたかに基づいて運動量の移動を分割し、これに比例する量 do (変形の量)/(次のオブジェクトまでの距離) などを与えるなど、他の近似を行うこともできます。

于 2012-05-09T04:10:53.263 に答える
1

DarenW が意味したこと (n00b として、彼の回答に直接コメントすることはできません) は、シーケンスが次のようになる必要があるということでした。

//test for collisions
blueHitRed = didCollide(blue, red)
blueHitOrange = didCollide(blue, orange)
...
//calculate resultant velocities
red.velocity = ...
orange.velocity = ...
blue.velocity

あなたの説明から、このようなことが実際に起こっているように見えますが、

//red
blueHitRed = ...
red.velocity = ...
blue.velocity = ...
//orange
blueHitOrange = ...
orange.velocity = ...
blue.velocity = ...
于 2012-05-03T20:53:43.957 に答える
-2

これはN 体問題の場合です。一般に、分析的な解決策はないため、近似値が得られます。それを 2 つの別個の衝突として扱うことは、十分な近似です。

[編集] 明確にするために: 3 つの物体がすべて相互作用している場合、その非常に短い時間間隔で、それは n 体の問題です。ニュートニナン n 体問題ではなく、より一般的なケースです。

于 2012-04-29T04:16:24.430 に答える