Saya memiliki kapal yang bergerak dengan kecepatan maksimal maxSpeed
dan dapat mengubah rotationSpeed
derajat per detik. Kapal selalu bergerak ke arah yang dihadapinya yang berarti bahwa semakin cepat kapal bergerak semakin besar radius beloknya.
Saya tahu posisi saya, dan rotasi serta posisi target.
Yang ingin saya ketahui adalah apakah target berada di dalam radius belokan saya pada kecepatan ini, atau lebih baik, berapa kecepatan maksimum yang bisa saya tempuh untuk membuat belokan ke target tanpa terus berputar di sekitarnya.
Apakah ada cara (ish) yang efisien untuk melakukan ini?
Inilah yang saya pikirkan sejauh ini: karena saya tahu sejauh mana saya bepergian per langkah dan seberapa banyak saya berputar per langkah, saya bisa mengetahui di mana saya akan berada dalam dua frame berikutnya. Posisi saya saat ini adalah p1, posisi saya berikutnya adalah p2 kemudian p3. Saya dapat mengambil garis-garis tegak lurus (p1, p2) dan (p2, p3). Titik persimpangan mereka akan memberi saya pusat lingkaran. Saya kemudian dapat menguji apakah target ada di lingkaran itu.
Saya tidak yakin apakah ini akan berfungsi dalam 3D (Saya tidak yakin bagaimana cara menghitung bola dengan input saya). Solusi ini juga tidak banyak membantu dalam menemukan kecepatan yang tepat untuk bepergian, saya harus mencoba beberapa kali dengan kecepatan yang berbeda untuk menemukan yang masuk akal.
Adakah yang bisa menjelaskan solusi yang lebih baik?
sumber