Traiettoria proiettata di un veicolo?


8

Nel gioco che sto sviluppando, devo calcolare se il mio veicolo (1) che nell'esempio sta viaggiando verso nord con una velocità V, può raggiungere il suo obiettivo (2). L'esempio mostra il problema dall'alto:

inserisci qui la descrizione dell'immagine

Esistono in realtà due possibili scenari: V è costante (risultante nella traiettoria 4, un arco di un cerchio) o il veicolo ha la capacità di accelerare / decelerare (traiettoria 3, un arco di una spirale).

Vorrei sapere se esiste un modo semplice per verificare se il veicolo è in grado di raggiungere il suo obiettivo (anziché superarlo) . Sono particolarmente interessato alla traiettoria n. 3, poiché l'unica cosa che mi viene in mente è l'integrazione della posizione del veicolo nel tempo.

EDIT: ovviamente il veicolo ha sempre la capacità di sterzare, ma il raggio di sterzata varia con la sua velocità (si pensi ad una massima forza laterale g).

EDIT2: nota anche che (come la maggior parte dei veicoli nella vita reale) esiste un raggio di sterzata minimo anche per quelli in-game).

Risposte:


15

Se puoi variare la tua velocità (quindi il tuo angolo di sterzata) troverai sempre una soluzione, a partire da quella degenerata in cui l'entità è quasi ferma a ruotare in un piccolo cerchio fino a puntare il bersaglio.

Se non riesci a variare la velocità, puoi pensare ad aree o ombre non raggiungibili che non puoi raggiungere anche usando il tuo sterzo migliore, se il bersaglio è in quelle aree che non riesci a raggiungere (a meno che il "superamento" non riesca nemmeno a superarle e metterli fuori dall'ombra).

Il tuo miglior governo ti consente di girare a sinistra / a destra su un arco di un cerchio, permettendoti di disegnare una circonferenza completa:

ombre

Come puoi vedere cosa c'è dentro uno dei due cerchi non può essere raggiunto direttamente.

Un corpo di massa m che sta sterzando su una curva con raggio di curvatura r , sperimenta una forza centrifuga apparente radiale causata dal comportamento inerziale del corpo, pari a:

Fc = mV ^ 2 / r

dove V è la velocità del corpo (la lunghezza del vettore di velocità); essendo l'accelerazione di un corpo a causa di una forza che è:

a = F / m

la nostra accelerazione è:

a = V ^ 2 / r

Se diciamo che am è la massima accelerazione otteniamo che:

rm = V ^ 2 / am

dove rm è il raggio minimo usando la massima accelerazione.

Quando vuoi verificare se il veicolo in P che si muove alla velocità V può raggiungere l'obiettivo in T devi:

1) calcola C1 e C2 come:

c1 e c2

2) testare la distanza minima di P da C1 e C2 come segue:

test del raggio

Se d è maggiore di rm ciò significa che T è fuori da entrambe le ombre e quindi è raggiungibile dal veicolo semplicemente regolando lo sterzo sotto il vincolo di sterzata. (per essere più precisi c'è un percorso sotto vincoli che consente alla funzione di distanza tra T e P di diminuire monotonicamente)

[AGGIORNARE]

Se possibile modificare la velocità, è sempre possibile ottenere un arco (cioè una velocità / coppia radiale accellerazione) che va da P a T . Questo è possibile perché il raggio diventa davvero un grado di libertà.

Questa è una possibile costruzione:

percorso target

La linea nera è l'asse su cui può poggiare il centro dei cerchi: è perpendicolare all'attuale orientamento del veicolo e attraversa il suo centro di rotazione.

Il segmento verde rappresenta la linea perpendicolare a quella che collega il centro del veicolo con il bersaglio e passa attraverso il centro di quella distanza.

La linea verde attraversa quella nera esattamente al centro dell'arco desiderato. La lunghezza del segmento arancione ci dice il raggio di sterzata che può essere ottenuto regolando la velocità e ruotando al massimo sterzo o regolando sia la velocità che lo sterzo per rimanere sotto il vincolo


Grazie per aver dedicato del tempo a scrivere questa risposta dettagliata (+1). Ho bisogno di "studiarlo" un po ', ma da una prima lettura mi sembra che la tua prima affermazione "troverai sempre una soluzione ..." non è necessariamente vera: l'esistenza di un raggio di sterzata minimo implica che ci sia sempre sarà una "zona d'ombra" il cui limite definirà una sorta di "orbita" attorno al bersaglio ... O sbaglio? [Questo è davvero il vero problema per me, dato che i calcoli per V = k sono semplici ...]
mac

@mac se il bersaglio non è nello stesso posto del tuo veicolo, puoi rallentare così rmin genera un cerchio abbastanza piccolo da non contenere il bersaglio. Quando sei in questa condizione puoi impostare la tua velocità in modo che il bersaglio poggi esattamente sulla tua circonferenza!
FxIII,

@Fxill - Ancora una volta, grazie per l'aggiornamento, se fosse possibile, ti darei un secondo +1 per la dedica! :) Tuttavia, non riesco a capire dalla tua spiegazione come spieghi sia l'accelerazione che la velocità iniziale: l'intero problema si basa sul fatto che nel tempo la velocità cambierà (arco di una spirale). Ho l'impressione che semplicemente non ci sia abbastanza spazio per il veicolo per rallentare abbastanza / ottenere un raggio abbastanza piccolo da intercettare il bersaglio ... o sbaglio?
mac,

@mac diciamo am = 1 quindi rm = v ^ 2; se d = | PT | > 0 è possibile scegliere v ^ 2 <d / 2; se d = 0 significa che P = T quindi hai già raggiunto il tuo obiettivo ...
FxIII

ahahah senza dubbio che funziona! : D
FxIII,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.