Manipulate[Show[
Graphics[{Blue,Dashed,Circle[{0,0},r]}],Graphics[{RGBColor[0.7,0.7,0.9],Disk[{0,0},(5/n)(1/25)r]}],
ParametricPlot[{ r Cos[ t](1+a Sin[n t]), r Sin[t](1+a Sin[ n t])},{t,If[time<6π,0,1(time-6π)],time},ColorFunction->Function[{x,y,t,r},GrayLevel[0.9-Mod[t,6π]]],ColorFunctionScaling->True,PlotStyle->Thick,PlotPoints->50],
RegionPlot[r≤ra≤(r+a Sin[ n t]),{ra,0,2},{t,If[time<2π,0,1(time-2π)],time},PlotPoints->50,ColorFunction->Function[{x,y},GrayLevel[1-(x/2)]],ColorFunctionScaling->True,PlotStyle->Directive[Opacity[0.3]],BoundaryStyle->None]/.GraphicsComplex[a_,b__]:>GraphicsComplex[#1 {Cos[#2],Sin[#2]}&@@@a,b],
PlotRange->{{-1.3,1.3},{-1.3,1.3}},Axes->False,Ticks->None,ImageSize->{500,500}],
Panel[
Column[{
Row[{
Row[{Style["Time controls",Bold,12]},Frame->True],
Spacer[12],
Row[{
Style["max time = ",12],
Dynamic@If[inftime,"∞",Round[12π step,0.01]],
Dynamic@If[inftime,"", Row[{" (",step,"\[Cross]12π)"}]]
}]
}],
Row[{Style["time = ",12],Panel[Dynamic[PaddedForm[time,{6,2}]],ImageSize->60,Appearance->Frameless]}],
Row[{
Dynamic@If[inftime,
Item[Control[{{time,0.1,""},0.1,Infinity,ControlType->Animator,AnimationRunning->True,AnimationRate->anrate,AppearanceElements->{ "ProgressSlider","PlayPauseButton","FasterSlowerButtons","DirectionButton","ResetButton","StepForwardButton"},ImageSize->{255,20}}]],
Row[{Item[Control[{{time,0.1,""},0.1,12π step,ControlType->Slider,ImageSize->{140,20}}]],Item[Control[{{time,0.1,""},0.1,12π step,ControlType->Animator,AnimationRunning->False,AnimationRate->(1/(step 12 π))anrate,AppearanceElements->{"PlayPauseButton","FasterSlowerButtons","DirectionButton","ResetButton","StepForwardButton"},ImageSize->20}]]}]
]
}],
Item[Dynamic@Button[If[inftime,"reset","Start (∞ time)"],{inftime=!inftime,If[!inftime,{time=0.1}]},BaseStyle->{"GenericButton",12},Background->If[inftime,RGBColor[0.97,0.97,0.97],RGBColor[0.87,0.87,0.87]],ImageSize->{140,20},ContentPadding->False,ImageMargins->{2,2}],Alignment->Center]
}],
ImageSize->280],
Panel[
Column[{
Row[{Style["Wave controls",12,Bold]},Frame->True],
Row[{Style["n",12, Bold],Style[" (number of waves in the circle)"]}],
Row[{
Control[{{n,4.95, ""},1,10,0.05,Appearance->"Labeled"}]
}],
Row[{
Style["Closer standing wave:",Bold,12],Spacer[35],
Button["Set n to "Dynamic@Round[n],n=Round[n]]}],
Style["Wave amplitude"],
Row[
{Control[{{a,0.15,""},0,0.3,0.05,Appearance->"Labeled"}]}]
}]
,ImageSize->280],
Panel[Column[{
Row[
{Style["Speed/duration",12,Bold]},Frame->True],
Style["Animation rate"],
Row@
{Control[{{anrate,12,Style[""]},1,60,1,Appearance->"Labeled"}]},
Style["Finite time duration (\[Cross]12π)"],
Row@
{Control[{{step,5,Style[""]},1,100,1,Appearance->"Labeled"}]},
Row@
{Control[{{r,1},0,4,0.1,ControlType->None}]}
Row@
{Control[{{inftime,False },{False,True},ControlType->None}]}
}]
,ImageSize->280]
,ControlPlacement->Left,Alignment->Center]