diff options
Diffstat (limited to 'graphics/asymptote/doc/fillcontour.asy')
-rw-r--r-- | graphics/asymptote/doc/fillcontour.asy | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/graphics/asymptote/doc/fillcontour.asy b/graphics/asymptote/doc/fillcontour.asy new file mode 100644 index 0000000000..b92b65ef46 --- /dev/null +++ b/graphics/asymptote/doc/fillcontour.asy @@ -0,0 +1,41 @@ +import graph; +import palette; +import contour; + +size(10cm,10cm); + +pair a=(0,0); +pair b=(2pi,2pi); + +real f(real x, real y) {return cos(x)*sin(y);} + +int N=200; +int Divs=10; +int divs=1; +int n=Divs*divs; + +defaultpen(1bp); +pen Tickpen=black; +pen tickpen=gray+0.5*linewidth(currentpen); +pen[] Palette=quantize(BWRainbow(),n); + +bounds range=image(f,Automatic,a,b,3N,Palette,n); + +real[] Cvals=uniform(range.min,range.max,Divs); +draw(contour(f,a,b,Cvals,N,operator --),Tickpen+squarecap+beveljoin); + +// Major contours +real[] Cvals=uniform(range.min,range.max,Divs); +draw(contour(f,a,b,Cvals,N,operator --),Tickpen+squarecap+beveljoin); + +// Minor contours (if divs > 1) +real[] cvals; +for(int i=0; i < Cvals.length-1; ++i) + cvals.append(uniform(Cvals[i],Cvals[i+1],divs)[1:divs]); +draw(contour(f,a,b,cvals,N,operator --),tickpen); + +xaxis("$x$",BottomTop,LeftTicks,above=true); +yaxis("$y$",LeftRight,RightTicks,above=true); + +palette("$f(x,y)$",range,point(SE)+(0.5,0),point(NE)+(1,0),Right,Palette, + PaletteTicks("$%+#0.1f$",N=Divs,n=divs,Tickpen,tickpen)); |