Punto di incontro fra due oggetti

marco.meg
Buongiorno!
Vorrei risolvere il seguente problema.
Il vettore A si muove con un moto rettilineo uniforme: sono noti posizione iniziale e scalare velocità, non la direzione.
Il vettore B si muove con un moto circolare uniforme: sono noti posizione iniziale, raggio e periodo.
Entrambi hanno accelerazione = 0.
A si trova inscritto nella circonferenza sulla quale viaggia B ma non è necessariamente al centro.


Vorrei trovare il punto e il tempo di incontro fra i due punti.
Purtroppo non riesco a mettere in correlazione le due equazioni di moto.
Mi dareste una mano per cortesia?

Risposte
mgrau
Non conosci la direzione di A? Suppongo che con ciò intendi che vuoi una soluzione contenente una variabile, che so, l'angolo $alpha$ fra la direzione di A e l'orizzontale ?

E vorresti spiegare che difficoltà trovi?
Per esempio, visto che fatichi a "mettere in correlazione le due equazioni di moto", ci diresti quali sono le equazioni di moto che hai trovato? Qualcosa del tipo $x_A = f_1(alpha, t)$, $y_A = f_2(alpha,t)$, $x_B = f_3(alpha,t)$ $y_B = f_4(alpha,t)$ ?

marco.meg
Faccio un po' di chiarezza.
Questo algoritmo mi serve per un progetto di un'opera d'arte che sto realizzando per la quale sto usando anche delle parti elettroniche programmate da me. Peccato che oltre la matematica semplice e l'intuizione non vada.

In pratica ci sono degli oggetti (tipo B) che si muovono in maniera circolare dei quali conosco la traiettoria. Poi ci sono degli oggetti (tipo A) che si muovono con moto rettilineo uniforme dei quali conosco posizione iniziale e velocità (non direzione).

Per calcolare il punto di incontro tra i due oggetti ho scritto un algoritmo che calcola la posizione di B, poi la direzione di A(verso B) al quale applico la velocità e quindi la nuova posizione di A. Alla fine del calcolo trova empiricamente il punto di incontro e il tempo espresso in numero di cicli dell'algoritmo.
Funziona in maniera efficace ma non efficiente. Soprattutto se si aumentano le distanze e diminuiscono le velocità.
Avrei quindi bisogno di una soluzione più appropriata che va ben oltre le mie reminiscenze di matematica/fisica del liceo, dato che nel percorso di studi che ho fatto dopo non c'erano esami di matematica/fisica utili in questo momento.

mgrau
Continuo a non capire cosa intendi dicendo che non conosci la direzione di A.
Tanto più che poi mi pare che il tuo algoritmo invece la conosce, la direzione di A, se no, come farebbe a trovare le successive posizioni di A? Non è che, per caso, A si muove sempre puntando verso B? Ma, in questo caso, il moto di A è tutt'altro che rettilineo...

marco.meg
Esatto. Nell'algoritmo attuale la direzione di A per trovare A(x+1) è data da [B(x+1) - A(x)]Normalizza * velocità. Questo nuovo vettore viene sommato a A(x) per trovare la posizione successiva.
Però come ho detto è "lento".
Io vorrei trovare prima il punto di incontro tra A e B in funzione del tempo e poi "puntare" direttamente A in quel punto.

mgrau
"marco.meg":

Io vorrei trovare prima il punto di incontro tra A e B in funzione del tempo (che vuol dire?) e poi "puntare" direttamente A in quel punto.

Quindi A non si muove di moto rettilineo...
Mattiamo allora che tu trovi in qualche modo più rapido (e non ho idea di quale possa essere) in quale punto P il corpo A raggiunge B. Se tu punti A direttamente su P però, visto che il percorso rettilineo è più breve di quello curvo, A raggiungerà P troppo presto, e quindi niente incontro con B...
A meno che tu punti direttamente ma a velocità ridotta; ma di quanto? Dovresti trovare la lunghezza della linea curva, cosa tutt'altro che semplice a mio avviso...
Secondo me, è meglio se ti tieni il tuo algoritmo... e poi, perchè dovrebbe essere lento? Non sono poi calcoli così complicati. Non è che fai dei passi troppo piccoli? Potresti farli più lunghi...

marco.meg
Nel mio algoritmo A non si muove in modo rettilineo. Il suo moto si compone di somme di vettori. Però fa anche un tragitto più lungo rispetto a quello che farebbe se puntasse direttamente verso la circonferenza di B.
Io ho trovato che

$ Bx = r* sin(omega t) $
$ By = r* cos(omega t) $
$ Ax = A0x* vt $
$ Ay = A0y* vt $

Ma se metto Bx = Ax e By = Ay non riesco comunque a trovare risultati congruenti.

mgrau
"marco.meg":
Nel mio algoritmo A non si muove in modo rettilineo.

Veramente l'avevi detto tu... :D
"marco.meg":
Io ho trovato che

$ Bx = r* sin(omega t) $
$ By = r* cos(omega t) $
$ Ax = A0x* vt $
$ Ay = A0y* vt $

Cosa significherebbe $A0x$? L'ascissa di $A0$ ? In tal caso è sbagliato. Anche dimensionalmente. Devi scrivere $A_x = A0_x + v_xt$, dove $v_x$ è la componente di $v$ secondo $x$. Idem per y.
"marco.meg":
Ma se metto Bx = Ax e By = Ay non riesco comunque a trovare risultati congruenti.

A parte l'errore detto sopra, c'è una questione di sostanza. Se scrivi $B_x = A_x$ questa è una equazione in una sola incognita $t$, ma la sua soluzione, molto probabilmente, NON sarà una soluzione di $B_y = A_y$, il che semplicemente significa che A e B NON si incontrano.
Insomma: non è chiaro cosa stai cercando. Se fissi tutto, e cerchi quando si incontrano, non trovi, perchè NON si incontrano.
Forse stai cercando in che direzione lanciare A perchè si incontrino? Questo si può fare, ma se lasci libera la direzione di tiro non conosci più $v_x$ e $v_y$, ma solo $v$. Così dovresti scrivere $v_x = v cos theta$ e $v_y = v sin theta$, con $theta$ angolo fra $vec v$ e l'orizzontale, e risolvere il sistema di cui sopra, che ora avrà incognite $t$ e $theta$. Non sarà facilissimo ma in linea di principio ci sta.

marco.meg
Si scusa mi sono sbagliato con la formula del moto rettilineo uniforme!
Se fossero due moti rettilinei uniformi si potrebbe usare il teorema del coseno... in questo caso non è possibile?

mgrau
Dovresti esprimerti in modo un po' più esteso, se no, non si capisce niente

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.