summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xMaster/bin/i386-cygwin/asy.exebin6040078 -> 6046734 bytes
-rwxr-xr-xMaster/bin/universal-darwin/asybin13656920 -> 14864964 bytes
-rwxr-xr-xMaster/bin/win32/asy.exebin1536 -> 6046734 bytes
-rwxr-xr-xMaster/bin/x86_64-darwin/asybin6975524 -> 14864964 bytes
-rwxr-xr-xMaster/texmf/asymptote/GUI/xasyVersion.py2
-rw-r--r--Master/texmf/asymptote/asy-keywords.el2
-rw-r--r--Master/texmf/asymptote/bezulate.asy48
-rw-r--r--Master/texmf/asymptote/graph3.asy81
-rw-r--r--Master/texmf/asymptote/three.asy23
-rw-r--r--Master/texmf/asymptote/three_surface.asy7
-rw-r--r--Master/texmf/asymptote/three_tube.asy15
-rw-r--r--Master/texmf/asymptote/version.asy2
-rw-r--r--Master/texmf/doc/asymptote/CAD.pdfbin67565 -> 67565 bytes
-rw-r--r--Master/texmf/doc/asymptote/asymptote.pdfbin1691053 -> 1690993 bytes
-rw-r--r--Master/texmf/doc/asymptote/examples/animations/torusanimation.asy57
-rw-r--r--Master/texmf/doc/asymptote/examples/xstitch.asy169
-rw-r--r--Master/texmf/doc/info/asy-faq.info2
-rw-r--r--Master/texmf/doc/info/asymptote.info105
-rw-r--r--Master/texmf/doc/man/man1/asy.19
-rw-r--r--Master/texmf/doc/man/man1/asy.man1.pdfbin11358 -> 11385 bytes
-rwxr-xr-xMaster/tlpkg/asymptote/asy.exebin6040078 -> 6046734 bytes
21 files changed, 349 insertions, 173 deletions
diff --git a/Master/bin/i386-cygwin/asy.exe b/Master/bin/i386-cygwin/asy.exe
index ec8e0b97035..a18f2404ea5 100755
--- a/Master/bin/i386-cygwin/asy.exe
+++ b/Master/bin/i386-cygwin/asy.exe
Binary files differ
diff --git a/Master/bin/universal-darwin/asy b/Master/bin/universal-darwin/asy
index b1e9910f03d..9e880e98d7d 100755
--- a/Master/bin/universal-darwin/asy
+++ b/Master/bin/universal-darwin/asy
Binary files differ
diff --git a/Master/bin/win32/asy.exe b/Master/bin/win32/asy.exe
index 5777d90a17a..a18f2404ea5 100755
--- a/Master/bin/win32/asy.exe
+++ b/Master/bin/win32/asy.exe
Binary files differ
diff --git a/Master/bin/x86_64-darwin/asy b/Master/bin/x86_64-darwin/asy
index 84cadde6604..9e880e98d7d 100755
--- a/Master/bin/x86_64-darwin/asy
+++ b/Master/bin/x86_64-darwin/asy
Binary files differ
diff --git a/Master/texmf/asymptote/GUI/xasyVersion.py b/Master/texmf/asymptote/GUI/xasyVersion.py
index 549ab3e3b3b..e10d8563c4c 100755
--- a/Master/texmf/asymptote/GUI/xasyVersion.py
+++ b/Master/texmf/asymptote/GUI/xasyVersion.py
@@ -1,2 +1,2 @@
#!/usr/bin/env python
-xasyVersion = "1.98"
+xasyVersion = "1.99"
diff --git a/Master/texmf/asymptote/asy-keywords.el b/Master/texmf/asymptote/asy-keywords.el
index 6ab99004d56..d5d4a97fb87 100644
--- a/Master/texmf/asymptote/asy-keywords.el
+++ b/Master/texmf/asymptote/asy-keywords.el
@@ -2,7 +2,7 @@
;; This file is automatically generated by asy-list.pl.
;; Changes will be overwritten.
;;
-(defvar asy-keywords-version "1.98")
+(defvar asy-keywords-version "1.99")
(defvar asy-keyword-name '(
and controls tension atleast curl if else while for do return break continue struct typedef new access import unravel from include quote static public private restricted this explicit true false null cycle newframe operator ))
diff --git a/Master/texmf/asymptote/bezulate.asy b/Master/texmf/asymptote/bezulate.asy
index f3817a47bcf..5b21d8c1605 100644
--- a/Master/texmf/asymptote/bezulate.asy
+++ b/Master/texmf/asymptote/bezulate.asy
@@ -20,34 +20,34 @@ int countIntersections(path[] p, pair start, pair end)
path[][] containmentTree(path[] paths)
{
path[][] result;
- for(int i=0; i < paths.length; ++i) {
- bool classified=false;
+ for(path g : paths) {
// check if current curve contains or is contained in a group of curves
- for(int j=0; !classified && j < result.length; ++j)
- {
- int test = inside(paths[i],result[j][0],zerowinding);
- if(test == 1) // current curve contains group's toplevel curve
- {
- // replace toplevel curve with current curve
- result[j].insert(0,paths[i]);
- classified = true;
- }
- else if(test == -1) // current curve contained in group's toplevel curve
- {
- result[j].push(paths[i]);
- classified = true;
- }
+ int j;
+ for(j=0; j < result.length; ++j) {
+ path[] resultj=result[j];
+ int test=inside(g,resultj[0],zerowinding);
+ if(test == 1) {
+ // current curve contains group's toplevel curve;
+ // replace toplevel curve with current curve
+ resultj.insert(0,g);
+ // check to see if any other groups are contained within this curve
+ for(int k=j+1; k < result.length;) {
+ if(inside(g,result[k][0]) == 1) {
+ resultj.append(result[k]);
+ result.delete(k);
+ } else ++k;
+ }
+ break;
+ } else if(test == -1) {
+ // current curve contained within group's toplevel curve
+ resultj.push(g);
+ break;
}
+ }
// create a new group if this curve does not belong to another group
- if(!classified)
- result.push(new path[] {paths[i]});
+ if(j == result.length)
+ result.push(new path[] {g});
}
-
- // sort group so that later paths in the array are contained in previous paths
- bool comparepaths(path i, path j) {return inside(i,j,zerowinding)==1;}
- for(int i=0; i < result.length; ++i)
- result[i] = sort(result[i],comparepaths);
-
return result;
}
diff --git a/Master/texmf/asymptote/graph3.asy b/Master/texmf/asymptote/graph3.asy
index ee83e8cb99b..9eee4209134 100644
--- a/Master/texmf/asymptote/graph3.asy
+++ b/Master/texmf/asymptote/graph3.asy
@@ -1610,60 +1610,55 @@ surface bispline(real[][] z, real[][] p, real[][] q, real[][] r,
surface s=surface(count);
s.index=new int[n][m];
- int k=-1;
+ int k=0;
for(int i=0; i < n; ++i) {
- bool[] condi=all ? null : cond[i];
+ int ip=i+1;
real xi=x[i];
+ real xp=x[ip];
+ real x1=interp(xi,xp,1/3);
+ real x2=interp(xi,xp,2/3);
+ real hx=x1-xi;
real[] zi=z[i];
- real[] zp=z[i+1];
+ real[] zp=z[ip];
real[] ri=r[i];
- real[] rp=r[i+1];
+ real[] rp=r[ip];
real[] pi=p[i];
- real[] pp=p[i+1];
+ real[] pp=p[ip];
real[] qi=q[i];
- real[] qp=q[i+1];
- real xp=x[i+1];
- real hx=(xp-xi)/3;
+ real[] qp=q[ip];
int[] indexi=s.index[i];
+ bool[] condi=all ? null : cond[i];
for(int j=0; j < m; ++j) {
- real yj=y[j];
- real yp=y[j+1];
if(all || condi[j]) {
- triple[][] P=array(4,array(4,O));
- real hy=(yp-yj)/3;
+ real yj=y[j];
+ int jp=j+1;
+ real yp=y[jp];
+ real y1=interp(yj,yp,1/3);
+ real y2=interp(yj,yp,2/3);
+ real hy=y1-yj;
real hxy=hx*hy;
- // x and y directions
- for(int k=0; k < 4; ++k) {
- P[0][k] += xi*X;
- P[k][0] += yj*Y;
- P[1][k] += (xp+2*xi)/3*X;
- P[k][1] += (yp+2*yj)/3*Y;
- P[2][k] += (2*xp+xi)/3*X;
- P[k][2] += (2*yp+yj)/3*Y;
- P[3][k] += xp*X;
- P[k][3] += yp*Y;
- }
- // z: value
- P[0][0] += zi[j]*Z;
- P[3][0] += zp[j]*Z;
- P[0][3] += zi[j+1]*Z;
- P[3][3] += zp[j+1]*Z;
- // z: first derivative
- P[1][0] += (P[0][0].z+hx*pi[j])*Z;
- P[1][3] += (P[0][3].z+hx*pi[j+1])*Z;
- P[2][0] += (P[3][0].z-hx*pp[j])*Z;
- P[2][3] += (P[3][3].z-hx*pp[j+1])*Z;
- P[0][1] += (P[0][0].z+hy*qi[j])*Z;
- P[3][1] += (P[3][0].z+hy*qp[j])*Z;
- P[0][2] += (P[0][3].z-hy*qi[j+1])*Z;
- P[3][2] += (P[3][3].z-hy*qp[j+1])*Z;
- // z: second derivative
- P[1][1] += (P[0][1].z+P[1][0].z-P[0][0].z+hxy*ri[j])*Z;
- P[1][2] += (P[0][2].z+P[1][3].z-P[0][3].z-hxy*ri[j+1])*Z;
- P[2][1] += (P[2][0].z+P[3][1].z-P[3][0].z-hxy*rp[j])*Z;
- P[2][2] += (P[2][3].z+P[3][2].z-P[3][3].z+hxy*rp[j+1])*Z;
- s.s[++k]=patch(P);
+ real zij=zi[j];
+ real zip=zi[jp];
+ real zpj=zp[j];
+ real zpp=zp[jp];
+ real pij=hx*pi[j];
+ real ppj=hx*pp[j];
+ real qip=hy*qi[jp];
+ real qpp=hy*qp[jp];
+ real zippip=zip+hx*pi[jp];
+ real zppmppp=zpp-hx*pp[jp];
+ real zijqij=zij+hy*qi[j];
+ real zpjqpj=zpj+hy*qp[j];
+
+ s.s[k]=patch(new triple[][] {
+ {(xi,yj,zij),(xi,y1,zijqij),(xi,y2,zip-qip),(xi,yp,zip)},
+ {(x1,yj,zij+pij),(x1,y1,zijqij+pij+hxy*ri[j]),
+ (x1,y2,zippip-qip-hxy*ri[jp]),(x1,yp,zippip)},
+ {(x2,yj,zpj-ppj),(x2,y1,zpjqpj-ppj-hxy*rp[j]),
+ (x2,y2,zppmppp-qpp+hxy*rp[jp]),(x2,yp,zppmppp)},
+ {(xp,yj,zpj),(xp,y1,zpjqpj),(xp,y2,zpp-qpp),(xp,yp,zpp)}},copy=false);
indexi[j]=k;
+ ++k;
}
}
}
diff --git a/Master/texmf/asymptote/three.asy b/Master/texmf/asymptote/three.asy
index 2de8b4a5cca..f528e2a9e52 100644
--- a/Master/texmf/asymptote/three.asy
+++ b/Master/texmf/asymptote/three.asy
@@ -2746,10 +2746,13 @@ struct scene
transform3 T=identity4;
picture pic2;
- void operator init(frame f, projection P=currentprojection) {
+ void operator init(frame f, real width, real height,
+ projection P=currentprojection) {
this.f=f;
this.t=identity4;
this.P=P;
+ this.width=width;
+ this.height=height;
}
void operator init(picture pic, real xsize=pic.xsize, real ysize=pic.ysize,
@@ -2897,8 +2900,8 @@ object embed(string label="", string text=label, string prefix=defaultfilename,
triple lambda=M-m;
S.viewportmargin=viewportmargin((lambda.x,lambda.y));
- S.width=lambda.x+2*S.viewportmargin.x;
- S.height=lambda.y+2*S.viewportmargin.y;
+ S.width=ceil(max(S.width,lambda.x)+2*S.viewportmargin.x);
+ S.height=ceil(max(S.height,lambda.y)+2*S.viewportmargin.y);
S.f=shift((-0.5(m.x+M.x),-0.5*(m.y+M.y),0))*S.f; // Eye will be at (0,0,0)
} else {
if(P.angle == 0) {
@@ -3018,7 +3021,8 @@ object embed(string label="", string text=label,
light light=currentlight, projection P=currentprojection)
{
if(is3D(format))
- return embed(label,text,prefix,scene(f,P),format,view,options,script,light);
+ return embed(label,text,prefix,scene(f,width,height,P),format,view,options,
+ script,light);
else {
object F;
F.f=f;
@@ -3072,11 +3076,13 @@ currentpicture.fitter=new frame(string prefix, picture pic, string format,
return f;
};
-frame embedder(string prefix, frame f, string format, bool view,
- string options, string script, light light, projection P)
+frame embedder(string prefix, frame f, string format, real width, real height,
+ bool view, string options, string script, light light,
+ projection P)
{
return embedder(new object(string prefix, string format) {
- return embed(prefix=prefix,f,format,view,options,script,light,P);
+ return embed(prefix=prefix,f,format,width,height,view,options,script,
+ light,P);
},prefix,format,view,light);
}
@@ -3225,7 +3231,8 @@ frame[] fit3(string prefix="", picture[] pictures, picture all,
for(int i=settings.reverse ? pictures.length-1 : 0;
i >= 0 && i < pictures.length && !settings.interrupt;
settings.reverse ? --i : ++i) {
- frame f=embedder(prefix,out[i],format,view,options,script,light,S.P);
+ frame f=embedder(prefix,out[i],format,S.width,S.height,view,options,
+ script,light,S.P);
if(!settings.loop) out[i]=f;
}
if(!settings.loop) break;
diff --git a/Master/texmf/asymptote/three_surface.asy b/Master/texmf/asymptote/three_surface.asy
index c4f05c7882f..6d0c54d2479 100644
--- a/Master/texmf/asymptote/three_surface.asy
+++ b/Master/texmf/asymptote/three_surface.asy
@@ -10,7 +10,7 @@ private real Fuzz=10.0*realEpsilon;
private real nineth=1/9;
struct patch {
- triple[][] P=new triple[4][4];
+ triple[][] P;
triple[] normals; // Optionally specify 4 normal vectors at the corners.
pen[] colors; // Optionally specify 4 corner colors.
bool straight; // Patch is based on a piecewise straight external path.
@@ -186,9 +186,9 @@ struct patch {
void operator init(triple[][] P, triple[] normals=new triple[],
pen[] colors=new pen[], bool straight=false,
- bool3 planar=default) {
+ bool3 planar=default, bool copy=true) {
init();
- this.P=copy(P);
+ this.P=copy ? copy(P) : P;
if(normals.length != 0)
this.normals=copy(normals);
if(colors.length != 0)
@@ -306,6 +306,7 @@ struct patch {
patch operator * (transform3 t, patch s)
{
patch S;
+ S.P=new triple[4][4];
for(int i=0; i < 4; ++i) {
triple[] si=s.P[i];
triple[] Si=S.P[i];
diff --git a/Master/texmf/asymptote/three_tube.asy b/Master/texmf/asymptote/three_tube.asy
index 281eb0716da..aa5688f081e 100644
--- a/Master/texmf/asymptote/three_tube.asy
+++ b/Master/texmf/asymptote/three_tube.asy
@@ -92,8 +92,9 @@ private real[][][] bispline0(real[][] z, real[][] p, real[][] q, real[][] r,
int k=0;
for(int i=0; i < n; ++i) {
int ip=i+1;
- bool[] condi=all ? null : cond[i];
real xi=x[i];
+ real xp=x[ip];
+ real hx=(xp-xi)/3;
real[] zi=z[i];
real[] zp=z[ip];
real[] ri=r[i];
@@ -102,13 +103,12 @@ private real[][][] bispline0(real[][] z, real[][] p, real[][] q, real[][] r,
real[] pp=p[ip];
real[] qi=q[i];
real[] qp=q[ip];
- real xp=x[ip];
- real hx=(xp-xi)/3;
+ bool[] condi=all ? null : cond[i];
for(int j=0; j < m; ++j) {
- real yj=y[j];
- int jp=j+1;
- real yp=y[jp];
if(all || condi[j]) {
+ real yj=y[j];
+ int jp=j+1;
+ real yp=y[jp];
real hy=(yp-yj)/3;
real hxy=hx*hy;
real zij=zi[j];
@@ -164,8 +164,7 @@ real[][][] bispline(real[][] f, real[] x, real[] y,
real[][] p=transpose(tp);
for(int i=0; i < n; ++i)
r[i]=clamped(d1[i],d2[i])(y,p[i]);
- real[][][] s=bispline0(f,p,q,r,x,y,cond);
- return s;
+ return bispline0(f,p,q,r,x,y,cond);
}
bool uperiodic(real[][] a) {
diff --git a/Master/texmf/asymptote/version.asy b/Master/texmf/asymptote/version.asy
index 9b1fe1c2bcc..62fb50dc070 100644
--- a/Master/texmf/asymptote/version.asy
+++ b/Master/texmf/asymptote/version.asy
@@ -1 +1 @@
-string VERSION="1.98";
+string VERSION="1.99";
diff --git a/Master/texmf/doc/asymptote/CAD.pdf b/Master/texmf/doc/asymptote/CAD.pdf
index e5cfb778ea7..1d787c85f52 100644
--- a/Master/texmf/doc/asymptote/CAD.pdf
+++ b/Master/texmf/doc/asymptote/CAD.pdf
Binary files differ
diff --git a/Master/texmf/doc/asymptote/asymptote.pdf b/Master/texmf/doc/asymptote/asymptote.pdf
index e0b2b521e80..3056f8acbf0 100644
--- a/Master/texmf/doc/asymptote/asymptote.pdf
+++ b/Master/texmf/doc/asymptote/asymptote.pdf
Binary files differ
diff --git a/Master/texmf/doc/asymptote/examples/animations/torusanimation.asy b/Master/texmf/doc/asymptote/examples/animations/torusanimation.asy
index 8370a0c25af..74a5df43278 100644
--- a/Master/texmf/doc/asymptote/examples/animations/torusanimation.asy
+++ b/Master/texmf/doc/asymptote/examples/animations/torusanimation.asy
@@ -1,44 +1,43 @@
-import graph3;
-import animation;
+import graph3;
+import animation;
import solids;
-settings.tex="pdflatex";
-settings.prc=false;
-settings.render=4;
-
-currentprojection=orthographic((0,5,2));
-currentlight=(0,5,5);
-unitsize(1cm);
-
-real R=3;
-real a=1;
-int n=8;
+currentprojection=perspective(50,40,20);
+
+currentlight=(0,5,5);
+
+real R=3;
+real a=1;
+int n=8;
-path3[] p=new path3[n];
-animation A;
+path3[] p=new path3[n];
+animation A;
-for(int i=0; i < n; ++i) {
- triple g(real s) {
- return ((R-a*cos(2*pi*s))*cos(2*pi/(1+i+s)),
- (R-a*cos(2*pi*s))*sin(2*pi/(1+i+s)),
- -a*sin(2*pi*s));
+for(int i=0; i < n; ++i) {
+ triple g(real s) {
+ real twopi=2*pi;
+ real u=twopi*s;
+ real v=twopi/(1+i+s);
+ real cosu=cos(u);
+ return((R-a*cosu)*cos(v),(R-a*cosu)*sin(v),-a*sin(u));
}
- p[i]=graph(g,0,1,operator ..);
+ p[i]=graph(g,0,1,operator ..);
}
triple f(pair t) {
- return ((R+a*cos(t.y))*cos(t.x),(R+a*cos(t.y))*sin(t.x),a*sin(t.y));
+ real costy=cos(t.y);
+ return((R+a*costy)*cos(t.x),(R+a*costy)*sin(t.x),a*sin(t.y));
}
surface s=surface(f,(0,0),(2pi,2pi),8,8,Spline);
-for(int i=0; i < n; ++i){
- picture fig;
- size3(fig,400);
- draw(fig,s,yellow);
- for(int j=0;j <= i; ++j)
- draw(fig,p[j],blue+linewidth(4));
- A.add(fig);
+for(int i=0; i < n; ++i){
+ picture fig;
+ size(fig,20cm);
+ draw(fig,s,yellow);
+ for(int j=0; j <= i; ++j)
+ draw(fig,p[j],blue+linewidth(4));
+ A.add(fig);
}
A.movie(BBox(10,Fill(rgb(0.98,0.98,0.9))),delay=100);
diff --git a/Master/texmf/doc/asymptote/examples/xstitch.asy b/Master/texmf/doc/asymptote/examples/xstitch.asy
new file mode 100644
index 00000000000..6e692643ae1
--- /dev/null
+++ b/Master/texmf/doc/asymptote/examples/xstitch.asy
@@ -0,0 +1,169 @@
+pair c=(0,0.8);
+
+int iters(pair z, int max=160) {
+ int n=0;
+ while(abs(z) < 2 && n < max) {
+ z=z*z+c;
+ ++n;
+ }
+ return n;
+}
+
+int[] cutoffs={12,15,20,30,40,60,200};
+int key(pair z) {
+ int i=iters(z);
+ int j=0;
+ while(cutoffs[j] < i)
+ ++j;
+ return j;
+}
+
+
+int width=210;
+int height=190;
+
+real zoom=2.5/200;
+
+int[][] values=new int[width][height];
+int[] histogram; for(int v=0; v < 10; ++v) histogram.push(0);
+for(int i=0; i < width; ++i) {
+ real x=zoom*(i-width/2);
+ for(int j=0; j < height; ++j) {
+ real y=zoom*(j-height/2);
+ int v=key((x,y));
+ values[i][j]=v;
+ ++histogram[v];
+ }
+}
+
+// Print out a histogram.
+write("histogram: ");
+write(histogram);
+
+
+pen linepen(int i, int max) {
+ real w=i == -1 || i == max+1 ? 2.0 :
+ i % 10 == 0 || i == max ? 1.0 :
+ i % 5 == 0 ? 0.8 :
+ 0.25;
+ return linewidth(w);
+}
+
+pen xpen(int i) {
+ return linepen(i,width)+(i == width/2 ? red :
+ i == 75 || i == width-75 ? dashed :
+ black);
+}
+
+pen ypen(int i) {
+ return linepen(i,height)+(i == height/2 ? red :
+ i == 75 || i == height-75 ? dashed :
+ black);
+}
+
+// The length of the side of a cross stitch cell.
+real cell=2.3mm;
+transform t=scale(cell);
+
+
+picture tick;
+draw(tick,(0,0)--(1,1));
+
+picture ell;
+draw(ell,(0,1)--(0,0)--(0.7,0));
+
+picture cross;
+draw(cross,(0,0)--(1,1));
+draw(cross,(1,0)--(0,1));
+
+picture star;
+draw(star,(0.15,0.15)--(0.85,0.85));
+draw(star,(0.85,0.15)--(0.15,0.85));
+draw(star,(.5,0)--(.5,1));
+draw(star,(0,.5)--(1,.5));
+
+picture triangle;
+draw(triangle,(0,0)--(2,0)--(1,1.5)--cycle);
+
+picture circle;
+fill(circle,shift(1,1)*unitcircle);
+
+picture ocircle;
+draw(ocircle,shift(1,1)*unitcircle);
+
+picture spare;
+fill(spare,(0,0)--(1,1)--(0,1)--cycle);
+
+picture[] pics={tick,ell,cross,star,triangle,circle};
+pen[] colors={black,0.2purple,0.4purple,0.6purple,0.8purple,purple,
+ 0.8purple+0.2white};
+
+frame[] icons;
+icons.push(newframe);
+for(picture pic : pics) {
+ // Scaling factor, so that we don't need weird line widths.
+ real X=1.0;
+ frame f=pic.fit(.8X*cell,.8X*cell,Aspect);
+ f=scale(1/X)*f;
+
+ // Center the icon in the cell.
+ f=shift((cell/2,cell/2)-0.5(max(f)-min(f)))*f;
+
+ icons.push(f);
+}
+
+void drawSection(int xmin, int xmax, int ymin, int ymax) {
+ static int shipoutNumber=0;
+
+ // Draw directly to a frame for speed reasons.
+ frame pic;
+
+ for(int i=xmin; i <= xmax; ++i) {
+ draw(pic,t*((i,ymin)--(i,ymax)),xpen(i));
+ if(i%10 == 0) {
+ label(pic,string(i),t*(i,ymin),align=S);
+ label(pic,string(i),t*(i,ymax),align=N);
+ }
+ }
+ for(int j=ymin; j <= ymax; ++j) {
+ draw(pic,t*((xmin,j)--(xmax,j)),ypen(j));
+ if(j%10 == 0) {
+ label(pic,string(j),t*(xmin,j),align=W);
+ label(pic,string(j),t*(xmax,j),align=E);
+ }
+ }
+
+ if(xmin < 0)
+ xmin=0;
+ if(xmax >= width)
+ xmax=width-1;
+ if(ymin < 0)
+ ymin=0;
+ if(ymax >= height)
+ ymax=height-1;
+
+ int stitchCount=0;
+ path box=scale(cell) *((0,0)--(1,0)--(1,1)--(0,1)--cycle);
+ for(int i=xmin; i < xmax; ++i)
+ for(int j=ymin; j < ymax; ++j) {
+ int v=values[i][j];
+ add(pic,icons[v],(i*cell,j*cell));
+ //fill(pic,shift(i*cell,j*cell)*box,colors[v]);
+ if(v != 0)
+ ++stitchCount;
+ }
+
+ write("stitch count: ",stitchCount);
+
+ shipout("xstitch"+string(shipoutNumber),pic);
+ ++shipoutNumber;
+}
+
+drawSection(-1,width+1,-1,height+1);
+
+
+//drawSection(-1,80,height-80,height+1);
+//drawSection(70,150,height-80,height+1);
+drawSection(quotient(width,2)-40,quotient(width,2)+40,quotient(height,2)-40,quotient(height,2)+40);
+//drawSection(width-150,width-70,-1,80);
+//drawSection(width-80,width+1,-1,80);
diff --git a/Master/texmf/doc/info/asy-faq.info b/Master/texmf/doc/info/asy-faq.info
index 1664d59845e..61c827ac745 100644
--- a/Master/texmf/doc/info/asy-faq.info
+++ b/Master/texmf/doc/info/asy-faq.info
@@ -9,7 +9,7 @@ END-INFO-DIR-ENTRY
File: $prefix.info, Node: Top, Next: Question 1.1, Up: (dir)
ASYMPTOTE FREQUENTLY ASKED QUESTIONS
- 14 Jun 2010
+ 18 Jun 2010
This is the list of Frequently Asked Questions about Asymptote (asy).
diff --git a/Master/texmf/doc/info/asymptote.info b/Master/texmf/doc/info/asymptote.info
index 481694a9d08..d672a648432 100644
--- a/Master/texmf/doc/info/asymptote.info
+++ b/Master/texmf/doc/info/asymptote.info
@@ -1,7 +1,7 @@
This is asymptote.info, produced by makeinfo version 4.13 from
../asymptote.texi.
-This file documents `Asymptote', version 1.98.
+This file documents `Asymptote', version 1.99.
`http://asymptote.sourceforge.net'
@@ -23,7 +23,7 @@ File: asymptote.info, Node: Top, Next: Description, Up: (dir)
Asymptote
*********
-This file documents `Asymptote', version 1.98.
+This file documents `Asymptote', version 1.99.
`http://asymptote.sourceforge.net'
@@ -7846,7 +7846,8 @@ Options (negate by replacing - with -no):
-embed Embed rendered preview image [true]
-exitonEOF Exit interactive mode on EOF [true]
-fitscreen Fit rendered image to screen [true]
--framerate frames/sec Animation speed [30]
+-framedelay ms Additional frame delay [0]
+-framerate frames/s Animation speed [30]
-globalwrite Allow write to other directory [false]
-gray Convert all colors to grayscale [false]
-h,-help Show summary of options; command-line only
@@ -7886,7 +7887,7 @@ Options (negate by replacing - with -no):
-rgb Convert cmyk colors to rgb [false]
-safe Disable system call [true]
-scroll n Scroll standard output n lines at a time [0]
--spinstep deg/sec Spin speed [60]
+-spinstep deg/s Spin speed [60]
-svgemulation Emulate unimplemented SVG shading [false]
-tabcompletion Interactive prompt auto-completion [true]
-tex engine latex|pdflatex|xelatex|tex|pdftex|context|none [latex]
@@ -8379,9 +8380,9 @@ Index
* ---: Bezier curves. (line 83)
* -=: Self & prefix operators.
(line 6)
-* -c: Options. (line 172)
-* -l: Options. (line 191)
-* -u: Options. (line 182)
+* -c: Options. (line 173)
+* -l: Options. (line 192)
+* -u: Options. (line 183)
* -V <1>: Tutorial. (line 19)
* -V: Configuring. (line 6)
* ..: Tutorial. (line 125)
@@ -8444,7 +8445,7 @@ Index
(line 48)
* alias <1>: Arrays. (line 182)
* alias: Structures. (line 52)
-* align: Options. (line 166)
+* align: Options. (line 167)
* Align: label. (line 12)
* all: Arrays. (line 330)
* Allow: Pens. (line 327)
@@ -8457,7 +8458,7 @@ Index
* animate: Configuring. (line 67)
* animation: animation. (line 6)
* annotate: annotate. (line 6)
-* antialias <1>: Options. (line 141)
+* antialias <1>: Options. (line 142)
* antialias: three. (line 210)
* antialiasing: Compiling from UNIX source.
(line 16)
@@ -8503,7 +8504,7 @@ Index
* asy.vim: Editing modes. (line 33)
* asymptote.sty: LaTeX usage. (line 6)
* asymptote.xml: Editing modes. (line 49)
-* ASYMPTOTE_CONFIG: Options. (line 113)
+* ASYMPTOTE_CONFIG: Options. (line 114)
* aTan: Mathematical functions.
(line 20)
* atan: Mathematical functions.
@@ -8516,7 +8517,7 @@ Index
* attach <1>: graph. (line 415)
* attach: LaTeX usage. (line 31)
* autoadjust: three. (line 354)
-* autoimport: Options. (line 109)
+* autoimport: Options. (line 110)
* automatic scaling: graph. (line 682)
* axialshade: fill. (line 43)
* axis <1>: graph3. (line 66)
@@ -8652,13 +8653,13 @@ Index
* conditional <1>: Arithmetic & logical.
(line 73)
* conditional: Programming. (line 8)
-* config: Options. (line 113)
-* configuration file <1>: Options. (line 113)
+* config: Options. (line 114)
+* configuration file <1>: Options. (line 114)
* configuration file: Configuring. (line 23)
* configuring: Configuring. (line 6)
* conj: Data types. (line 57)
* constructors: Structures. (line 91)
-* context: Options. (line 141)
+* context: Options. (line 142)
* continue <1>: Debugger. (line 31)
* continue: Programming. (line 29)
* contour: contour. (line 9)
@@ -8666,11 +8667,11 @@ Index
* controls <1>: three. (line 6)
* controls: Bezier curves. (line 45)
* controlSpecifier: Paths and guides. (line 379)
-* convert <1>: Options. (line 141)
+* convert <1>: Options. (line 142)
* convert <2>: animation. (line 6)
* convert <3>: Files. (line 150)
* convert: Configuring. (line 67)
-* convertOptions: Options. (line 128)
+* convertOptions: Options. (line 129)
* Coons shading: fill. (line 74)
* copy: Arrays. (line 169)
* Cos: Mathematical functions.
@@ -8761,7 +8762,7 @@ Index
* drawline: math. (line 9)
* drawtree: drawtree. (line 9)
* dvips: Configuring. (line 67)
-* dvipsOptions: Options. (line 128)
+* dvipsOptions: Options. (line 129)
* dvisvgm: Configuring. (line 67)
* E <1>: Mathematical functions.
(line 48)
@@ -8799,7 +8800,7 @@ Index
* eof: Files. (line 88)
* eol <1>: Arrays. (line 345)
* eol: Files. (line 88)
-* EPS <1>: Options. (line 141)
+* EPS <1>: Options. (line 142)
* EPS: label. (line 80)
* erase <1>: Frames and pictures. (line 7)
* erase <2>: Data types. (line 239)
@@ -8874,7 +8875,7 @@ Index
* fontcommand: Pens. (line 207)
* fontsize: Pens. (line 178)
* for: Programming. (line 8)
-* format <1>: Options. (line 141)
+* format <1>: Options. (line 142)
* format: Data types. (line 267)
* forum: Help. (line 6)
* frame: Frames and pictures. (line 7)
@@ -8899,7 +8900,7 @@ Index
* getreal: Files. (line 113)
* getstring: Files. (line 113)
* gettriple: Files. (line 113)
-* glOptions <1>: Options. (line 128)
+* glOptions <1>: Options. (line 129)
* glOptions: three. (line 210)
* GNU Scientific Library: Mathematical functions.
(line 48)
@@ -8921,7 +8922,7 @@ Index
(line 48)
* GSL: Compiling from UNIX source.
(line 58)
-* gsOptions: Options. (line 128)
+* gsOptions: Options. (line 129)
* GUI: GUI. (line 6)
* GUI installation: GUI installation. (line 6)
* GUI usage: GUI usage. (line 6)
@@ -8947,7 +8948,7 @@ Index
* HookHead: draw. (line 26)
* HookHead3: three. (line 543)
* Horizontal: flowchart. (line 81)
-* hyperrefOptions: Options. (line 128)
+* hyperrefOptions: Options. (line 129)
* hypot: Mathematical functions.
(line 6)
* I: Mathematical functions.
@@ -8963,7 +8964,7 @@ Index
* if: Programming. (line 8)
* IgnoreAspect: Frames and pictures. (line 58)
* image: palette. (line 34)
-* ImageMagick <1>: Options. (line 141)
+* ImageMagick <1>: Options. (line 142)
* ImageMagick <2>: animation. (line 6)
* ImageMagick: Configuring. (line 67)
* images: palette. (line 6)
@@ -9037,7 +9038,7 @@ Index
* Landscape: Frames and pictures. (line 95)
* lastcut: Paths and guides. (line 251)
* lasy-mode: Editing modes. (line 6)
-* latex: Options. (line 141)
+* latex: Options. (line 142)
* LaTeX fonts: Pens. (line 192)
* LaTeX usage: LaTeX usage. (line 6)
* latin1: latin1. (line 6)
@@ -9168,7 +9169,7 @@ Index
* none: Files. (line 58)
* None: draw. (line 19)
* normal: three. (line 488)
-* nosafe: Options. (line 161)
+* nosafe: Options. (line 162)
* NOT: Arithmetic & logical.
(line 80)
* NoTicks: graph. (line 161)
@@ -9184,7 +9185,7 @@ Index
* obliqueY: three. (line 334)
* obliqueZ: three. (line 319)
* ode: ode. (line 9)
-* offset <1>: Options. (line 166)
+* offset <1>: Options. (line 167)
* offset: Pens. (line 115)
* OmitTick: graph. (line 239)
* OmitTickInterval: graph. (line 239)
@@ -9210,7 +9211,7 @@ Index
* orthographic: three. (line 338)
* outformat: three. (line 127)
* outprefix: Frames and pictures. (line 83)
-* output <1>: Options. (line 141)
+* output <1>: Options. (line 142)
* output: Files. (line 35)
* OutTicks: graph3. (line 34)
* overloading functions: Functions. (line 44)
@@ -9238,10 +9239,10 @@ Index
* path[]: Tutorial. (line 132)
* patterns <1>: patterns. (line 6)
* patterns: Pens. (line 238)
-* PDF: Options. (line 141)
-* pdflatex: Options. (line 141)
+* PDF: Options. (line 142)
+* pdflatex: Options. (line 142)
* pdfviewer: Configuring. (line 6)
-* pdfviewerOptions: Options. (line 128)
+* pdfviewerOptions: Options. (line 129)
* pen: Pens. (line 6)
* PenMargin: draw. (line 42)
* PenMargin2: three. (line 559)
@@ -9288,7 +9289,7 @@ Index
(line 6)
* psview: Microsoft Windows. (line 16)
* psviewer: Configuring. (line 6)
-* psviewerOptions: Options. (line 128)
+* psviewerOptions: Options. (line 129)
* pt: Tutorial. (line 61)
* public: Structures. (line 6)
* push: Arrays. (line 39)
@@ -9332,7 +9333,7 @@ Index
* remainder: Mathematical functions.
(line 6)
* rename: Files. (line 147)
-* render <1>: Options. (line 141)
+* render <1>: Options. (line 142)
* render: three. (line 47)
* replace: Data types. (line 252)
* resetdefaultpen: Pens. (line 353)
@@ -9367,7 +9368,7 @@ Index
* runtime imports: Import. (line 98)
* Russian: unicode. (line 7)
* S: Tutorial. (line 104)
-* safe: Options. (line 161)
+* safe: Options. (line 162)
* save: Frames and pictures. (line 262)
* saveline: Files. (line 130)
* scale: three. (line 452)
@@ -9394,7 +9395,7 @@ Index
* self operators: Self & prefix operators.
(line 6)
* sequence: Arrays. (line 127)
-* settings <1>: Options. (line 113)
+* settings <1>: Options. (line 114)
* settings: Configuring. (line 23)
* sgn: Mathematical functions.
(line 26)
@@ -9424,7 +9425,7 @@ Index
* SixViews: three. (line 396)
* SixViewsFR: three. (line 396)
* SixViewsUS: three. (line 396)
-* size <1>: Options. (line 141)
+* size <1>: Options. (line 142)
* size <2>: three. (line 502)
* size <3>: Frames and pictures. (line 43)
* size: Paths and guides. (line 70)
@@ -9479,9 +9480,9 @@ Index
* SuppressQuiet: Pens. (line 335)
* surface <1>: graph3. (line 100)
* surface: three. (line 47)
-* SVG: Options. (line 141)
+* SVG: Options. (line 142)
* SVN: Subversion. (line 6)
-* system <1>: Options. (line 161)
+* system <1>: Options. (line 162)
* system: Files. (line 155)
* syzygy: syzygy. (line 6)
* tab: Files. (line 58)
@@ -9499,7 +9500,7 @@ Index
* tensionSpecifier: Paths and guides. (line 385)
* tensor product shading: fill. (line 74)
* tensorshade: fill. (line 74)
-* tex <1>: Options. (line 141)
+* tex <1>: Options. (line 142)
* tex: Frames and pictures. (line 278)
* TeX fonts: Pens. (line 201)
* TeX string: Data types. (line 179)
@@ -9615,7 +9616,7 @@ Index
* X: three. (line 274)
* xasy: GUI. (line 6)
* xaxis3: graph3. (line 7)
-* xelatex <1>: Options. (line 141)
+* xelatex <1>: Options. (line 142)
* xelatex: embed. (line 10)
* xequals: graph. (line 294)
* XEquals: graph. (line 280)
@@ -9805,18 +9806,18 @@ Node: contour3300228
Node: slopefield300535
Node: ode301972
Node: Options302232
-Ref: configuration file308028
-Ref: settings308028
-Ref: convert309229
-Node: Interactive mode312196
-Ref: history314349
-Node: GUI315654
-Node: GUI installation316157
-Node: GUI usage317287
-Node: PostScript to Asymptote318190
-Node: Help318946
-Node: Debugger320682
-Node: Credits322467
-Node: Index323399
+Ref: configuration file308077
+Ref: settings308077
+Ref: convert309278
+Node: Interactive mode312245
+Ref: history314398
+Node: GUI315703
+Node: GUI installation316206
+Node: GUI usage317336
+Node: PostScript to Asymptote318239
+Node: Help318995
+Node: Debugger320731
+Node: Credits322516
+Node: Index323448

End Tag Table
diff --git a/Master/texmf/doc/man/man1/asy.1 b/Master/texmf/doc/man/man1/asy.1
index e5ff5977db3..d9e680befc7 100644
--- a/Master/texmf/doc/man/man1/asy.1
+++ b/Master/texmf/doc/man/man1/asy.1
@@ -95,7 +95,12 @@ Exit interactive mode on EOF [true].
.TP
.B \-fitscreen
Fit rendered image to screen [true].
--framerate frames/sec Animation speed [30]
+.TP
+.B \-framedelay ms
+Additional frame delay [0].
+.TP
+.B \-framerate frames/s
+Animation speed [30].
.TP
.B \-globalwrite
Allow write to other directory [false].
@@ -214,7 +219,7 @@ Disable system call [true].
.B \-scroll n
Scroll standard output n lines at a time [0].
.TP
-.B \-spinstep deg/sec
+.B \-spinstep deg/s
Spin speed [60].
.TP
.B \-svgemulation
diff --git a/Master/texmf/doc/man/man1/asy.man1.pdf b/Master/texmf/doc/man/man1/asy.man1.pdf
index a86ed83a3ab..a074b219c54 100644
--- a/Master/texmf/doc/man/man1/asy.man1.pdf
+++ b/Master/texmf/doc/man/man1/asy.man1.pdf
Binary files differ
diff --git a/Master/tlpkg/asymptote/asy.exe b/Master/tlpkg/asymptote/asy.exe
index ec8e0b97035..a18f2404ea5 100755
--- a/Master/tlpkg/asymptote/asy.exe
+++ b/Master/tlpkg/asymptote/asy.exe
Binary files differ