\(as = u; 
bs = \(-2\)\ u\ v\  - \ 4\ v^3; 
cs = \ 3\ v^4\  + \ u\ v^2; 
    as = u; \)

swallowtail = 
      ParametricPlot3D[{as, bs, cs}, {v, -1, 1}, {u, -3, 3}]

circle  =  
      ParametricPlot3D[{2 Cos[t],  0,  2 Sin[t]}, {t, 0,  2  Pi}];

Show[circle, swallowtail]

\(For[t = 0; n = 0, t <= 2\ Pi, t += Pi/22; n += 1, 
	b = 0; 
      a = 2\ Cos[t]; c = 2\ Sin[t]; 
	
      p = Graphics3D[{PointSize[ .02], RGBColor[1, 0, 0], Point[{a, b, c}]}]; 
      
	pic[n] = 
        GraphicsArray[{
            Show[{p, circle, swallowtail}, AspectRatio -> Automatic, 
              Boxed -> False, ViewPoint -> {\(-4\), \(-4\), 0}], 
            Plot[x^4\  + \ a\ x^2\  + \ b\ x\  + c, {x, \(-2\), 2}, 
              PlotRange -> {{\(-6\), 6}, {\(-6\), 6}}, Ticks -> None, 
              AxesLabel -> {"x", "p(x)"}]}]]\)

Do[Show[pic[n]], {n, 1, 22}]

n = 1; 
    Do[Display[StringJoin["pic1.", ToString[10 + n]], pic[n], "GIF", 
        ImageSize -> {600, 371}], {n, 1, 22}];