Laboratorio di fisica computazionale
(Prova d'esame del 24 settembre 2004)

Un' asta sottile uniforme AB, di massa M e lunghezza 2 R,giace in  quiete su un piano orizzontale privo di attrito .  
Una pallina di stucco di massa m partendo da una distanza d dall'asta con velocità v ,perpendicolare all' asta ,
     colpisce l'asta in un punto P a distanza r dal centro rimanendovi attaccata:
	•      Scrivere una procedura che calcoli l'equazione del moto del Centro di  Massa(C . M . )ed il moto di rotazione 
                 rispetto al C . M .  in funzione dei parametri del moto (m, M, R, r, v)
	•         Riportare in un grafico le traiettorie degli estremi A e B per un particolare valore dei parametri.
	•         Animare il moto . 
Si assuma il sistema di riferimento come in figura.

Get["Graphics`Colors`"]
Clear[
      m, M, R, v, r, t, Urto, rc, θ, ra, rb, 
      rp]
Urto[m_, M_, R_, v_, r_][t_]:=
Module[{V, xc, rc0, Ic, ω},
V = ((m v)/(m + M))   ;
xc = ((m r)/(m + M))   ;
rc0 = {xc, 0};  ;
Ic = 
              Simplify[(1/3) M (R^2) + M (xc^2) + m (((r - xc))^2)];(*Momento d'inerzia rispetto all'asse s passante per il C . M . *);
ω = 
              Factor[(((r - xc) m v)/Ic)];(* Conservazione del momento della quantità di moto rispetto a s *);
{{xc, V t}, ω  t}
]
{rc[t_], θ[t_]} = Urto[m, 
            M, R, v, r][t];
ra[t_] = 
        Which[t < 0, {-R, 0}, 
          t ≥ 
            0, (R + rc[0][[1]]) {Cos[θ[t] + π], 
                Sin[θ [t] + π]} + 
            rc[t]];
rb[t_] = 
        Which[t < 0, { R, 0}, 
          t ≥ 
            0, (R - rc[0][[1]]) {Cos[θ[t]], 
                Sin[θ [t]]} + rc[t]];
rp[
          t_] = Which[t < 0, {r, v t}, 
          t ≥ 
            0, (r - rc[0][[1]]) {Cos[θ[t]], 
                Sin[θ [t]]} + rc[t]];

\(\(\(
\)\(rc[t\ ]\)\)\)

d = 1; R = 1; v = -1; M = 2; m = 0.5; 
    r = 0.5;
t0 = v/d;
T = Abs[2  π/θ'[0]];
ym = ((R )/2) 
            Sign[rc[T][[2]]] + rc[
              T][[2]];
ParametricPlot[{ra[t], rb[t]}, {t, 0, 2  T}, 
      PlotStyle -> {Red, Blue}, AspectRatio -> Automatic, 
      PlotRange -> All]

Do[
c1 = 
        ParametricPlot[{rc[x], rp[x], ra[x], rb[x]}, {x, t0, t}, 
          PlotStyle -> {Red, Blue, Green, Magenta}, 
          DisplayFunction -> Identity]; 
Show[
        Graphics[{{Thickness[0.02], Line[{ra[t], rb[t]}]}, {PointSize[0.03], 
              Point[rp[t]], Point[rc[t]]}}, Axes -> True], c1, 
        AspectRatio -> Automatic, 
        PlotRange -> {{-1.5 R, 1.5  R}, {1.1  d, 
              ym}}], 
{t, t0 + 0.0000001, T, 
        T/100}]