Tôi có một con tàu di chuyển với tốc độ tối đa maxSpeed
và có thể quay rotationSpeed
độ mỗi giây. Con tàu luôn di chuyển theo hướng mà nó đang đối mặt, điều đó có nghĩa là con tàu di chuyển càng nhanh thì bán kính quay càng lớn.
Tôi biết vị trí của mình, và xoay và vị trí của mục tiêu.
Điều tôi muốn tìm hiểu là liệu mục tiêu có nằm trong bán kính quay của tôi ở tốc độ này hay tốt hơn, tốc độ tối đa tôi có thể di chuyển là bao nhiêu để quay đầu vào mục tiêu mà không tiếp tục quay vòng quanh nó.
Có một cách hiệu quả (ish) để làm điều này?
Đây là những gì tôi đang nghĩ cho đến nay: bởi vì tôi biết tôi đang đi được bao xa trên mỗi bước và tôi xoay bao nhiêu trên mỗi bước, tôi có thể tìm ra nơi tôi sẽ ở trong hai khung hình tiếp theo. Vị trí hiện tại của tôi là p1, vị trí tiếp theo của tôi là p2 rồi p3. Tôi có thể lấy các đường phân giác vuông góc của (p1, p2) và (p2, p3). Điểm giao nhau của chúng sẽ cho tôi trung tâm của một vòng tròn. Sau đó tôi có thể kiểm tra xem mục tiêu có nằm trong vòng tròn đó không.
Tôi không chắc chắn nếu điều này sẽ hoạt động trong 3D (Tôi không chắc cách tính một hình cầu với đầu vào của tôi). Giải pháp này cũng không giúp được gì nhiều cho việc tìm đúng tốc độ di chuyển, tôi sẽ phải thử một vài lần với các tốc độ khác nhau để tìm ra tốc độ hợp lý.
Bất cứ ai có thể làm sáng tỏ một giải pháp tốt hơn?