したがって、2つの円間の衝突検出は、d <(r1 + r2)のような単純な条件で簡単にカバーできますが、オブジェクトが2つのタイムステップで互いに通過するとどうなりますか?
初速度と加速度が0ではないボールのプール内でシリンダーを動かすプログラムを書きたいです。太さが計算を複雑にしすぎる場合は、太さが無限大の非常に硬いワイヤーの細いストリングを検討することができます。
衝突の問題が示されていますが、縮尺どおりに描かれていません http://i.imgur.com/An1GJxI.png
シリンダーは直立しており、z軸に位置合わせされています。そのベースは一定の速度で任意の単一の方向にスライドしているため、衝突からどれだけの力がかかってもパスは変化しません。ボールはランダムな動きで動いています。ボール自体の衝突は個別に計算され、ここでは問題になりません。
ペナルティ衝突応答を使用したいのですが、侵入深さを判断するのに問題があります。より簡単な非弾性衝突応答があれば、私もそれを試すことができます。
これは数値解法であるため、各タイムステップでの位置は目立たないものです。速度が制限されていない場合、次の問題が発生する可能性があります。
単一のタイムステップでは、ボールとシリンダーの両方が移動しています。速度が十分に速い場合、ボールはシリンダー内をTnからTn + 1まで右に移動し、単純な距離テストd <(r1 + r2)に失敗します。 )。
ボールと球が互いに真っ直ぐ通過する場合、添付の画像で問題が発生した場合、1次近似を使用してどのように衝撃点を見つける必要がありますか?それらが衝突するかどうかを確認するための正しい条件は何ですか?正しい衝突を反映するために、ペナルティ力をどのように計算する必要がありますか?
ペナルティフォースはどのように計算する必要がありますか?また、衝突力の適切な貫通力と適切な法線の計算についても少し混乱しています。