Mam statek, który płynie z maksymalną prędkością maxSpeed
i może obracać rotationSpeed
stopnie na sekundę. Statek zawsze porusza się w kierunku, w którym jest skierowany, co oznacza, że im szybciej statek płynie, tym większy jest jego promień skrętu.
Znam swoją pozycję, rotację i pozycję celu.
Chciałbym dowiedzieć się, czy cel znajduje się w moim promieniu skrętu przy tej prędkości lub lepiej, jaka jest maksymalna prędkość, z jaką mogę podróżować, aby wykonać zwrot do celu bez ciągłego okrążenia go.
Czy istnieje skuteczny (ish) sposób, aby to zrobić?
Oto, co do tej pory myślę: ponieważ wiem, jak daleko podróżuję na krok i ile obracam na krok, mogę dowiedzieć się, gdzie będę w następnych dwóch klatkach. Moja obecna pozycja to p1, moja następna pozycja to p2, a następnie p3. Potrafię wziąć prostopadłe dwusieczne (p1, p2) i (p2, p3). Ich punkt przecięcia da mi środek koła. Następnie mogę sprawdzić, czy cel znajduje się w tym kręgu.
Nie jestem pewien, czy to zadziała w 3D (nie jestem pewien, jak obliczyć sferę na podstawie moich danych wejściowych). To rozwiązanie również nie pomaga zbytnio w znalezieniu właściwej prędkości do podróży, musiałbym spróbować kilka razy z różnymi prędkościami, aby znaleźć rozsądną prędkość.
Czy ktoś może rzucić nieco światła na lepsze rozwiązanie?
źródło