Se poate folosi implementarea propusă mai jos, care este o combinație între metodele prezentate la curs
Se pot folosi si alte metode, atât timp cât ele sunt corecte și generale (adică funcționează pe orice formulă a curbelor traiectorie/viteză)
Metode importante
1. Popularea tablourilor corespunzătoare curbelor $V(u)$ și $Q(u)$: această metodă se apelează o singură data, în init()
Se calculează și se memorează în câte un tablou timpi și distanțe corespunzătoare curbei $V(u)$, eșantionând $u$ cu un pas foarte mic:
Se calculează și se memorează în câte un tablou lungimi de arce si pozitii care corespund unor valori discrete ale lui $u$ (nu trebuie să fie același pas ca mai devreme):
$Q(u_k)$ - poziții calculate cu formula parametrică a curbei (de ex, Bezier)
$S(u_k)$ - distanță calculată pe baza pozițiilor $Q(u_k)$ de pe curbă și a aproximării distanței parcurse pe arcul dintre $Q(u_k)$ și $Q(u_k - pas)$ prin lungimea segmentului dintre $Q(u_k)$ și $Q(u_k - pas)$.
Atenție!! Trebuie să existe o corespondență între distanța calculată cu formula cubică polinomială și distanța calculată pe curba traiectorie; adică distanța maximă calculată polinomial (obținută pentru $u_i=1$) trebuie să fie egală cu distanța totală parcursă pe curba traiectorie (obținută pentru $u_k=1$). Un mod de a obține această corespondență este prin normalizarea distanțelor în intervalul [0,1]
2. Căutare binară:
3. Animația efectivă: animația se realizează în funcția update()