Tôi sẽ không cho bạn câu trả lời Tôi chắc chắn là hữu ích hoặc thậm chí là chính xác, nhưng rồi đây:
Sau khi chơi với mathicala thêm một chút (kiểm tra phần cuối của câu trả lời cho sổ ghi chép / sổ ghi chép đã xuất bản), giải pháp này có vẻ đúng, thậm chí còn nghĩ rằng nó có thể không phải là giải pháp tốt nhất về hiệu quả.
Tôi đã viết điều này trong mathicala tương ứng với vấn đề của bạn. Về cơ bản, nó giải các phương trình / bất đẳng thức để biến OA là điều chúng ta cần tìm hiểu. Đầu ra sẽ cung cấp cho chúng tôi các giải pháp khả thi mà OA có thể có và các điều kiện cần xác minh để mỗi giải pháp có hiệu lực:
Reduce[{BPx, BPy} + t*{BVx, BVy} == {OPx, OPy} + t*OV*{Cos[OA], Sin[OA]} && t != 0 && OV != 0, {OA}]
{BPx, BPy} là vị trí hiện tại của màu xanh
{BVx, BVy} là vectơ vận tốc của màu xanh
{OPx, OPy} là vị trí viên đạn của màu cam
OV là chỉ tiêu của vectơ vận tốc viên đạn của cam (tổng tốc độ)
OA là góc đạn của màu cam (góc của vectơ vận tốc)
t là thời gian cần thiết để viên đạn có màu xanh
Tôi đã thử đặt t> 0 && OV> 0 trong các điều kiện nhưng mathicala sẽ mất mãi mãi vì vậy tôi chỉ sử dụng t! = 0 && OV! = 0. Vì vậy, các giải pháp tôi sẽ đưa ra ở đây chỉ hoạt động khi màu xanh không chính xác cùng vị trí với màu cam và khi viên đạn của quả cam thực sự di chuyển (thay vì đứng yên)
Đầu ra là khổng lồ: http://freetexthost.com/xzhhpr5e2w
Tuy nhiên, nếu chúng tôi trích xuất các phần OA == _, chúng tôi sẽ nhận được điều này:
http://freetexthost.com/iyrhqoymfo
Đó là những giá trị mà OA có thể có (mỗi cái đòi hỏi các điều kiện khác nhau để có hiệu lực).
Với một số phân tích sâu hơn về việc đưa ra các giải pháp yêu cầu OV âm tính mà chúng tôi không muốn, tôi đã nhận được điều này:
http://freetexthost.com/iy4wxepeb6
Vì vậy, đây là những giải pháp có thể cho vấn đề, mỗi một yêu cầu điều kiện khác nhau để có hiệu lực. Để một góc OA nhất định là một giải pháp hợp lệ, các điều kiện sau phải đáp ứng:
Reduce[{BPx, BPy} + t*{BVx, BVy} == {OPx, OPy} + t*OV*{Cos[OA], Sin[OA]} && t != 0 && OV != 0, {t}]
Đầu ra:
(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)
Vì vậy, chỉ xem xét các giải pháp xác minh (bạn không cần xác minh các bộ phận t == _. Chúng là những giải pháp giúp bạn có thời gian để viên đạn bắn vào xe nếu các điều kiện khác hợp lệ. t dẫn đến một giá trị âm, bạn không thể coi OA đã cho là một giải pháp hợp lệ, ngay cả khi nó xác minh các điều kiện khác (điều này là do chúng tôi đã sử dụng t! = 0 thay vì giảm> 0)).
Nó cũng có thể là một ý tưởng tốt để hỏi trong /math// về điều này.
Biên tập
Tôi đã có một số quan tâm cho câu hỏi này, vì vậy tôi đã tạo ra một cuốn sổ tay nhận xét với phần trình diễn đồ họa về mọi thứ tôi đã giải thích. Tải về tại đây:
http:
//www.2 Shared.com/file/pXhYyhN1/towerBullets.html Hoặc tại đây: http :
//www.2 Shared.com/file/W01g4sST/towerBullets.html
(đây là phiên bản đã xuất bản và bạn chỉ cần người chơi toán học - bạn có thể xem miễn phí. Nếu bạn không có toán học thì đây là cách để đi)
Ảnh chụp màn hình: