In rete: http://www.elegio.it/omnia/sv/traiettoria-cubica.html
Come approssimare con una curva continua la traiettoria di una particella accelerata in vario modo
Un modo molto semplice per tracciare curve cubiche
( http://www.elegio.it/mc2/moto-ellittico-201308.html altrimenti per tracciare traiettorie planetarie si possono usare quadriche ossia parabole... )
t== variabile indipendente del polinomio che assume all'inizio del transitorio il valore zero.U== tempo impiegato dalla particella per andare dall'inizio alla fine della sua traiettoria.D== da dove parte la particella.F== dove finisce la particella.V== velocità iniziale della particella.W== velocità finale della particella.- La variabile indipendente
tvaria tra0edU. Se il tempo iniziale non è 0 maSed il tempo finale èT, maggiore diS, al posto diUva scritto(T-S)e al posto ditva scritto(u-S)usandoucome variabile indipendente.- Ecco il polinomio in funzione della posizione e velocità iniziale e della posizione e velocità finale usando
r=t/Uin modo chervari tra 0 ed 1:p(r)=D*(1-r)^3+(3*D+V*U)*r*(1-r)^2+(3*F-W*U)*(1-r)*r^2+F*r^3;
Funzione della traiettoria della particella dar=0ar=1. Per cui usando esplicitamente i punti di controllaHil primo eKil secondo, si ha questa formula:p(r)=D*(1-r)^3+3*H*r*(1-r)^2+3*K*(1-r)*r^2+F*r^3;- Primo punto di controllo:
H=D+V*U/3;
in funzione della velocità iniziale da cui si può ricavare la velocità iniziale in funzione del punto iniziale e del primo punto di controllo:
V=3*(H-D)/U;- Secondo punto di controllo:
K=F-W*U/3;
in funzione della velocità finale da cui si può ricavare la velocità finale in funzione del secondo punto di controllo e del punto finale:
W=3*(F-K)/U;- Notare che anche la velocità varia con continuità tra il valore iniziale della variabile indipendente
t=0oppureu=Se il valore finale della variabile indipendentet=Uoppureu=Tsenza bruschi salti di valore e/o di direzione.- Usando Javascript posso quindi scrivere queste function:
Dunque un tratto cubico di una traiettoria può essere specificato indicando il tempo di arrivo alla fine del tratto, le coordinate del punto di arrivo e le componenti della velocità di arrivo alla fine di ogni tratto cubico. Nel moto bidimensionale, dovendo indicare l'ascissa e l'ordinata, bisogna quindi dare in totale cinque dati per ogni tratto ossia anche le due componenti della velocità finale nella direzione delle ascisse e delle ordinate. Se la traiettoria non ha spigoli ossia brusche variazioni della velocità e della sua direzione, i dati del tratto precedente vanno usati per calcolare i due punti di controllo di ogni tratto.
[ tempo, posx, velx, posy, vely ]: dunque va fatta una funzione che data una array con elementi di questo tipo, calcoli una array di tratti cubici utilizzabile come valore dell'attributoddi un qualchepath.- Il risultato dovrà essere una array di 6 numeri, primo punto di controllo, secondo punto di controllo, punto finale e la terna di punti delimitata da un carattere bianco.
- Per esempio, sul rettangolo di colore "ivory" largo 1000 ed alto 1250, per fare una curva rossa di tratti cubici ma con vistosi spigoli posso assegnare all'attributo
di seguenti valori:d=" M 40 100 m 0 10 a 10 10 0 0 0 0 -20 a 10 10 0 0 0 0 20 m 0 -10 C 800 -150 200 450 700 600 m 0 10 a 10 10 0 0 0 0 -20 a 10 10 0 0 0 0 20 m 0 -10 C 200 900 1100 800 900 1200 m 0 10 a 10 10 0 0 0 0 -20 a 10 10 0 0 0 0 20 m 0 -10 C 400 600 300 1500 200 1100 m 0 10 a 10 10 0 0 0 0 -20 a 10 10 0 0 0 0 20 m 0 -10"dove utilizzo la direttivaaper evidenziare con un circolino l'estremo di ogni tratto cubico e traccio anche una spezzata blu di segmenti rettilinei. Prima applicazione delle direttive C dell'attributo d del pathQuindi ecco le funzioni che applicano le precedenti formule usate per tracciare traiettorie senza spigoli fatte da spezzoni cubici di Bézier.
Con queste funzioni mi sembra che si possa descrivere una qualsiasi traiettoria di un pianeta o di un satellite attorno al Sole...
- http://www.elegio.it/omnia/
- http://www.elegio.it/svg/tanteparabole.html se si usano parabole.
- http://www.elegio.it/svg/precessione-manuale.html altra applicazione di parabole.