Saya pikir Anda mungkin mencoba memasukkan kunci persegi ke dalam lubang bundar dengan menerapkan SAT seperti Anda, di sini. Jelas, itu tidak dirancang untuk tabrakan cekung-cekung, dan meskipun saya memuji upaya Anda untuk mengadaptasinya untuk tujuan itu, ada beberapa pertimbangan yang membuat ini tidak mungkin berhasil.
Realisme
Impuls sudut dan efek knock-on adalah nama permainan di sini.
Urutan titik kontak penting untuk resolusi tabrakan yang realistis. Di dunia nyata, salah satu poin itu akan selalu menyerang sebelum yang lain. Dan itu hanya dalam meniru urutan kontak dan hasil dari setiap "subkolisi" diwakili oleh itu, bahwa Anda dapat mengharapkan untuk mendapatkan hasil yang realistis dalam simulasi. Ini adalah salah satu alasan mengapa Anda memecah cekung Anda menjadi cembung, di tempat pertama - ini memungkinkan pendeteksian bagian mana yang pertama kali menyerang. Tentu saja, ini juga dapat ditiru sesuai komentar saya di bawah judul "Kurang realisme".
Perlengkapan cembung Anda bergabung untuk memberikan objek baik garis luar dan pusat massa (dan tentu saja dalam simulasi yang lebih kompleks, setiap fixture dapat memengaruhi kepadatan berbeda, juga). Alasan saya menyebutkan ini adalah bahwa dalam menyelesaikan tabrakan secara realistis, Anda harus menghitung tidak hanya linear tetapi juga impuls sudut, mengikuti setiap "sub-tabrakan" dari titik kontak Anda. Ini tidak sesederhana "push apart" dasar yang Anda terapkan dengan SAT.
Ini kemudian benar-benar mengubah sifat masalah Anda, karena seperti yang Anda lihat, tidak ada gunanya mendapatkan dan mencoba menggunakan 2 atau lebih titik kontak, karena sebenarnya itu hanya yang pertama yang penting. Setelah Anda menyelesaikan yang pertama dalam hal impuls linier dan sudut, Anda perlu menghitung ulang untuk tabrakan lebih lanjut, karena orientasi setiap objek akan berubah. Lebih jauh dari itu, mendeteksi setiap kontak individu dalam langkah kemudian mungkin atau mungkin tidak perlu dilakukan dalam langkah yang sama - tergantung pada waktu antara kontak sebagai titik kontak pertama objek menyentuh, selanjutnya impuls linier dan sudut diterapkan, kedua menyentuh titik kontak, dan sebagainya.
Kurang realisme
Tentu saja, dengan asumsi Anda sama sekali tidak tertarik untuk menyelesaikan impuls sudut, maka yang terbaik yang dapat Anda lakukan dengan SAT pada dasarnya adalah apa yang akan Anda lakukan jika Anda membungkus poligon ini sebagai cembung menggunakan sesuatu seperti Pemindaian Graham: Mendesak terpisah oleh pemisah tunggal vektor. Dengan kata lain, tidak masuk akal untuk mencoba menyelesaikan tiga vektor bersama-sama, seperti yang telah Anda tunjukkan. Itu yang terbesar dalam kelompok yang diperhitungkan.
Sunting dalam menanggapi pertanyaan Anda
Apa yang perlu Anda lakukan jika Anda menginginkan pendekatan sederhana adalah sebagai berikut:
Tentukan arah perpindahan yang benar. Ini paling mudah dilakukan dengan masing-masing mengkulit cembung, dan menentukan normals ke sumbu pemisah.
Sekarang Anda perlu menentukan besarnya perpindahan . Mengapa kita tidak bisa menggunakan magnitudo seperti yang diberikan oleh SAT? Karena jika Anda memikirkannya, kedalaman antar penetrasi akan berpotensi lebih besar untuk lambung cembung, daripada pada lambung cekung mereka yang serasi - pikirkan dua E dengan gigi mereka satu sama lain! Seperti yang telah Anda lakukan di atas, temukan semua titik kontak untuk langkah tertentu, tetapi temukan mereka sejajar dengan normals sumbu, karena ini adalah arah perpindahan yang benar. Sekarang tentukan salah satu dari vektor tumpang tindih paralel mana yang paling panjang. Gantilah dengan yang itu, buang sisanya dan lanjutkan ke langkah fisika berikutnya.