11.64 Sample ‘icon

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");
}
Sample icon