
Rotating Launch
By:
Matthen on Jun 26th, 2011 | syntax:
None | size: 1.50 KB | hits: 126 | expires: Never
td = 0.02;
a = 1 - td 4 Pi;
Rsoln[ti_] :=
NDSolve[{x''[t] == -x[t]/(x[t]^2 + y[t]^2)^(3/2),
y''[t] == -y[t]/(x[t]^2 + y[t]^2)^(3/2),
x[0] == Cos[\[Theta][ti]], y[0] == Sin[\[Theta][ti]],
x'[0] == (a - td \[Theta]'[ti]) Sin[\[Theta][ti]],
y'[0] == -(a - td \[Theta]'[ti]) Cos[\[Theta][ti]]}, {x[t],
y[t]}, {t, 0, 10}];
Lsoln[ti_] :=
NDSolve[{x''[t] == -x[t]/(x[t]^2 + y[t]^2)^(3/2),
y''[t] == -y[t]/(x[t]^2 + y[t]^2)^(3/2),
x[0] == Cos[\[Theta][ti]], y[0] == Sin[\[Theta][ti]],
x'[0] == -(a + td \[Theta]'[ti]) Sin[\[Theta][ti]],
y'[0] == (a + td \[Theta]'[ti]) Cos[\[Theta][ti]]}, {x[t],
y[t]}, {t, 0, 10}];
\[Theta][t_] :=
If[t < 0, Pi/2,
If[t <= 1, Pi/2 + 2 Pi t^2, 4.5 Pi - 2 Pi (t - 2)^2]];
Manipulate[
lsoln = Rsoln[\[Tau]];
rsoln = Lsoln[\[Tau]];
Show[
ParametricPlot[
First[{x[t], y[t]} /. lsoln /. {t -> tt}], {tt, 0, 0.7},
PlotStyle -> Directive[Thick, Red],
PlotRange -> {{-1.1, 1.1}, {-1.1, 1.1}}, Axes -> None],
ParametricPlot[
First[{x[t], y[t]} /. rsoln /. {t -> tt}], {tt, 0,
0.7 + 2.8 Max[Min[\[Tau], 2 - \[Tau]], 0]},
PlotStyle -> Directive[Thick, Blue]],
Graphics[{
Point[{Cos[\[Theta][\[Tau]]], Sin[\[Theta][\[Tau]]]}],
FaceForm[RGBColor[0.3, 0.5, 0.8]],
Disk[{0, 0}, 0.9], White,
Table[
Line[{{0, 0},
0.9 {Cos[\[Theta][\[Tau]] - i],
Sin[\[Theta][\[Tau]] - i]}}], {i, 0, 2 Pi - 0.01, Pi/4}]
}]
], {\[Tau], -0.2, 2}]
(*it's that easy*)