// Adapted from the documentation of Asymptote.
import graph3;
import contour;
texpreamble("\usepackage{icomma}");
size3(12cm,12cm,8cm,IgnoreAspect);
real sinc(pair z) {
real r=2pi*abs(z);
return r != 0 ? sin(r)/r : 1;
}
limits((-2,-2,-0.2),(2,2,1.2));
currentprojection=orthographic(1,-2,0.5);
xaxis3(rotate(90,X)*"$x$",
Bounds(Min,Min),
OutTicks(rotate(90,X)*Label, endlabel=false));
yaxis3("$y$", Bounds(Max,Min), InTicks(Label));
zaxis3("$z$", Bounds(Min,Min), OutTicks());
draw(lift(sinc,contour(sinc,(-2,-2),(2,2),new real[] {0})), bp+0.8*red);
draw(surface(sinc,(-2,-2),(2,2),nx=100, Spline), lightgray);
draw(scale3(2*sqrt(2))*unitdisk, paleyellow+opacity(0.25), nolight);
draw(scale3(2*sqrt(2))*unitcircle3, 0.8*red);