Advertisement
Matthen

Balls in circle

Sep 28th, 2012
174
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.19 KB | None | 0 0
  1. g = 0.1; k = 0; TMax = 500; num = 10; vxs = Table[vx, {-0.8,0.8,1.6/num}]; r = 10; tail = TMax;
  2. f[x_, y_] := Sqrt@(x^2 + y^2);
  3. path[vx_] := NDSolve[{x'[0] == vx, y'[0] == Sqrt[1 - vx^2],
  4. x''[t] ==
  5. If[f[x[t], y[t]] > r, -f[x[t], y[t]], 0] x[t]/
  6. Sqrt[x[t]^2 + y[t]^2] - k x'[t],
  7. y''[t] == -g - k y'[t] +
  8. If[f[x[t], y[t]] > r, -f[x[t], y[t]], 0] y[t]/
  9. Sqrt[x[t]^2 + y[t]^2]
  10.  
  11. , x[0] == 0, y[0] == 0.1}, {x[t], y[t]}, {t, 0, TMax}];
  12.  
  13.  
  14. paths = Table[path[v], {v, vxs}];
  15. frame[T_] :=
  16. Show[Table[
  17. ParametricPlot[
  18. First[{x[t], y[t]} /. paths[[i]]] /. {t -> tt}, {tt,
  19. Max[0, T - tail], T}, PlotRange -> {1.1 {-r, r}, 1.1 {-r, r}},
  20. Axes -> None,
  21. PlotStyle ->
  22. Directive[Opacity[0.8],
  23. ColorData["RedBlueTones"][i/Length[paths]]]]
  24. , {i, Length@paths}],
  25. ContourPlot[f[x, y] == r, {x, -1.1 r, 1.1 r}, {y, -1.1 r, 1.1 r}],
  26. Graphics[{
  27. PointSize[Medium], RGBColor[0.3, 0.4, 0.9],
  28. Table[{Darker@Darker@ColorData["RedBlueTones"][i/Length[paths]],
  29. Point[First[{x[t], y[t]} /. paths[[i]] /. {t -> T}]]}
  30. , {i, Length@paths}]
  31.  
  32. }
  33. ]
  34. ];
  35. Manipulate[frame[T],{T,0.01,TMax}]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement