summaryrefslogtreecommitdiff
path: root/graphics/asymptote/doc/fillcontour.asy
diff options
context:
space:
mode:
Diffstat (limited to 'graphics/asymptote/doc/fillcontour.asy')
-rw-r--r--graphics/asymptote/doc/fillcontour.asy41
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));