Come anticipato nella risposta precedente, devi definire:
[*] coordinate iniziali X e Y
[*] modulo e direzione (angolo) della velocità. In qusto modo, un punto che si muova parallalelamente all'asse X o all'asse Y saranno i casi particolari dell'angolo (direzione) uguali, rispettivamente a 0° e 90°
[*] durata della simulazione
Quindi
[*] scomporre la velocità nelle componenti X e Y
[*] calcolate le coordinate del punto finale della traiettoria come
x_fin=x_ini+vx*t
y_fin=y_ini+vy*t
dove vx e vy soo le componenti della velocità lungo X e Y
Per il plottaggio, puoi:
[*] definire il passo temporale (ad esempio 0.1 secondi)
[*] trovare il numero di campioni come "tempo della simulazione / passo temporale"
[*] creare due vettori (X e Y) campionando la distanza percorsa su x e y in base al risultato del punto precedente
[*] inserire le istruzioni per il plottaggio all'interno di un ciclo for inserendo una chiamata alla funzione "pause" con parametro uguale al "passo temporale" per ottenere l'effetto movimento
% Definizione della coordinata X inziale
x_ini=10
% Definizione della coordinata Y inziale
y_ini=3
% Definizione della durata della simulazione
t=10
% Definizione del modulo della velocità
v=33
% Definizione della direzione della velocità
v_dir=33
% Scomposizione della velocità nelle componenti X e Y
vx=v*cosd(v_dir)
vy=v*sind(v_dir)
% Calcolo delle coordinate finale
x_fin=x_ini+vx*t
y_fin=y_ini+vy*t
% Sezione per il plottagio
% Scelta tipo plottaggio: 0 => punto
% 1 => linea continua
p_mode=0
% Definizione dell'intervallo di tempo
dt=0.1
% Calcolo del numero dei punti
np=t/dt
% Definizione dei vettori X e Y
x_pt=linspace(x_ini,x_fin,np)
y_pt=linspace(y_ini,y_fin,np)
% Apertura della "figure"
figure
% Creazine degli assi cartesiani
axes
% Plottaggio del punto iniziale e finale della traiettoria
plot(x_pt(1),y_pt(1),'d','markerfacecolor','k','markeredgecolor','k')
grid minor
hold on
plot(x_pt(end),y_pt(end),'d','markerfacecolor','k','markeredgecolor','k')
% Loop per il plottaggio della traiettoria come "linea" con "effetto movimento"
if(p_mode == 0)
for i=1:np
ph=plot(x_pt(i),y_pt(i),'d','markerfacecolor','r','markeredgecolor','r');
xlim([x_ini*.1 x_fin*1.1])
ylim([y_ini*.1 y_fin*1.1])
daspect([1 1 1])
pause(dt)
delete(ph)
end
else
for i=1:np-1
plot([x_pt(i) x_pt(i+1)],[y_pt(i) y_pt(i+1)],'r','linewidth',2)
xlim([x_ini*.1 x_fin*1.1])
ylim([y_ini*.1 y_fin*1.1])
daspect([1 1 1])
pause(dt)
end
end