import solids; picture pic; unitsize(pic,1.5cm); currentlight=light(gray(0.25),specularfactor=3,viewport=false, (0.5,-0.5,-0.25),(0.5,0.5,0.25),(0.5,0.5,1),(-0.5,-0.5,-1)); settings.outformat="pdf"; settings.render=4; viewportmargin=(.5cm,.5cm); triple f(pair p){ real x=1+cos(p.x); real y=sin(p.x); real z=p.y*sqrt(4.000001-x^2-y^2); return (x,y,z); } triple g(pair p, real k){ real x=1+cos(p.x); real y=p.y*sin(p.x); real z=k*sqrt(4.000001-x^2-y^2); return (x,y,z); } triple g1(pair p){ return g(p,1); } triple gm1(pair p){ return g(p,-1); } int n=100; pen stylo = paleblue, stylo2 = palered; draw(pic,surface(f,(0,-1),(2pi,1),n),stylo); draw(pic,surface(g1,(0,-1),(2pi,1),n),stylo2); draw(pic,surface(gm1,(0,-1),(2pi,1),n),stylo2); addViews(pic,ThreeViewsFR);