現在、衝突の検出と応答に分離軸定理を使用するミニ物理ゲームがありますが、SAT 衝突を使用して別の形状と衝突した後にオブジェクトの速度に何が起こるかについてのドキュメントがあまりないことを発見したとき、私は立ち往生しました検出。
これが私が話していることの2つの図です。
誰かが私を正しい方向に向けることができますか?
衝突後に得られるすべての情報は、最小侵入ベクトルです。
編集:これに非常に関連するコードをオンラインで見つけましたが、理解できません:
void CBody::ProcessCollision(CBody& xBody, const Vector& N, float t)
{
Vector D = m_xDisplacement - xBody.m_xDisplacement;
float n = D * N;
Vector Dn = N * n;
Vector Dt = D - Dn;
if (n > 0.0f) Dn = Vector(0, 0);
float dt = Dt * Dt;
float CoF = s_fFriction;
if (dt < s_fGlue*s_fGlue) CoF = 1.01f;
D = -(1.0f + s_fRestitution) * Dn - (CoF) * Dt;
float m0 = GetInvMass();
float m1 = xBody.GetInvMass();
float m = m0 + m1;
float r0 = m0 / m;
float r1 = m1 / m;
m_xDisplacement += D * r0;
xBody.m_xDisplacement -= D * r1;
}