Composizione di due moti unidimensionali 

Una volta avviato il programma nella cella desiderata, aprire il controller della variabile t e far partire l’animazione.

Con i cursori si possono variare i parametri delle due leggi orarie.

Oltre al punto che si muove nel piano, sono visualizzabili:
- il vettore posizione (nero)
- il vettore velocità (blu)
- il vettore accelerazione (rosso)
- la coordinata x (verde)
- la coordinata y (arancione)
- la traiettoria
- gli assi intrinseci della traiettoria
- il vettore accelerazione normale (verde)
- il vettore accelerazione tangenziale (magenta)

Le leggi orarie e gli intervalli di variabilità dei parametri possono essere cambiati a piacere.

Moto parabolico

ClearAll[fx,fy,vx,vy,ax,ay];

fx[t_,x0_,v0x_]:=x0 +v0x t ;   (* legge oraria per la coordinata x, con due parametri liberi *)
fy[t_,y0_,v0y_]:=y0 +v0y t- 10t^2/2; (* legge oraria per la coordinata y, con due parametri liberi *)

vx[t_,x0_,v0x_]:= D[fx[t1,x0,v0x],t1]/. {t1->t}  ;   (* velocità della coordinata x, con due parametri liberi *)
vy[t_,y0_,v0y_]:= D[fy[t1,y0,v0y],t1]/. {t1->t}  ;   (* velocità della coordinata y, con due parametri liberi *)

modv[t_,x0_,v0x_,y0_,v0y_]:=Sqrt[vx[t,x0,v0x]^2+vy[t,y0,v0y]^2]; (* modulo della velocità *)

ax[t_,x0_,v0x_]:= D[fx[t1,x0,v0x],{t1,2}]/.{t1->t}  ;   (* accelerazione della coordinata x, con due parametri liberi *)
ay[t_,y0_,v0y_]:= D[fy[t1,y0,v0y],{t1,2}]/.{t1->t} ;   (* accelerazione della coordinata y, con due parametri liberi *)

moda[t_,x0_,v0x_,y0_,v0y_]:=Sqrt[ax[t,x0,v0x]^2+ay[t,y0,v0y]^2]; (* modulo dell'accelerazione *)

at[t_,x0_,v0x_,y0_,v0y_]:=D[modv[t1,x0,v0x,y0,v0y],t1]/. {t1->t}  ; (* accelerazione tangenziale *)
an[t_,x0_,v0x_,y0_,v0y_]:=Sqrt[moda[t,x0,v0x,y0,v0y]^2-at[t,x0,v0x,y0,v0y]^2]  ; (* accelerazione normale *)

nstep=1000;   (* numero di valori per cui calcola ciascun parametro *)
xmin=0.;
xmax=1.1; (* massima coordinata per la visualizzazione *)
scv=.1;      (* fattore di scala per il vettore velocità *)
sca=.02;      (* fattore di scala per il vettore accelerazione *)

tmin=0.;  (* valore minimo della variabile t *)
tmax=.95;  (* valore massimo della variabile t *)
tstart=tmin;  (* valore iniziale della variabile t *)
tpasso=(tmax-tmin)/nstep;

var1nome="v0";   (* dati per il parametro var1 *)
var1min=0;
var1max=10.;
var1start=4.5;
var1passo=(var1max-var1min)/nstep;

var2nome="θ";   (* dati per il parametro var2 *)
var2min=0;
var2max=Pi/2.;
var2start=1.30;
var2passo=(var2max-var2min)/nstep;

var3nome="x0";    (* dati per il parametro var3 *)
var3min=0;
var3max=1.;
var3start=0;
var3passo=(var3max-var3min)/nstep;

var4nome="y0";    (* dati per il parametro var4 *)
var4min=0;
var4max=1.;
var4start=0;
var4passo=(var4max-var4min)/nstep;

Manipulate[Row[
{Plot[fx[t3,x0,v0 Cos[teta]],{t3,0,1},PlotRange->{xmin,xmax},ImageSize->200,AxesLabel->{"t","x"}],
Plot[fy[t3,y0,v0 Sin[teta]],{t3,0,1},PlotRange->{0,1.5},ImageSize->200,AxesLabel->{"t","y"}]}
],
{{v0,var1start,var1nome},var1min,var1max,var1passo},
{{teta,var2start,var2nome},var2min,var2max,var2passo},
{{x0,var3start,var3nome},var3min,var3max,var3passo},
{{y0,var4start,var4nome},var4min,var4max,var4passo},
ControlPlacement->Left]

Manipulate[Show[
If[Traiettoria,ParametricPlot[{fx[t1,x0,v0 Cos[teta]],fy[t1,y0,v0 Sin[teta]]},{t1,tmin,tmax},PlotRange->{xmin,xmax},PlotStyle->Dashed,AxesLabel->{"x","y"}],ParametricPlot[{0,0},{t1,tmin,tmax},PlotRange->{xmin,xmax},AxesLabel->{"x","y"}]],
Graphics[{PointSize[Large],Point[{fx[t3,x0,v0 Cos[teta]],fy[t3,y0,v0 Sin[teta]]}]}],
If[X,{Graphics[{Dashed,Green,Line[{{fx[t3,x0,v0 Cos[teta]],0},{fx[t3,x0,v0 Cos[teta]],fy[t3,y0,v0 Sin[teta]]}}]}],
Graphics[{Green,PointSize[Large],Point[{fx[t3,x0,v0 Cos[teta]],0}]}]},Graphics[]],
If[Y,{Graphics[{Dashed, Orange,Line[{{0,fy[t3,y0,v0 Sin[teta]]},{fx[t3,x0,v0 Cos[teta]],fy[t3,y0,v0 Sin[teta]]}}]}],
Graphics[{Orange,PointSize[Large],Point[{0,fy[t3,y0,v0 Sin[teta]]}]}]},Graphics[]],
If[Posizione,Graphics[{Arrow[{{0,0},{fx[t3,x0,v0 Cos[teta]],fy[t3,y0,v0 Sin[teta]]}}]}],Graphics[]],
If[Velocità,
Graphics[{Blue,Arrow[{{fx[t3,x0,v0 Cos[teta]],fy[t3,y0,v0 Sin[teta]]},{fx[t3,x0,v0 Cos[teta]]+scv vx[t3,x0,v0 Cos[teta]],fy[t3,y0,v0 Sin[teta]]+scv vy[t3,y0,v0 Sin[teta]]}}]
}],Graphics[]],
If[Accelerazione,
Graphics[{Red,
Arrow[{
{fx[t3,x0,v0 Cos[teta]],fy[t3,y0,v0 Sin[teta]]},
{
fx[t3,x0,v0 Cos[teta]]+sca ax[t3,x0,v0 Cos[teta]],fy[t3,y0,v0 Sin[teta]]+sca ay[t3,y0,v0 Sin[teta]]
}
      }]
            }],
Graphics[]
],
If[Intrinseci,{Plot[fy[t3,y0,v0 Sin[teta]]+ (x-fx[t3,x0,v0 Cos[teta]]) If[vx[t3,x0,v0 Cos[teta]]==0,1000,vy[t3,y0,v0 Sin[teta]]/ vx[t3,x0,v0 Cos[teta]]],{x,0,xmax},PlotStyle->Thin],
Plot[fy[t3,y0,v0 Sin[teta]]- (x-fx[t3,x0,v0 Cos[teta]]) If[vy[t3,y0,v0 Sin[teta]]==0,1000,vx[t3,x0,v0 Cos[teta]]/ vy[t3,y0,v0 Sin[teta]]],{x,0,xmax},PlotStyle->Thin],
Graphics[
{Dashed,Magenta,
Arrow[{{fx[t3,x0,v0 Cos[teta]],fy[t3,y0,v0 Sin[teta]]},{fx[t3,x0,v0 Cos[teta]]+sca at[t3,x0,v0 Cos[teta],y0,v0 Sin[teta]]/modv[t3,x0,v0 Cos[teta],y0,v0 Sin[teta]]vx[t3,x0,v0 Cos[teta]],fy[t3,y0,v0 Sin[teta]]+sca at[t3,x0,v0 Cos[teta],y0,v0 Sin[teta]]/modv[t3,x0,v0 Cos[teta],y0,v0 Sin[teta]]vy[t3,y0,v0 Sin[teta]]}}]
}
],
Graphics[
{Dashed,Green,
Arrow[{{fx[t3,x0,v0 Cos[teta]],fy[t3,y0,v0 Sin[teta]]},{fx[t3,x0,v0 Cos[teta]]+sca an[t3,x0,v0 Cos[teta],y0,v0 Sin[teta]]/modv[t3,x0,v0 Cos[teta],y0,v0 Sin[teta]]vy[t3,x0,v0 Sin[teta]],fy[t3,y0,v0 Sin[teta]]-sca an[t3,x0,v0 Cos[teta],y0,v0 Sin[teta]]/modv[t3,x0,v0 Cos[teta],y0,v0 Sin[teta]]vx[t3,y0,v0 Cos[teta]]}}]
}
]
},ParametricPlot[{0,0},{t1,tmin,tmax},PlotRange->{xmin,xmax}]]
] ,
{{t3,tstart,"t"},tmin,tmax,tpasso},
{{v0,var1start,var1nome},var1min,var1max,var1passo},
{{teta,var2start,var2nome},var2min,var2max,var2passo},
{{x0,var3start,var3nome},var3min,var3max,var3passo},
{{y0,var4start,var4nome},var4min,var4max,var4passo},
{{X,False},{True,False}},
{{Y,False},{True,False}},
{{Posizione,False},{True,False}},
{{Traiettoria,False},{True,False}},
{{Velocità,False},{True,False}},
{{Accelerazione,False},{True,False}},
{{Intrinseci,False},{True,False}},
ControlPlacement->Left]

Composizione di due moti armonici su assi ortogonali

fx[t_,a11_,a12_]:=a11 Sin[t+a12];   (* legge oraria per la coordinata x, con due parametri liberi *)
fy[t_,a21_,a22_]:=a21 Sin[t+a22 ]; (* legge oraria per la coordinata y, con due parametri liberi *)

vx[t_,a11_,a12_]:= D[fx[t1,a11,a12],t1]/. {t1->t}  ;   (* velocità della coordinata x, con due parametri liberi *)
vy[t_,a21_,a22_]:= D[fy[t1,a21,a22],t1]/. {t1->t}  ;   (* velocità della coordinata y, con due parametri liberi *)

accx[t_,a11_,a12_]:= D[vx[t1,a11,a12],t1]/. {t1->t}  ;   (* accelerazione della coordinata x, con due parametri liberi *)
accy[t_,a21_,a22_]:= D[vy[t1,a21,a22],t1]/. {t1->t}  ;   (* accelerazione della coordinata y, con due parametri liberi *)

modv[t_,a11_,a12_,a21_,a22_]:=Sqrt[vx[t,a11,a12]^2+vy[t,a21,a22]^2]; (* modulo della velocità *)

moda[t_,a11_,a12_,a21_,a22_]:=Sqrt[accx[t,a11,a12]^2+accy[t,a21,a22]^2]; (* modulo dell'accelerazione *)

at[t_,a11_,a12_,a21_,a22_]:=D[modv[t1,a11,a12,a21,a22],t1]/. {t1->t}  ; (* accelerazione tangenziale *)
an[t_,a11_,a12_,a21_,a22_]:=Sqrt[moda[t,a11,a12,a21,a22]^2-at[t,a11,a12,a21,a22]^2]  ; (* accelerazione normale *)

nstep=1000;   (* numero di valori per cui calcola ciascun parametro *)
xmax=1.1; (* massima coordinata per la visualizzazione *)
sc=.4;      (* fattore di scala per i vettori velocità e accelerazione *)

tmin=0.0001;  (* valore minimo della variabile t *)
tmax=2.Pi;  (* valore massimo della variabile t *)
tstart=tmin;  (* valore iniziale della variabile t *)
tpasso=(tmax-tmin)/nstep;

nome11="Ax";   (* dati per il parametro a11 *)
a11min=0;
a11max=1;
a11start=1;
a11passo=(a11max-a11min)/nstep;

nome12="ϕx";   (* dati per il parametro a12 *)
a12min=0;
a12max=2. Pi;
a12start=Pi/2.;
a12passo=(a12max-a12min)/nstep;

nome21="Ay";    (* dati per il parametro a21 *)
a21min=0;
a21max=1;
a21start=1;
a21passo=(a21max-a21min)/nstep;

nome22="ϕy";    (* dati per il parametro a22 *)
a22min=0;
a22max=2. Pi;
a22start=0;
a22passo=(a22max-a22min)/nstep;

Manipulate[Row[
{Plot[fx[t3,ax,fix],{t3,0,2Pi},PlotRange->{-1,1},ImageSize->200,AxesLabel->{"t","x"}],
Plot[fy[t3,ay,fiy],{t3,0,2Pi},PlotRange->{-1,1},ImageSize->200,AxesLabel->{"t","y"}]}
],
{{ax,a11start,nome11},a11min,a11max,a11passo},{{fix,a12start,nome12},a12min,a12max,a12passo},{{ay,a21start,nome21},a21min,a21max,a21passo},{{fiy,a22start,nome22},a22min,a22max,a22passo},ControlPlacement->Left]

Manipulate[Show[
If[Traiettoria,ParametricPlot[{fx[t1,ax,fix],fy[t1,ay,fiy]},{t1,tmin,tmax},PlotRange->xmax,PlotStyle->Dashed,AxesLabel->{"x","y"}],ParametricPlot[{0,0},{t1,tmin,tmax},PlotRange->xmax,AxesLabel->{"x","y"}]],
Graphics[{PointSize[Large],Point[{fx[t3,ax,fix],fy[t3,ay,fiy]}]}],
If[X,{Graphics[{Dashed,Green,Line[{{fx[t3,ax,fix],0},{fx[t3,ax,fix],fy[t3,ay,fiy]}}]}],
Graphics[{Green,PointSize[Large],Point[{fx[t3,ax,fix],0}]}]},Graphics[]],
If[Y,{Graphics[{Dashed, Orange,Line[{{0,fy[t3,ay,fiy]},{fx[t3,ax,fix],fy[t3,ay,fiy]}}]}],
Graphics[{Orange,PointSize[Large],Point[{0,fy[t3,ay,fiy]}]}]},Graphics[]],
If[Posizione,Graphics[{Arrow[{{0,0},{fx[t3,ax,fix],fy[t3,ay,fiy]}}]}],Graphics[]],
If[Velocità,
Graphics[{Blue,Arrow[{{fx[t3,ax,fix],fy[t3,ay,fiy]},{fx[t3,ax,fix]+sc vx[t3,ax,fix],fy[t3,ay,fiy]+sc vy[t3,ay,fiy]}}]}],Graphics[]],
If[Accelerazione,Graphics[{Red,Arrow[{{fx[t3,ax,fix],fy[t3,ay,fiy]},{fx[t3,ax,fix]+sc D[fx[t,ax,fix],{t,2}]/.{t->t3},fy[t3,ay,fiy]+sc D[fy[t,ay,fiy],{t,2}]/.{t->t3}}}]}
],Graphics[]
] 
,
If[AssiIntrinseci,{Plot[fy[t3,ay,fiy]+ (x-fx[t3,ax,fix]) If[vx[t3,ax,fix]==0,1000,vy[t3,ay,fiy]/ vx[t3,ax,fix]],{x,-xmax,xmax},PlotStyle->Thin],
Plot[fy[t3,ay,fiy]- (x-fx[t3,ax,fix]) If[vy[t3,ay,fiy]==0,1000,vx[t3,ax,fix]/ vy[t3,ay,fiy]],{x,-xmax,xmax},PlotStyle->Thin]
,
Graphics[
{Dashed,Magenta,
Arrow[{{fx[t3,ax,fix],fy[t3,ay,fiy]},{fx[t3,ax,fix]+sc at[t3,ax,fix,ay,fiy]/modv[t3,ax,fix,ay,fiy]vx[t3,ax,fix],fy[t3,ay,fiy]+sc at[t3,ax,fix,ay,fiy]/modv[t3,ax,fix,ay,fiy]vy[t3,ay,fiy]}}
]
}
],
Graphics[
{Dashed,Green,
Arrow[{{fx[t3,ax,fix],fy[t3,ay,fiy]},{fx[t3,ax,fix]-sc an[t3,ax,fix,ay,fiy]/modv[t3,ax,fix,ay,fiy]vy[t3,ay,fiy],fy[t3,ay,fiy]+sc an[t3,ax,fix,ay,fiy]/modv[t3,ax,fix,ay,fiy]vx[t3,ax,fix]}}
]
}
]
}
,Graphics[]
] 
]
,
{{t3,tstart,"t"},tmin,tmax,tpasso},
{{ax,a11start,nome11},a11min,a11max,a11passo},{{fix,a12start,nome12},a12min,a12max,a12passo},{{ay,a21start,nome21},a21min,a21max,a21passo},{{fiy,a22start,nome22},a22min,a22max,a22passo},
{{Posizione,False},{True,False}},
{{Velocità,False},{True,False}},
{{Accelerazione,False},{True,False}},
{{X,False},{True,False}},
{{Y,False},{True,False}},
{{Traiettoria,False},{True,False}},
{{AssiIntrinseci,False},{True,False}},
ControlPlacement->Left]

Traiettoria lorentziana

fx[t_,a11_,a12_]:=a11 Tan[t+a12];
fy[t_,a21_,a22_]:=a21 Cos[t+a22]^2;

nstep=100;
xmax=1.5;
sc=.4;


tmin=-Pi/2+.0001;
tmax=Pi/2 - .0001;
tstart=tmin;
tpasso=(tmax-tmin)/nstep;

nome11="Ax";
a11min=0;
a11max=1;
a11start=.1;
a11passo=(a11max-a11min)/nstep;

nome12="ϕx";
a12min=0;
a12max=2 Pi;
a12start=0;
a12passo=(a12max-a12min)/nstep;

nome21="Ay";
a21min=0;
a21max=1;
a21start=1;
a21passo=(a21max-a21min)/nstep;

nome22="ϕy";
a22min=0;
a22max=2 Pi;
a22start=0;
a22passo=(a22max-a22min)/nstep;


Manipulate[Row[
{Plot[fx[t3,ax,fix],{t3,-Pi/2,Pi/2},PlotRange->{-1,1},ImageSize->200,AxesLabel->{"t","x"}],
Plot[fy[t3,ay,fiy],{t3,-Pi/2,Pi/2},PlotRange->{0,1},ImageSize->200,AxesLabel->{"t","y"}]}
],
{{ax,a11start,nome11},a11min,a11max,a11passo},{{fix,a12start,nome12},a12min,a12max,a12passo},{{ay,a21start,nome21},a21min,a21max,a21passo},{{fiy,a22start,nome22},a22min,a22max,a22passo},ControlPlacement->Left]

Manipulate[Show[
If[Traiettoria,ParametricPlot[{fx[t1,ax,fix],fy[t1,ay,fiy]},{t1,tmin,tmax},PlotRange->xmax,PlotStyle->Dashed,AxesLabel->{"x","y"}],ParametricPlot[{0,0},{t1,tmin,tmax},PlotRange->xmax,AxesLabel->{"x","y"}]],
Graphics[{PointSize[Large],Point[{fx[t3,ax,fix],fy[t3,ay,fiy]}]}],
If[X,{Graphics[{Dashed,Green,Line[{{fx[t3,ax,fix],0},{fx[t3,ax,fix],fy[t3,ay,fiy]}}]}],
Graphics[{Green,PointSize[Large],Point[{fx[t3,ax,fix],0}]}]},Graphics[]],
If[Y,{Graphics[{Dashed, Orange,Line[{{0,fy[t3,ay,fiy]},{fx[t3,ax,fix],fy[t3,ay,fiy]}}]}],
Graphics[{Orange,PointSize[Large],Point[{0,fy[t3,ay,fiy]}]}]},Graphics[]],
If[Posizione,Graphics[{Arrow[{{0,0},{fx[t3,ax,fix],fy[t3,ay,fiy]}}]}],Graphics[]],
If[Velocità,
Graphics[{Blue,Arrow[{{fx[t3,ax,fix],fy[t3,ay,fiy]},{fx[t3,ax,fix]+sc D[fx[t,ax,fix],t]/.{t->t3},fy[t3,ay,fiy]+sc D[fy[t,ay,fiy],t]/.{t->t3}}}]}],Graphics[]],
If[Accelerazione,Graphics[{Red,Arrow[{{fx[t3,ax,fix],fy[t3,ay,fiy]},{fx[t3,ax,fix]+sc D[fx[t,ax,fix],{t,2}]/.{t->t3},fy[t3,ay,fiy]+sc D[fy[t,ay,fiy],{t,2}]/.{t->t3}}}]}],Graphics[]]
],
{{t3,tstart,"t"},tmin,tmax,tpasso},
{{ax,a11start,nome11},a11min,a11max,a11passo},{{fix,a12start,nome12},a12min,a12max,a12passo},{{ay,a21start,nome21},a21min,a21max,a21passo},{{fiy,a22start,nome22},a22min,a22max,a22passo},
{{Posizione,False},{True,False}},{{Velocità,False},{True,False}},{{Accelerazione,False},{True,False}},{{X,False},{True,False}},{{Y,False},{True,False}},{{Traiettoria,False},{True,False}},ControlPlacement->Left]

Moto dei proiettili con attrito viscoso

ClearAll[fx,fy,vx,vy,ax,ay,tau,g];
g=10;

fx[t_,x0_,v0x_,tau_]:=x0 +v0x tau (1-Exp[-t/tau]) ;   (* legge oraria per la coordinata x, con tre parametri liberi *)
fy[t_,y0_,v0y_,tau_]:=y0 +tau(v0y+g tau)(1-Exp[-t/tau])-g tau t ; (* legge oraria per la coordinata y, con tre parametri liberi *)

vx[t_,x0_,v0x_,tau_]:= D[fx[t1,x0,v0x,tau],t1]/. {t1->t}  ;   (* velocità della coordinata x, con tre parametri liberi *)
vy[t_,y0_,v0y_,tau_]:= D[fy[t1,y0,v0y,tau],t1]/. {t1->t}  ;   (* velocità della coordinata y, con tre parametri liberi *)

modv[t_,x0_,v0x_,y0_,v0y_,tau_]:=Sqrt[vx[t,x0,v0x,tau]^2+vy[t,y0,v0y,tau]^2]; (* modulo della velocità *)

ax[t_,x0_,v0x_,tau_]:= D[fx[t1,x0,v0x,tau],{t1,2}]/.{t1->t}  ;   (* accelerazione della coordinata x, con tre parametri liberi *)
ay[t_,y0_,v0y_,tau_]:= D[fy[t1,y0,v0y,tau],{t1,2}]/.{t1->t} ;   (* accelerazione della coordinata y, con tre parametri liberi *)

moda[t_,x0_,v0x_,y0_,v0y_,tau_]:=Sqrt[ax[t,x0,v0x,tau]^2+ay[t,y0,v0y,tau]^2]; (* modulo dell'accelerazione *)

at[t_,x0_,v0x_,y0_,v0y_,tau_]:=D[modv[t1,x0,v0x,y0,v0y,tau],t1]/. {t1->t}  ; (* accelerazione tangenziale *)
an[t_,x0_,v0x_,y0_,v0y_,tau_]:=Sqrt[moda[t,x0,v0x,y0,v0y,tau]^2-at[t,x0,v0x,y0,v0y,tau]^2]  ; (* accelerazione normale *)

nstep=1000;   (* numero di valori per cui calcola ciascun parametro *)
xmin=0.;
xmax=1.1; (* massima coordinata per la visualizzazione *)
scv=.1;      (* fattore di scala per il vettore velocità *)
sca=.02;      (* fattore di scala per il vettore accelerazione *)

tmin=0.;  (* valore minimo della variabile t *)
tmax=.95;  (* valore massimo della variabile t *)
tstart=tmin;  (* valore iniziale della variabile t *)
tpasso=(tmax-tmin)/nstep;

var1nome="v0";   (* dati per il parametro var1 *)
var1min=0;
var1max=10.;
var1start=4.5;
var1passo=(var1max-var1min)/nstep;

var2nome="θ";   (* dati per il parametro var2 *)
var2min=0;
var2max=Pi/2.;
var2start=1.30;
var2passo=(var2max-var2min)/nstep;

var3nome="x0";    (* dati per il parametro var3 *)
var3min=0;
var3max=1.;
var3start=0;
var3passo=(var3max-var3min)/nstep;

var4nome="y0";    (* dati per il parametro var4 *)
var4min=0;
var4max=1.;
var4start=0;
var4passo=(var4max-var4min)/nstep;

var5nome="tau";    (* dati per il parametro var5 *)
var5min=0.01;
var5max=6;
var5start=6;
var5passo=(var5max-var5min)/nstep;

Manipulate[Row[
{Plot[fx[t3,x0,v0 Cos[teta],tau],{t3,0,1},PlotRange->{xmin,xmax},ImageSize->200,AxesLabel->{"t","x"}],
Plot[fy[t3,y0,v0 Sin[teta],tau],{t3,0,1},PlotRange->{0,1.5},ImageSize->200,AxesLabel->{"t","y"}]}
],
{{v0,var1start,var1nome},var1min,var1max,var1passo},
{{teta,var2start,var2nome},var2min,var2max,var2passo},
{{x0,var3start,var3nome},var3min,var3max,var3passo},
{{y0,var4start,var4nome},var4min,var4max,var4passo},
{{tau,var5start,var5nome},var5min,var5max,var5passo},
ControlPlacement->Left]


Manipulate[Show[
If[Traiettoria,ParametricPlot[{fx[t1,x0,v0 Cos[teta],tau],fy[t1,y0,v0 Sin[teta],tau]},{t1,tmin,tmax},PlotRange->{xmin,xmax},PlotStyle->Dashed],ParametricPlot[{0,0},{t1,tmin,tmax},PlotRange->{xmin,xmax}]],
Graphics[{PointSize[Large],Point[{fx[t3,x0,v0 Cos[teta],tau],fy[t3,y0,v0 Sin[teta],tau]}]}],
If[X,{Graphics[{Dashed,Green,Line[{{fx[t3,x0,v0 Cos[teta],tau],0},{fx[t3,x0,v0 Cos[teta],tau],fy[t3,y0,v0 Sin[teta],tau]}}]}],
Graphics[{Green,PointSize[Large],Point[{fx[t3,x0,v0 Cos[teta],tau],0}]}]},Graphics[]],
If[Y,{Graphics[{Dashed, Orange,Line[{{0,fy[t3,y0,v0 Sin[teta],tau]},{fx[t3,x0,v0 Cos[teta],tau],fy[t3,y0,v0 Sin[teta],tau]}}]}],
Graphics[{Orange,PointSize[Large],Point[{0,fy[t3,y0,v0 Sin[teta],tau]}]}]},Graphics[]],
If[Posizione,Graphics[{Arrow[{{0,0},{fx[t3,x0,v0 Cos[teta],tau],fy[t3,y0,v0 Sin[teta],tau]}}]}],Graphics[]],
If[Velocità,
Graphics[{Blue,Arrow[{{fx[t3,x0,v0 Cos[teta],tau],fy[t3,y0,v0 Sin[teta],tau]},{fx[t3,x0,v0 Cos[teta],tau]+scv vx[t3,x0,v0 Cos[teta],tau],fy[t3,y0,v0 Sin[teta],tau]+scv vy[t3,y0,v0 Sin[teta],tau]}}]
}],Graphics[]],
If[Accelerazione,
Graphics[{Red,
Arrow[{
{fx[t3,x0,v0 Cos[teta],tau],fy[t3,y0,v0 Sin[teta],tau]},
{
fx[t3,x0,v0 Cos[teta],tau]+sca ax[t3,x0,v0 Cos[teta],tau],fy[t3,y0,v0 Sin[teta],tau]+sca ay[t3,y0,v0 Sin[teta],tau]
}
      }]
            }],
Graphics[]
],
If[Intrinseci,{Plot[fy[t3,y0,v0 Sin[teta],tau]+ (x-fx[t3,x0,v0 Cos[teta],tau]) If[vx[t3,x0,v0 Cos[teta],tau]==0,1000,vy[t3,y0,v0 Sin[teta],tau]/ vx[t3,x0,v0 Cos[teta],tau]],{x,0,xmax},PlotStyle->Thin],
Plot[fy[t3,y0,v0 Sin[teta],tau]- (x-fx[t3,x0,v0 Cos[teta],tau]) If[vy[t3,y0,v0 Sin[teta],tau]==0,1000,vx[t3,x0,v0 Cos[teta],tau]/ vy[t3,y0,v0 Sin[teta],tau]],{x,0,xmax},PlotStyle->Thin],
Graphics[
{Dashed,Magenta,
Arrow[{{fx[t3,x0,v0 Cos[teta],tau],fy[t3,y0,v0 Sin[teta],tau]},{fx[t3,x0,v0 Cos[teta],tau]+sca at[t3,x0,v0 Cos[teta],y0,v0 Sin[teta],tau]/modv[t3,x0,v0 Cos[teta],y0,v0 Sin[teta],tau]vx[t3,x0,v0 Cos[teta],tau],fy[t3,y0,v0 Sin[teta],tau]+sca at[t3,x0,v0 Cos[teta],y0,v0 Sin[teta],tau]/modv[t3,x0,v0 Cos[teta],y0,v0 Sin[teta],tau]vy[t3,y0,v0 Sin[teta],tau]}}]
}
],
Graphics[
{Dashed,Green,
Arrow[{{fx[t3,x0,v0 Cos[teta],tau],fy[t3,y0,v0 Sin[teta],tau]},{fx[t3,x0,v0 Cos[teta],tau]+sca an[t3,x0,v0 Cos[teta],y0,v0 Sin[teta],tau]/modv[t3,x0,v0 Cos[teta],y0,v0 Sin[teta],tau]vy[t3,x0,v0 Sin[teta],tau],fy[t3,y0,v0 Sin[teta],tau]-sca an[t3,x0,v0 Cos[teta],y0,v0 Sin[teta],tau]/modv[t3,x0,v0 Cos[teta],y0,v0 Sin[teta],tau]vx[t3,y0,v0 Cos[teta],tau]}}]
}
]
},ParametricPlot[{0,0},{t1,tmin,tmax},PlotRange->{xmin,xmax}]]
] ,
{{t3,tstart,"t"},tmin,tmax,tpasso},
{{v0,var1start,var1nome},var1min,var1max,var1passo},
{{teta,var2start,var2nome},var2min,var2max,var2passo},
{{x0,var3start,var3nome},var3min,var3max,var3passo},
{{y0,var4start,var4nome},var4min,var4max,var4passo},
{{tau,var5start,var5nome},var5min,var5max,var5passo},
{{X,False},{True,False}},
{{Y,False},{True,False}},
{{Posizione,False},{True,False}},
{{Traiettoria,False},{True,False}},
{{Velocità,False},{True,False}},
{{Accelerazione,False},{True,False}},
{{Intrinseci,False},{True,False}},
ControlPlacement->Left]

Altra sovrapposizione di due moti armonici su assi ortogonali (compito d'esame)

fx[t_,a11_,a12_]:=a11 Sin[t+a12];   (* legge oraria per la coordinata x, con due parametri liberi *)
fy[t_,a21_,a22_]:=a21 Cos[t+a22 ]^2; (* legge oraria per la coordinata y, con due parametri liberi *)

vx[t_,a11_,a12_]:= D[fx[t1,a11,a12],t1]/. {t1->t}  ;   (* velocità della coordinata x, con due parametri liberi *)
vy[t_,a21_,a22_]:= D[fy[t1,a21,a22],t1]/. {t1->t}  ;   (* velocità della coordinata y, con due parametri liberi *)

accx[t_,a11_,a12_]:= D[vx[t1,a11,a12],t1]/. {t1->t}  ;   (* accelerazione della coordinata x, con due parametri liberi *)
accy[t_,a21_,a22_]:= D[vy[t1,a21,a22],t1]/. {t1->t}  ;   (* accelerazione della coordinata y, con due parametri liberi *)


nstep=1000;   (* numero di valori per cui calcola ciascun parametro *)
xmax=1.1; (* massima coordinata per la visualizzazione *)
sc=.4;      (* fattore di scala per i vettori velocità e accelerazione *)

tmin=0;  (* valore minimo della variabile t *)
tmax=2Pi;  (* valore massimo della variabile t *)
tstart=tmin;  (* valore iniziale della variabile t *)
tpasso=(tmax-tmin)/nstep;

nome11="Ax";   (* dati per il parametro a11 *)
a11min=0;
a11max=1;
a11start=1;
a11passo=(a11max-a11min)/nstep;

nome12="ϕx";   (* dati per il parametro a12 *)
a12min=0;
a12max=2 Pi;
a12start=0;
a12passo=(a12max-a12min)/nstep;

nome21="Ay";    (* dati per il parametro a21 *)
a21min=0;
a21max=1;
a21start=0;
a21passo=(a21max-a21min)/nstep;

nome22="ϕy";    (* dati per il parametro a22 *)
a22min=0;
a22max=2 Pi;
a22start=0;
a22passo=(a22max-a22min)/nstep;

Manipulate[Row[
{Plot[fx[t3,ax,fix],{t3,0,2Pi},PlotRange->{-1,1},ImageSize->200,AxesLabel->{"t","x"}],
Plot[fy[t3,ay,fiy],{t3,0,2Pi},PlotRange->{-1,1},ImageSize->200,AxesLabel->{"t","y"}]}
],
{{ax,a11start,nome11},a11min,a11max,a11passo},{{fix,a12start,nome12},a12min,a12max,a12passo},{{ay,a21start,nome21},a21min,a21max,a21passo},{{fiy,a22start,nome22},a22min,a22max,a22passo},ControlPlacement->Left]

Manipulate[Show[
If[Traiettoria,ParametricPlot[{fx[t1,ax,fix],fy[t1,ay,fiy]},{t1,tmin,tmax},PlotRange->xmax,PlotStyle->Dashed],ParametricPlot[{0,0},{t1,tmin,tmax},PlotRange->xmax]],
Graphics[{PointSize[Large],Point[{fx[t3,ax,fix],fy[t3,ay,fiy]}]}],
If[X,{Graphics[{Dashed,Green,Line[{{fx[t3,ax,fix],0},{fx[t3,ax,fix],fy[t3,ay,fiy]}}]}],
Graphics[{Green,PointSize[Large],Point[{fx[t3,ax,fix],0}]}]},Graphics[]],
If[Y,{Graphics[{Dashed, Orange,Line[{{0,fy[t3,ay,fiy]},{fx[t3,ax,fix],fy[t3,ay,fiy]}}]}],
Graphics[{Orange,PointSize[Large],Point[{0,fy[t3,ay,fiy]}]}]},Graphics[]],
If[Posizione,Graphics[{Arrow[{{0,0},{fx[t3,ax,fix],fy[t3,ay,fiy]}}]}],Graphics[]],
If[Velocità,
Graphics[{Blue,Arrow[{{fx[t3,ax,fix],fy[t3,ay,fiy]},{fx[t3,ax,fix]+sc vx[t3,ax,fix],fy[t3,ay,fiy]+sc vy[t3,ay,fiy]}}]}],Graphics[]],
If[Accelerazione,Graphics[{Red,Arrow[{{fx[t3,ax,fix],fy[t3,ay,fiy]},{fx[t3,ax,fix]+sc D[fx[t,ax,fix],{t,2}]/.{t->t3},fy[t3,ay,fiy]+sc D[fy[t,ay,fiy],{t,2}]/.{t->t3}}}]}
],Graphics[]
] 
(* ,
If[AssiIntrinseci,{Plot[fy[t3,ay,fiy]+ (x-fx[t3,ax,fix]) If[vx[t3,ax,fix]==0,1000,vy[t3,ay,fiy]/ vx[t3,ax,fix]],{x,-xmax,xmax},PlotStyle->Thin],
Plot[fy[t3,ay,fiy]- (x-fx[t3,ax,fix]) If[vy[t3,ay,fiy]==0,1000,vx[t3,ax,fix]/ vy[t3,ay,fiy]],{x,-xmax,xmax},PlotStyle->Thin]}
,Graphics[]
] 
*)
],
{{t3,tstart,"t"},tmin,tmax,tpasso},
{{ax,a11start,nome11},a11min,a11max,a11passo},{{fix,a12start,nome12},a12min,a12max,a12passo},{{ay,a21start,nome21},a21min,a21max,a21passo},{{fiy,a22start,nome22},a22min,a22max,a22passo},
{{Posizione,False},{True,False}},
{{Velocità,False},{True,False}},
{{Accelerazione,False},{True,False}},
{{X,False},{True,False}},
{{Y,False},{True,False}},
{{Traiettoria,False},{True,False}},
(* {{AssiIntrinseci,False},{True,False}}, *)
ControlPlacement->Left]