Saya sedang menulis simulator tubuh kaku 2D. Objek yang disimulasikan adalah poligon cembung. Pertanyaan saya melibatkan bagaimana cara memutuskan "titik" tabrakan, sehingga ketika saya menerapkan gaya respons, saya juga dapat menghitung torsi.
Dalam 2D, metode pendeteksian tabrakan narrowphase yang populer tampaknya adalah Teorema Sumbu Pemisah. Namun, sementara ini memberi Anda "mereka bertabrakan?" dan juga "oleh berapa banyak?", itu TIDAK memberi Anda titik referensi (yang saya tahu) di mana untuk menerapkan kekuatan respons (dan dengan demikian menghitung torsi) *.
Metode lain (yang juga membuat saya lebih tertarik, karena itu yang digunakan dalam 3D, yang akan menjadi langkah logis berikutnya) adalah menghitung perbedaan Minkowski dari dua poligon, dan memutuskan bahwa mereka bertabrakan jika (0,0) adalah terkandung dalam poligon yang dihasilkan. Tetapi, bagaimana Anda menggunakan ini untuk menentukan titik relatif di mana menerapkan kekuatan respons? Hipotesis saya adalah bahwa, karena setiap wajah dari perbedaan ini secara efektif sesuai dengan wajah dari salah satu poligon, jarak pemisahan adalah jarak terpendek dari (0,0) ke MD, dan Anda menerapkannya pada wajah yang sesuai pada poligon. .
Sebagai bonus, bagaimana cara melakukan ini dalam 3D?
* Saat saya menulis ini, saya baru menyadari bahwa, ketika menggunakan SAT, saya bisa melacak titik mana yang tumpang tindih, dan menerapkan gaya pada "rata-rata" titik-titik tersebut. Tapi saya harus memutuskan yang mana dari beberapa sumbu non-terpisah untuk melakukan trik kecil ini ...