Sana bir cevap vermeyeceğim, eminim ki yararlı ya da doğru, ama işte gidiyor:
Mathematica ile biraz daha oynadıktan sonra (not defteri / yayınlanan not defteri için cevabın sonunu kontrol edin), bu çözüm, verimlilik açısından en iyisi olmayabileceğini düşünse bile doğru görünüyor.
Bunu matematiksel olarak yazdım, ki bu senin problemine karşılık geliyor. Temel olarak, bulmamız gereken şey olan OA değişkenine denklemleri / eşitsizlikleri çözer. Çıktı bize OA'nın sahip olabileceği olası çözümleri ve her çözümün geçerli olduğunu doğrulamak için gereken koşulları verecektir:
Reduce[{BPx, BPy} + t*{BVx, BVy} == {OPx, OPy} + t*OV*{Cos[OA], Sin[OA]} && t != 0 && OV != 0, {OA}]
{BPx, BPy} blue'nın mevcut konumu
{BVx, BVy} mavinin hız vektörüdür
{OPx, OPy}, portakalın kurşun konumudur
OV, portakalın kurşun hızı vektörünün normudur (toplam hız)
OA, portakalın mermi açısıdır (hız vektörünün açısı)
merminin maviye çarpması için gereken zamandır
Koşullara t> 0 && OV> 0 koymaya çalıştım, ancak mathematica sonsuza kadar sürecekti, bu yüzden sadece t! = 0 && OV! = 0 kullandım. Yani burada vereceğim çözümler sadece mavi tam olmadığında çalışır turuncu ile aynı pozisyonda ve portakal mermisi gerçekten hareket ettiğinde (sabit kalmak yerine)
Çıktı devasa: http://freetexthost.com/xzhhpr5e2w
Ancak OA == _ parçalarını çıkarırsak, bunu elde ederiz:
http://freetexthost.com/iyrhqoymfo
Bunlar AE'nin sahip olabileceği değerlerdir (her biri farklı koşulların geçerli olmasını gerektirir).
OV'nin istemediğimiz negatif olmasını gerektiren çözümleri çıkardığımız bazı analizlerde, bunu anladım:
http://freetexthost.com/iy4wxepeb6
Yani bunlar sorunun her biri farklı koşulların geçerli olmasını gerektiren olası çözümlerdir. Belirli bir açı OA'nın geçerli bir çözüm olması için aşağıdaki koşulların karşılanması gerekir:
Reduce[{BPx, BPy} + t*{BVx, BVy} == {OPx, OPy} + t*OV*{Cos[OA], Sin[OA]} && t != 0 && OV != 0, {t}]
Çıktı:
(BVy - OV Sin[OA] != 0 && BPx == (BPy BVx + BVy OPx - BVx OPy - BPy OV Cos[OA] + OPy OV Cos[OA] - OPx OV Sin[OA])/(BVy - OV Sin[OA]) && t == (-BPy + OPy)/(BVy - OV Sin[OA]) && BPy OV - OPy OV != 0) ||
(BVy == OV Sin[OA] && BPy == OPy && BVx - OV Cos[OA] != 0 && t == (-BPx + OPx)/(BVx - OV Cos[OA]) && BPx OV - OPx OV != 0) ||
(BVy == OV Sin[OA] && BVx == OV Cos[OA] && BPy == OPy && BPx == OPx && OV t != 0)
Bu nedenle, yalnızca doğrulamanın yapıldığı çözümleri göz önünde bulundurun (t == _ parçalarını doğrulamanız gerekmez. Bunlar, eğer diğer koşullar geçerliyse, merminin araca çarpması için gereken zamanı veren çözümlerdir. t negatif bir değerle sonuçlanırsa, belirli bir OA'yı diğer koşulları doğrulasa bile geçerli bir çözüm olarak kabul edemezsiniz (bunun nedeni, azalmada t> 0 yerine t! = 0 kullanmamızdır).
Bu konuda /math// adresinde sormak da iyi bir fikir olabilir .
Düzenle
Bu soruya biraz ilgi gösterdim, bu yüzden açıkladığım her şeyin grafik gösterimi ile yorumlanmış bir not defteri oluşturdum. Buradan indir:
http://www.2shared.com/file/pXhYyhN1/towerBullets.html
Veya burada:
http://www.2shared.com/file/W01g4sST/towerBullets.html
(bu yayınlanan sürümdür ve sadece görmek için ücretsiz olan mathematica oynatıcısına ihtiyacınız vardır. mathematica'nız yoksa bu yol)
Ekran görüntüsü: