1

私は基本的な衝突検出を学んでいます。

衝突検出に事後 (離散) メソッドを使用します。2D の 2 つの円、同じ質量、同じサイズの最も単純なケースを想定し、弾性衝突を想定し、x 軸上を移動し、互いに向かって移動していると想定します。

シミュレーションを 1 タイム ステップ進めました。

ここで円が衝突し、ある円が別の円に入ったとします。これは、それらの中心間の距離が 2*r (r は半径) より小さいことを確認することによって検出されます)。

標準方程式に従って速度が調整され、シミュレーションが 1 タイム ステップ進み、位置が調整されます。この場合、速度は方向を反転し、円は互いに遠ざかり始めます。

問題は、シミュレーションのタイム ステップが小さすぎるか、オブジェクトの動きが遅すぎる場合、2 つの円がまだ完全に互いに離れていないため、次のステップまでに 2 つの円が衝突したままになる可能性があることです。

したがって、次の時間ステップで、円が再び衝突していることがわかり、速度が再び調整されますが、今度は円が後方に反転するため、円は互いの円に戻り始めます。

次の時間ステップで、衝突が再び検出され、速度が調整され、円が互いの円から離れるようになります。

このプロセスが繰り返され、円は衝突したままになり、互いに完全に離れることができなくなります。

これは、事後法に関する既知の問題であると確信しています。このシナリオを解決する最善の方法は何ですか?

4

1 に答える 1

0

The standard solution is to move the objects apart when collision is detected. Calculate the amount of overlap and move each object away from the other by half this distance. You can even factor in the masses of the objects if you want (heavier objects are shifted less). Hope this helps.

于 2013-01-07T22:16:16.690 に答える