ManipulateAnimateA=1;scale=0.2;f[t_]:=A*Exp[ωt];g[t_]:=scale*f[t];(*Plotcirclestomakeanimationsteadyandsimple*)FullCircle=ParametricPlot[{Sin[t],Cos[t]},{t,0,2π},ImageSize290];FullCircle2=ParametricPlot[{Abs[f[0]+g[0]]*ReIm[f[t]]},{t,0,4},ImageSize290,PlotStyleDashed];PL[t_]:=f[t]+g[t];PR[t_]:=f[t]-g[t];TL[T_,τ_]:=(p2[τ]-p1[0])*(T/τ)+p1[0];Row(* +++++++++FIRSTCOLUMN+++++++++*)Show[{FullCircle,FullCircle2,Graphics[{Text["τ = "+τ,{-0.85,0.95}]}],(*Hands-LeftandRightLines-TorsoandShoulders*)Graphics[{PointSize[0.05],Black,Point[{ReIm[f[T]]}],Red,Point[{ReIm[PL[T]]}],(*LeftHand*)Blue,Point[{ReIm[PR[T]]}],(*RightHand*)Black,Line[{ReIm[PL[T]],ReIm[PR[T]]}],Black,Line[{ReIm[f[T]],{0,0}}]}],Graphics[{PointSize[0.05],(*Ball1*)(*startpoint*)Green,Point[{ReIm[p1[0]]}],(*endpoint*)Point[{ReIm[p2[τ]]}],(*BallTrajectoryinWorldSpace*)Point[{ReIm[TL[T,τ]]}],{Black,Text[Style["Non Rotating Frame",18,Bold],{0,-0.5},BackgroundWhite]}}],(*Ball1*)(*Plotlineconnectingp1andp2*)ParametricPlot[ReIm[TL[Τ,τ]],{Τ,0,τ}],(*plotrotatingtrajectoryininertialframe--dotted*)(*TRLvariableiscontrolledinMantipulateoptions,itturnstheploton/off*)ParametricPlot[TRL*ReIm[-f[T]*f[-Τ]*TL[Τ,τ]],{Τ,0,τ},PlotStyleDashed]}],(* +++++++++SECONDCOLUMN+++++++++*)Show[{FullCircle,FullCircle2,(*plotrotatedtrajectory*)ParametricPlot[ReIm[-f[-Τ]*TL[Τ,τ]],{Τ,0,τ}],Graphics[{PointSize[0.05],(*GeneratesrotatedpointB1*){Purple,Point[{ReIm[-f[-T]*TL[T,τ]]}]},Text[Style["Rotating Frame",18,Bold],{0,-0.5},BackgroundWhite]}]}],(*Animateparameters*){T,0,τ},AnimationRate0.05,AnimationRunningFalse,(*Manipulateparameters*){{p1,PR,"Ball 1 throw"},{PR,PL}},{{p2,PL,"Ball 1 catch"},{PR,PL}},{{TRL,0,"Show rotated trajectory in inertial frame"},{0,1}},{{ω,-6.28319,"Rotational Velocity ω (intial value is -2π)"},Table[nπ,{n,-2,2,0.5}]},{{τ,0.4,"Full Rotations To Catch τ"},0.1,2},SaveDefinitionsTrue