Tôi đang viết một mô phỏng cơ thể cứng nhắc 2D. Các đối tượng được mô phỏng là đa giác lồi. Câu hỏi của tôi liên quan đến cách quyết định "điểm" va chạm, để khi tôi áp dụng lực phản ứng, tôi cũng có thể tính toán mô-men xoắn.
Trong 2D, phương pháp phổ biến phát hiện va chạm hẹp có vẻ là Định lý trục tách. Tuy nhiên, trong khi điều này mang lại cho bạn "họ đang va chạm?" cũng như "bao nhiêu?", nó KHÔNG cung cấp cho bạn một điểm tham chiếu (mà tôi biết) để áp dụng lực phản ứng (và do đó tính toán mô-men xoắn) *.
Phương pháp khác (cũng khiến tôi quan tâm hơn, bởi vì nó được sử dụng trong 3D, là bước tiếp theo hợp lý) là tính toán sự khác biệt của Minkowski của hai đa giác và quyết định rằng chúng va chạm nếu (0,0) là chứa trong đa giác kết quả. Nhưng, làm thế nào để bạn sử dụng điều này để quyết định điểm tương đối để áp dụng lực phản ứng? Giả thuyết của tôi là, vì mỗi mặt của sự khác biệt này tương ứng với một mặt của một trong các đa giác, khoảng cách phân tách là khoảng cách ngắn nhất từ (0,0) đến MD và bạn áp dụng mặt này cho mặt tương ứng trên đa giác .
Là một phần thưởng, làm thế nào để làm điều này trong 3D?
* Khi tôi viết bài này, tôi mới nhận ra rằng, khi sử dụng SAT, tôi chỉ có thể theo dõi những điểm nào đang chồng chéo và áp dụng lực ở mức "trung bình" của những điểm đó. Nhưng tôi sẽ phải quyết định xem một trong số các trục không tách rời để thực hiện thủ thuật nhỏ này ...