2012-07-06 27 views
7

İki dairenin birbiriyle kesişip girmediğini kontrol etmenin farkındayım. Bununla birlikte, bazen daireler çok hızlı hareket eder ve bir sonraki karede çarpışmayı önlerler.Çember-Daire Çarpışma Tahmini

Şu anki sorunumun özümü, daire daire çarpışmasını önceki konum ile o anki konumu arasında isteğe bağlı olarak bir kez kontrol etmektir.

İki dairenin çarpışması için gereken süreyi bulmak için matematiksel bir yol var mı? Eğer o zaman değerini elde edebildiysem, o zaman daireyi o konuma taşıyabilir ve sonra o noktada çarpıştırabilirim.

Düzenleme: Sabit Hız

+3

Bu biraz belirsiz. Çevrelerinizin hareket kalıbı nedir? sabit hız? – mathematician1975

+0

Sabit hız, evet. Üzgünüz, bu soruyu nasıl soracağım% 100 değilim. Kendi kendime en iyi fizikte olmadığımı hatırlatmak için birçok sonuç aradım. – Bojo

+0

Evet bir yolu var. Evet, eminim basit bir hesaplama. Ancak, bunun ne olduğu hakkında hiçbir fikrim yok :(Oldukça basit bir hesap olsa da biliyorum. –

cevap

11

Ben çevrelerin hareketini assuming doğrusaldır. çemberi A'nın merkezinin konumu

Ca = (Cax, Cay) mevcut konum
Oa = (Oax, Oay) vektörün denklem Ca = Oa + t*Da ile verilir varsayalım
t Geçen Zamanı
Da = (Dax, Day) olan Başlangıç ​​pozisyonu zaman birimi başına yer değişimi (olduğu hızı). Daire B merkezi için: Cb = Ob + t*Db.

.

Ardından, ra ve rb öğelerinin sırasıyla A ve B dairelerinin yarıçapları olduğunu bulmak istersiniz.

kare alma her iki taraf:
||Ca-Cb||^2 = (ra+rb)^2
ve genişleyen: (örneğin, bir t varsa) Eğer t için çözebilir bir kuadratik polinomu olsun gerektiğini itibaren
(Oax + t*Dax - Obx - t*Dbx)^2 + (Oay + t*Day - Oby - t*Dby)^2 = (ra + rb)^2

.

+0

Çok teşekkür ederim! Bir çekicilik gibi çalıştı. – Bojo

+0

Bu büyük bir denklem .. ama ne yazık ki cebirim paslı. Biri için T'nin çözülmesi gereken denklemin nasıl yeniden düzenlenmesi nasıl olurdu? –

+1

@MattKenefick bkz. [Burada] (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 + t). –

-2

Yön vektörü ve hızını kullanarak çarpışmayı tahmin edebilirsiniz, bu size sonraki adımları verir ve onlar bir çarpışma yapacak zaman (olacak ise). olduğunu tespit etmek

sadece çizgi geçme algoritmasını kontrol etmeniz gerekir ...

+0

Tamamen, Pozisyon, Hız ve Yön'ün tümüne erişilebilir İhtiyacım olan algoritma için kullanmak. Dairesel çarpışmaları yeterince iyi tespit edebilirim. Sadece projemin saniyenin her 60 saniyesinde bir güncellenmesi. – Bojo