2012-07-06 41 views
7

Tôi biết cách kiểm tra xem hai vòng kết nối có giao nhau với nhau hay không. Tuy nhiên, đôi khi các vòng tròn di chuyển quá nhanh và kết thúc tránh va chạm trên khung tiếp theo.Dự đoán va chạm vòng kết nối vòng tròn

Giải pháp hiện tại của tôi cho vấn đề là kiểm tra xung đột vòng tròn một khoảng thời gian tùy ý giữa vị trí trước đó và vị trí hiện tại của nó.

Có cách nào để tìm ra thời gian cần thiết cho hai vòng kết nối không? Nếu tôi có thể nhận được giá trị thời gian đó, tôi có thể di chuyển vòng tròn đến vị trí tại thời điểm đó và sau đó va chạm chúng vào thời điểm đó.

Chỉnh sửa: Constant Velocity

+3

Đây là một chút mơ hồ. Mẫu chuyển động của vòng kết nối của bạn là gì? vận tốc không đổi?? – mathematician1975

+0

Vận tốc không đổi, có. Xin lỗi, tôi không 100% làm thế nào để hỏi câu hỏi này. Tôi đã tìm kiếm nhiều kết quả chỉ để nhắc nhở bản thân mình rằng tôi không phải là giỏi nhất về vật lý. – Bojo

+0

Có một cách. Vâng, tôi chắc chắn đó là một phép tính đơn giản. Tuy nhiên, tôi không biết nó là gì: (Tôi biết đó là tính toán cơ bản khá đơn giản. –

Trả lời

11

Tôi giả định chuyển động của vòng tròn là tuyến tính. Hãy nói rằng vị trí của vòng tròn trung tâm của một được cho bởi phương trình vector Ca = Oa + t*Da nơi

Ca = (Cax, Cay) là vị trí hiện tại
Oa = (Oax, Oay) là vị trí bắt đầu
t là thời gian trôi qua
Da = (Dax, Day) được sự dịch chuyển trên một đơn vị thời gian (tốc độ).

Tương tự như vậy đối với trung tâm vòng tròn B: Cb = Ob + t*Db.

Sau đó, bạn muốn tìm t sao cho ||Ca - Cb|| = (ra + rb) trong đó rarb là bán kính của các vòng tròn A và B tương ứng.

Squaring cả hai bên:
||Ca-Cb||^2 = (ra+rb)^2
và mở rộng:
(Oax + t*Dax - Obx - t*Dbx)^2 + (Oay + t*Day - Oby - t*Dby)^2 = (ra + rb)^2

Từ đó bạn sẽ nhận được một đa thức bậc hai mà bạn có thể giải quyết cho t (nếu như một t tồn tại).

+0

Cảm ơn bạn rất nhiều! Làm việc như người ở. – Bojo

+0

Đây là một phương trình tuyệt vời .. nhưng tiếc là đại số của tôi bị gỉ. Làm thế nào một trong những sắp xếp lại phương trình đó để giải quyết cho T trong một ngã swoop? –

+1

@MattKenefick xem [tại đây] (https://www.wolframalpha.com/input/?i=solve+%28O_1+%2B+t*D_1+-+O_2+-+t*D_2%29%5E2+%2B+%28O_3+%2B + t * D_3 + - + O_4 + - + t * D_4% 29% 5E2 +% 3D +% 28r_1 +% 2B + r_2% 29% 5E2 + cho + t). –

-2

Bạn có thể dự đoán va chạm bằng cách sử dụng vector hướng và tốc độ, điều này mang đến cho bạn các bước tiếp theo, và khi họ sẽ làm một vụ va chạm (nếu có sẽ được).

Bạn chỉ cần kiểm tra thuật toán truyền qua đường để phát hiện ...

+0

Vâng, tôi có Vị trí, Vận tốc và Chỉ đường tất cả có thể truy cập để sử dụng cho bất kỳ thuật toán nào tôi cần. Tôi đã có thể phát hiện va chạm tròn đủ tốt. Nó chỉ là dự án của tôi cập nhật mỗi 1/60th của một giây. – Bojo