Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- g = 0.1; k = 0; TMax = 500; num = 10; vxs = Table[vx, {-0.8,0.8,1.6/num}]; r = 10; tail = TMax;
- f[x_, y_] := Sqrt@(x^2 + y^2);
- path[vx_] := NDSolve[{x'[0] == vx, y'[0] == Sqrt[1 - vx^2],
- x''[t] ==
- If[f[x[t], y[t]] > r, -f[x[t], y[t]], 0] x[t]/
- Sqrt[x[t]^2 + y[t]^2] - k x'[t],
- y''[t] == -g - k y'[t] +
- If[f[x[t], y[t]] > r, -f[x[t], y[t]], 0] y[t]/
- Sqrt[x[t]^2 + y[t]^2]
- , x[0] == 0, y[0] == 0.1}, {x[t], y[t]}, {t, 0, TMax}];
- paths = Table[path[v], {v, vxs}];
- frame[T_] :=
- Show[Table[
- ParametricPlot[
- First[{x[t], y[t]} /. paths[[i]]] /. {t -> tt}, {tt,
- Max[0, T - tail], T}, PlotRange -> {1.1 {-r, r}, 1.1 {-r, r}},
- Axes -> None,
- PlotStyle ->
- Directive[Opacity[0.8],
- ColorData["RedBlueTones"][i/Length[paths]]]]
- , {i, Length@paths}],
- ContourPlot[f[x, y] == r, {x, -1.1 r, 1.1 r}, {y, -1.1 r, 1.1 r}],
- Graphics[{
- PointSize[Medium], RGBColor[0.3, 0.4, 0.9],
- Table[{Darker@Darker@ColorData["RedBlueTones"][i/Length[paths]],
- Point[First[{x[t], y[t]} /. paths[[i]] /. {t -> T}]]}
- , {i, Length@paths}]
- }
- ]
- ];
- Manipulate[frame[T],{T,0.01,TMax}]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement