Default UDAV and mgllab icon.
MGL code:
setsize 200 200 zrange 0 2 define $s 0.8 new x 200 '$s*(x+1)/2*sin(2*pi*x)' new y 200 '$s*(x+1)/2*cos(2*pi*x)' new z 200 '$s*(2-(x+1))+0.1' new r 200 '0.02+0.07*(x+1)' subplot 1 1 0 '#' fsurf 'v*cos(2*pi*u)' 'v*sin(2*pi*u)-0.05' 'v/2' 'Yyyww' light on rotate 65 80 tube x y z+0.15 r define $r 0.13 fsurf '0+$r*cos(2*pi*u)*cos(2*pi*v)' '0.03+$r*cos(2*pi*u)*sin(2*pi*v)' '2*$s+0.25+$r*sin(2*pi*u)' 'r' define $r 0.155 fsurf '$r*cos(2*pi*u)*cos(2*pi*v)' '$s+$r*cos(2*pi*u)*sin(2*pi*v)' '0.25+$r*sin(2*pi*u)' 'b'
C++ code:
void smgl_icon(mglGraph *gr) { gr->SetSize(200,200); gr->SetRange('z',0,2); mglData x(200); gr->Fill(x,"0.8*(x+1)/2*sin(2*pi*x)"); mglData y(200); gr->Fill(y,"0.8*(x+1)/2*cos(2*pi*x)"); mglData z(200); gr->Fill(z,"0.8*(2-(x+1))+0.25"); mglData r(200); gr->Fill(r,"0.02+0.07*(x+1)"); gr->SubPlot(1,1,0,"#"); gr->FSurf("v*cos(2*pi*u)","v*sin(2*pi*u)-0.05","v/2","Yyyww"); gr->Light(true); gr->Rotate(65,80); gr->Tube(x,y,z,r); gr->FSurf("0.13*cos(2*pi*u)*cos(2*pi*v)","0.03+0.13*cos(2*pi*u)*sin(2*pi*v)","1.85+0.13*sin(2*pi*u)","r"); gr->FSurf("0.155*cos(2*pi*u)*cos(2*pi*v)","0.8+0.155*cos(2*pi*u)*sin(2*pi*v)","0.25+0.155*sin(2*pi*u)","b"); }