Manipulate[ If[r==1,S=ParametricPlot3D[{(2+Cos[v])Cos[u]*P[[1]],(2+Cos[v])Sin[u]*P[[2]],Sin[v]},{v,0,2Pi},{u,0,2Pi},Boxed->False,Axes->False]]; If[r==2,S=ParametricPlot3D[{(1+0.5*v*Cos[0.5u])Cos[u]*P[[1]],(1+0.5*v*Cos[0.5u])Sin[u]*P[[2]],0.5*v*Sin[0.5u]},{v,-1,1},{u,0,2Pi},Boxed->False,Axes->False]]; If[r==3,S=ParametricPlot3D[{u*Cos[v]*P[[1]],u*Sin[v]*P[[2]],2v},{v,-2Pi,2Pi},{u,-2Pi,2Pi},Boxed->False,Axes->False]]; If[r==4,S=ParametricPlot3D[{Cos[u]^3*Cos[v]^3*P[[1]],Sin[u]^3*Cos[v]^3*P[[2]],Sin[v]^3},{v,0,4Pi},{u,0,4Pi},Boxed->False,Axes->False]]; S,{{r,1,"surface:"},{1->"Torus",2->"MobiusStrip",3->"Helicoid",4->"Crystal(Diamond)"}},Control[{{P,{1,1}},{0,0},{4,4},ImageSize->{350,200}}]]