diff options
author | Karl Berry <karl@freefriends.org> | 2013-05-18 22:47:34 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2013-05-18 22:47:34 +0000 |
commit | 8da523330e61ea8e7b930c09cecaddec0b3a72a0 (patch) | |
tree | 07f156e733c33e3f416fa3de086bec250c693a25 /Master/texmf-dist/doc | |
parent | baff4255d94a765ab41d84c89ea23e44151770ee (diff) |
asymptote 2.22
git-svn-id: svn://tug.org/texlive/trunk@30566 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/doc')
-rw-r--r-- | Master/texmf-dist/doc/asymptote/CAD.pdf | bin | 68115 -> 68115 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/asymptote/TeXShopAndAsymptote.pdf | bin | 31517 -> 31847 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/asymptote/asy-latex.pdf | bin | 194493 -> 194493 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/asymptote/asyRefCard.pdf | bin | 53907 -> 53907 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/asymptote/asymptote.pdf | bin | 1235449 -> 1234580 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/asymptote/examples/shade.asy | 1 | ||||
-rw-r--r-- | Master/texmf-dist/doc/asymptote/examples/tvgen.asy | 779 | ||||
-rw-r--r-- | Master/texmf-dist/doc/info/asy-faq.info | 2 | ||||
-rw-r--r-- | Master/texmf-dist/doc/info/asymptote.info | 648 | ||||
-rw-r--r-- | Master/texmf-dist/doc/man/man1/xasy.man1.pdf | bin | 3859 -> 3863 bytes |
10 files changed, 795 insertions, 635 deletions
diff --git a/Master/texmf-dist/doc/asymptote/CAD.pdf b/Master/texmf-dist/doc/asymptote/CAD.pdf Binary files differindex c5c3fef48b6..63384ce0276 100644 --- a/Master/texmf-dist/doc/asymptote/CAD.pdf +++ b/Master/texmf-dist/doc/asymptote/CAD.pdf diff --git a/Master/texmf-dist/doc/asymptote/TeXShopAndAsymptote.pdf b/Master/texmf-dist/doc/asymptote/TeXShopAndAsymptote.pdf Binary files differindex 83e2f90ea74..0a0d2b16423 100644 --- a/Master/texmf-dist/doc/asymptote/TeXShopAndAsymptote.pdf +++ b/Master/texmf-dist/doc/asymptote/TeXShopAndAsymptote.pdf diff --git a/Master/texmf-dist/doc/asymptote/asy-latex.pdf b/Master/texmf-dist/doc/asymptote/asy-latex.pdf Binary files differindex 49a797348ee..ec56b3bc517 100644 --- a/Master/texmf-dist/doc/asymptote/asy-latex.pdf +++ b/Master/texmf-dist/doc/asymptote/asy-latex.pdf diff --git a/Master/texmf-dist/doc/asymptote/asyRefCard.pdf b/Master/texmf-dist/doc/asymptote/asyRefCard.pdf Binary files differindex fa105896284..cc95d25d1df 100644 --- a/Master/texmf-dist/doc/asymptote/asyRefCard.pdf +++ b/Master/texmf-dist/doc/asymptote/asyRefCard.pdf diff --git a/Master/texmf-dist/doc/asymptote/asymptote.pdf b/Master/texmf-dist/doc/asymptote/asymptote.pdf Binary files differindex d6463b5390c..69c5e84ff67 100644 --- a/Master/texmf-dist/doc/asymptote/asymptote.pdf +++ b/Master/texmf-dist/doc/asymptote/asymptote.pdf diff --git a/Master/texmf-dist/doc/asymptote/examples/shade.asy b/Master/texmf-dist/doc/asymptote/examples/shade.asy index 66b8880fd4b..889834585cb 100644 --- a/Master/texmf-dist/doc/asymptote/examples/shade.asy +++ b/Master/texmf-dist/doc/asymptote/examples/shade.asy @@ -1,4 +1,3 @@ - size(100,0); radialshade(unitsquare,yellow,(0,0),0,red,(0,0),1); diff --git a/Master/texmf-dist/doc/asymptote/examples/tvgen.asy b/Master/texmf-dist/doc/asymptote/examples/tvgen.asy index 1a9f151df26..c7898fe7129 100644 --- a/Master/texmf-dist/doc/asymptote/examples/tvgen.asy +++ b/Master/texmf-dist/doc/asymptote/examples/tvgen.asy @@ -1,5 +1,5 @@ /* tvgen - draw pm5544-like television test cards. - * Copyright (C) 2007, 2009, Servaas Vandenberghe. + * Copyright (C) 2007, 2009, 2012, Servaas Vandenberghe. * * The tvgen code below is free software: you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public License as @@ -16,13 +16,14 @@ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301, USA. * - * tvgen-1.1/tvgen.asy + * tvgen-1.2/tvgen.asy http://picaros.org/ftp/soft/tvgen-1.2.tgz * This asy script generates pm5544-like television test cards. The image * parameters were derived from a 1990 recording. The basic parameters * conform to itu-r bt.470, bt.601, and bt.709. There is no unique image * since local variants exist and parameters have varied over time. */ //papertype="a4"; +import plain; int verbose=settings.verbose/*+2*/; /* uncomment for debug info */ /* tv dot coordinates --> PS points */ @@ -46,25 +47,144 @@ path tvrect(int lc, int tr, int rc, int br, real xd, real yd, int Nv) { return z[0]--z[1]--z[2]--z[3]--cycle; } +/********************* horizontal castellations ********************/ +/* Draw a horizontal red line in the top left and the bottom right + * castellation. These testlines disappear if the monitor is not set + * in a dot-exact mode. An example is image crop due to overscan. + * + * For 625 line systems any analog-compatible processing removes + * these red testlines since the first halfline of the odd field and + * the last halfline of the even field are ignored. A full 576 + * visible line frame often results via a final copy paste operation. + */ +void castelhor(int colortv, int[] rccoll, int[] rccolr, int cmaxi, int Nh, + int topdist, int botdist, + pen pdef, real xd, real yd, int Nv) { + pen pblack, pwhite, pred; + int i; + + pblack = pdef+gray(0.0); + pwhite = pdef+gray(1.0); + pred = pdef+rgb(0.75, 0, 0); + + /** top and bottom: white corners. **/ + for (i=-1; i<=cmaxi; ++i) { + pen pcast; + int inext, lc, rc, tr, br; + path zzc; + + inext = i+1; + if (inext%2 == 0) { + pcast = pwhite; + } else { + pcast = pblack; + } + + if (i >= 0) { + lc = rccolr[i]; + } else { + lc = 0; + } + if (inext <= cmaxi) { + rc = rccoll[inext]; + } else { + rc = Nh; + } + + if (i == 0 && colortv > 0 && topdist > 1) { + path zzr; + zzr = tvrect(lc,0, rc,1, xd,yd,Nv); + fill(zzr, p=pred); + tr = 1; + } else { + tr = 0; + } + zzc = tvrect(lc,tr, rc,topdist, xd,yd,Nv); + fill(zzc, p=pcast); + + if (inext == cmaxi && colortv > 0 && botdist+1 < Nv) { + path zzr; + zzr = tvrect(lc,Nv-1, rc,Nv, xd,yd,Nv); + fill(zzr, p=pred); + br = Nv-1; + } else { + br = Nv; + } + zzc = tvrect(lc,botdist, rc,br, xd,yd,Nv); + fill(zzc, p=pcast); + } + + return; +} + +/********************* vertical castellations ********************/ +/* The bottom right red rectangle tests for a non causal color FIR + * filter in the receiver. The last 2..4 dots then typically appear + * colorless, green, or cyan. + * + * This stems from the fact that the chroma subcarrier is of lower + * bandwidth than luma and thus continues after the last active sample. + * These trailing (y,u,v) samples result from an abrupt signal to zero + * transition and depend on the transmit and receive filters. Samples + * from VHS, system B/G/D/K, system I, or a DVD player output are + * different. Nevertheless, a sharpening filter uses this data and so + * adds false color to the last dots. + */ +void castelver(int colortv, int leftdist, int rightdist, int Nh, + int[] rcrowb, int[] rcrowt, int rmaxi, + pen pdef, real xd, real yd, int Nv) { + pen pblack, pwhite; + int i; + + pblack = pdef+gray(0.0); + pwhite = pdef+gray(1.0); + + for (i=0; i<rmaxi; ++i) { + int inext = i+1; + pen pcastl, pcastr; + int tr, br; + path zzc; + + if (inext%2 == 0) { + pcastl = pwhite; + } else { + pcastl = pblack; + } + if (inext == rmaxi && colortv>0) { + pcastr = pdef+rgb(0.75,0.0,0); + } else { + pcastr = pcastl; + } + + tr=rcrowb[i]; + br=rcrowt[i+1]; + zzc=tvrect( 0,tr, leftdist,br, xd,yd,Nv); + fill(zzc, p=pcastl); + zzc=tvrect(rightdist,tr, Nh,br, xd,yd,Nv); + fill(zzc, p=pcastr); + } + return; +} /********************* image aspect ratio markers ********************/ -void rimarkers(real rimage, int Nh, int Nhc, int os, int Nvc, int Nsy, pen pdef, real xd, real yd, int Nv) { +void rimarkers(real rimage, int Nh, int Nhc, int os, int Nvc, int Nsy, + pen pdef, real xd, real yd, int Nv) { int[] ridefN={ 4, 16 }; int[] ridefD={ 3, 9 }; int i; - for(i=0; i<2; ++i) { + for (i=0; i<2; ++i) { real rid=ridefN[i]/ridefD[i]; - if(rimage>rid) { + if (rimage>rid) { int off, offa, offb; - /* Nhdef=Nh/rimage*rid */ - off=round(Nh/rimage*rid/2); + /* Nhdef=Nh*rid/rimage */ + off=round(Nh*rid/rimage/2); offa=off+os; offb=off-os; // write(offa,offb); - if(2*offa<Nh) { + if (2*offa<Nh) { int hy, tr, br; path zz; @@ -83,50 +203,113 @@ void rimarkers(real rimage, int Nh, int Nhc, int os, int Nvc, int Nsy, pen pdef, return; } -/************* cross hatch: line pairing, center interlace test *************/ -void centerline(int[] coff, int[] coffa, int[] coffb, int Nhc, int divsx, - int os, int[] rcrowc, int Nvc, int divsy, +/************* crosshatch: line pairing, center interlace test *************/ +/* There are 2 coordinate systems in use: + * 1. integer number based for the gridlines + * + * coff, Nhc, rccoll[], rccolc[], rccolr[] : vertical gridlines, + * rcrowc, Nvc : horizontal gridlines, + * + * 2. real number based for the center circle + * + * ccenter={ cx=Nh/2, cy=Nv/2} : the true image center, + * rcoff rcright rcleft : offset to ccenter and points on the circle. + * + * Both centers coincide if Nh and Nv are even. + */ +void centerline(int colortv, + int[] rccoll, int[] rccolc, int[] rccolr, int divsx, + int Nhc, int os, + int[] rcrowt, int[] rcrowc, int[] rcrowb, int divsy, + int Nvc, pair ccenter, real[] rcoff, pair[] rcright, pair[] rcleft, pen pdef, real xd, real yd, int Nv) { - pair[] z; - int col; - pen pblack=pdef+gray(0.0), pwhite=pdef+gray(1.0); - - z[0]=rcright[divsy]; - - col=Nhc+coff[0]; - z[1]=tvps(col,rcrowc[divsy], xd,yd,Nv); - z[2]=tvps(col,rcrowc[divsy-1], xd,yd,Nv); - col=Nhc-coff[0]; - z[3]=tvps(col,rcrowc[divsy-1], xd,yd,Nv); - z[4]=tvps(col,rcrowc[divsy], xd,yd,Nv); - - z[5]=rcleft[divsy]; - z[6]=rcleft[divsy+1]; - - z[7]=tvps(col,rcrowc[divsy+1], xd,yd,Nv); - z[8]=tvps(col,rcrowc[divsy+2], xd,yd,Nv); - col=Nhc+coff[0]; - z[9]=tvps(col,rcrowc[divsy+2], xd,yd,Nv); - z[10]=tvps(col,rcrowc[divsy+1], xd,yd,Nv); - - z[11]=rcright[divsy+1]; - fill(z[1]--z[2]--z[3]--z[4] //--z[5]--z[6] - --arc(ccenter, z[5], z[6]) - --z[7]--z[8]--z[9]--z[10] //--z[11]--z[0] - --arc(ccenter,z[11], z[0]) - --cycle, p=pblack); - - int i, maxoff, rows, tr, br; + pen pblack, pwhite; + int cmaxi, maxoff, mincol, maxcol; + int rows, tr, br; path zz; - maxoff=floor(rcoff[divsy]); + cmaxi=2*divsx+1; + + pblack=pdef+gray(0.0); + pwhite=pdef+gray(1.0); + + /* black background for center cross */ + if (colortv > 0) { + /* black, vertical gridlines redrawn below */ + pair[] z; + int col; + + z[0]=rcright[divsy]; + + col = rccolc[divsx+1]; + z[1]=tvps(col,rcrowc[divsy], xd,yd,Nv); + z[2]=tvps(col,rcrowc[divsy-1], xd,yd,Nv); + col = rccolc[divsx]; + z[3]=tvps(col,rcrowc[divsy-1], xd,yd,Nv); + z[4]=tvps(col,rcrowc[divsy], xd,yd,Nv); + z[5]=rcleft[divsy]; + z[6]=rcleft[divsy+1]; + + z[7]=tvps(col,rcrowc[divsy+1], xd,yd,Nv); + z[8]=tvps(col,rcrowc[divsy+2], xd,yd,Nv); + col = rccolc[divsx+1]; + z[9]=tvps(col,rcrowc[divsy+2], xd,yd,Nv); + z[10]=tvps(col,rcrowc[divsy+1], xd,yd,Nv); + + z[11]=rcright[divsy+1]; + fill(z[1]--z[2]--z[3]--z[4] //--z[5]--z[6] + --arc(ccenter, z[5], z[6]) + --z[7]--z[8]--z[9]--z[10] //--z[11]--z[0] + --arc(ccenter,z[11], z[0]) + --cycle, p=pblack); + } else { + /* 3 rows of black squares inside the gratings */ + int i, imax = divsy+1; + + for (i=divsy-1; i<=imax; ++i) { /* all 3 rows */ + int lmaxoff, lmincol, lmaxcol; + int inext = i+1; + int tr, br, j; + + /* XXX rcoff is relative to ccenter */ + lmaxoff = min(floor(rcoff[i]), floor(rcoff[inext])); + lmincol = Nhc-lmaxoff; + lmaxcol = Nhc+lmaxoff; + + /* square top and bottom */ + tr = rcrowb[i]; + br = rcrowt[inext]; + + for (j=0; j<cmaxi; ++j) { /* column j */ + int jnext = j+1; + + if (lmincol<=rccolc[j] && rccolc[jnext]<=lmaxcol) { + /* square is inside circle */ + int lc, rc; + path zzsq; + + lc = rccolr[j]; + rc = rccoll[jnext]; + zzsq = tvrect(lc, tr, rc, br, xd,yd,Nv); + fill(zzsq, p=pblack); /* draw black squares */ + } + } /* for col j */ + } /* for row i */ + } + /* center cross: vertical and horizontal centerline */ + maxoff = floor(rcoff[divsy]); /* XXX rcoff is relative to ccenter */ + mincol = Nhc-maxoff; + maxcol = Nhc+maxoff; + rows=min(Nvc-rcrowc[divsy-1], rcrowc[divsy+2]-Nvc); tr=Nvc-rows; br=Nvc+rows; - //write("centerline long: rows tr br ", rows, tr, br); + if (verbose > 1) { + write("centerline long : rows tr br ", rows, tr, br); + } zz=tvrect(Nhc-os, tr, Nhc+os, br, xd,yd,Nv); fill(zz, p=pwhite); zz=tvrect(Nhc-maxoff,Nvc-1, Nhc+maxoff,Nvc+1, xd,yd,Nv); @@ -136,27 +319,28 @@ void centerline(int[] coff, int[] coffa, int[] coffb, int Nhc, int divsx, rows=min(Nvc-rcrowc[divsy], rcrowc[divsy+1]-Nvc); tr=Nvc-rows; br=Nvc+rows; - if(verbose>1) - write("centerline: rows tr br ", rows, tr, br); - for(i=0; i<=divsx; ++i) { - int off; + if (verbose > 1) { + write("centerline short: rows tr br ", rows, tr, br); + } + + if (colortv > 0) { + int i; + for (i=0; i<=cmaxi; ++i) { + int coll, colr; - off=coff[i]; - if(off<maxoff) { - int offa, offb; - path zzv; - offa=coffa[i]; - offb=coffb[i]; - - zzv=tvrect(Nhc+offb, tr, Nhc+offa, br, xd,yd,Nv); - fill(zzv, p=pwhite); - zzv=tvrect(Nhc-offa, tr, Nhc-offb, br, xd,yd,Nv); - fill(zzv, p=pwhite); + coll=rccoll[i]; + colr=rccolr[i]; + + if (mincol<=coll && colr<=maxcol) { + path zzv; + zzv=tvrect(coll, tr, colr, br, xd,yd,Nv); + fill(zzv, p=pwhite); + } } } return; } - + /************************ topbw **************************************/ void topbw(int[] coff, int Nhc, int os, int urow, int trow, int brow, pair ccenter, pair rclt, pair rclb, pair rcrt, pair rcrb, @@ -206,29 +390,29 @@ void topbw(int[] coff, int Nhc, int os, int urow, int trow, int brow, * crad circle radius in y units, true size=crad*yd */ real testcircx(real x, real crad, real xd, real yd) { - real relx, phi, y; + real relx, ph, y; relx=x*xd/yd/crad; - if(relx>1) { - phi=0; + if (relx>1) { + ph=0; } else { - phi=acos(relx); + ph=acos(relx); } - y=crad*sin(phi); // or (x*xd)^2+(y*yd)^2=(crad*yd)^2 + y=crad*sin(ph); // or (x*xd)^2+(y*yd)^2=(crad*yd)^2 return y; } /* y on circle -> return x>=0 */ real testcircy(real y, real crad, real xd, real yd) { - real rely, phi, x; + real rely, ph, x; rely=y/crad; - if(rely>1) { - phi=pi/2; + if (rely>1) { + ph=pi/2; } else { - phi=asin(rely); + ph=asin(rely); } - x=crad*cos(phi)*yd/xd; // or (x*xd)^2+(y*yd)^2=(crad*yd)^2 + x=crad*cos(ph)*yd/xd; // or (x*xd)^2+(y*yd)^2=(crad*yd)^2 return x; } @@ -251,14 +435,14 @@ void testtone(real Tt, int trow, int brow, blocks=floor(2*xb/Tt); - for(i=-blocks-1; i<=blocks; ++i) { + for (i=-blocks-1; i<=blocks; ++i) { real tl, tr; path zz; tl=max(-xb,min(i*Ttt,xb)); /* limit [-xb..xb] */ tr=max(-xb,min((i+1)*Ttt,xb)); - if(tl<-xt && tr<=-xt || tr>xt && tl>=xt) { /* top full circle */ + if (tl<-xt && tr<=-xt || tr>xt && tl>=xt) { /* top full circle */ pair[] z; real yl, yr; @@ -306,8 +490,8 @@ void testtone(real Tt, int trow, int brow, zz=z[0]--z[1]--z[2]--z[3]--cycle; } - if(tl<tr) { - if(i%2 == 0) { + if (tl<tr) { + if (i%2 == 0) { fill(zz, p=pdef+gray(0.0)); } else { fill(zz, p=pdef+gray(0.75)); @@ -329,13 +513,13 @@ void colorbars(int[] coff, int Nhc, int trow, int crow, int brow, rows=brow-trow; poff=0; - for(i=0; i<=cmax; ++i) { + for (i=0; i<=cmax; ++i) { int off; int ii=2*i, il=cmax-i, ir=i+cmax+1; path zzl, zzr; off=ceil((coff[1+ii]+coff[2+ii])/2); - if(i!=0 && i<cmax) { + if (i!=0 && i<cmax) { zzr=tvrect(Nhc+poff,trow, Nhc+off,brow, xd,yd,Nv); zzl=tvrect(Nhc-off,trow, Nhc-poff,brow, xd,yd,Nv); } else { @@ -403,7 +587,7 @@ real addphase(real theta, real freq, real step) { cycles=freq*step; coverflow=floor(abs(cycles)); - if(coverflow>1) { + if (coverflow>1) { thetaret=0; } else { real dpi=2*pi; @@ -411,9 +595,9 @@ real addphase(real theta, real freq, real step) { cycles-=coverflow*sgn(cycles); thetaret=theta+cycles*dpi; /* cycles=(-1 .. 1) */ - if(thetaret>pi) { + if (thetaret>pi) { thetaret-=dpi; - } else if(thetaret<-pi) { + } else if (thetaret<-pi) { thetaret-=dpi; } } @@ -431,11 +615,11 @@ void testfreqs(real[] ftones, int[] coff, int Nhc, int trow,int crow,int brow, real fl, fr, thr, thl; /* Segment info for PAL continental test card - * segment i extends from [divc[i] .. divc[i+1]) with frequency divf[i] + * segment i extends from (divc[i] .. divc[i+1]) with frequency divf[i] */ - divs=2; // the number of segments on the right, total=2*divs+1 + divs=2; // the number of segments to the right, total=2*divs+1 divc[0]=0; - for(i=0; i<=divs; ++i) { + for (i=0; i<=divs; ++i) { int ii=i*2, il=divs-i, ir=divs+i; divc[i+1]=ceil((coff[ii]+coff[ii+1])/2); /* xdot distance to center */ @@ -453,19 +637,19 @@ void testfreqs(real[] ftones, int[] coff, int Nhc, int trow,int crow,int brow, divnext=0; fl=0; fr=0; - thl=0; - thr=0; - // draw a vertical line at off..off+1 - for(off=0; off<coffmax; ++off) { + thl=0; /* ={ 0, -pi/2 } : initial angle at center vertical line Nhc */ + thr=thl; + /* draw a vertical line at off..off+1, use theta for off+1/2 */ + for (off=0; off<coffmax; ++off) { real ampl, ampr; int col; path zz; - if(off==trowlim) { + if (off==trowlim) { tr=trow; } - if(off == divc[divnext]) { + if (off == divc[divnext]) { /* switch frequency: cycles=0.5*fcur+0.5*fnext */ thl=addphase(thl, fl, -0.5); thr=addphase(thr, fr, 0.5); @@ -509,18 +693,17 @@ void testfreqs(real[] ftones, int[] coff, int Nhc, int trow,int crow,int brow, void graybars(int[] coff, int Nhc, int trow, int brow, pair ccenter, pair rclt, pair rclb, pair rcrt, pair rcrb, pen pdef, real xd, real yd, int Nv) { - int[] gs={0, 51, 102, 153, 204, 255}; - int cmax=2, poff, rows, i; + int[] gs={0, 20, 40, 60, 80, 100}; + int cmax=2, poff, i; - rows=brow-trow; poff=0; - for(i=0; i<=cmax; ++i) { + for (i=0; i<=cmax; ++i) { int off; int ii=2*i, il=cmax-i, ir=i+cmax+1; path zzl, zzr; off=ceil((coff[1+ii]+coff[2+ii])/2); - if(i<cmax) { + if (i<cmax) { zzl=tvrect(Nhc-off,trow, Nhc-poff,brow, xd,yd,Nv); zzr=tvrect(Nhc+poff,trow, Nhc+off,brow, xd,yd,Nv); } else { @@ -537,8 +720,8 @@ void graybars(int[] coff, int Nhc, int trow, int brow, zrt=tvps(pcol,trow, xd,yd,Nv); zzr=zrb--arc(ccenter,rcrb,rcrt)--zrt--cycle; } - fill(zzl, p=pdef+gray(gs[il]/255)); - fill(zzr, p=pdef+gray(gs[ir]/255)); + fill(zzl, p=pdef+gray(gs[il]/100)); + fill(zzr, p=pdef+gray(gs[ir]/100)); poff=off; } @@ -608,15 +791,16 @@ void bottomcirc(int off, int Nhc, int trow, real cx, real cy, real crad, return; } -/****************************** PAL ears *********************************** +/****************************** PAL ears ***********************************/ +/* values pro mille * left y R G B - * 0.55 98 162 140 - * 0.5 103 128 191 - * 0.5 152 128 64 - * 0.45 157 93 115 + * 550 306 674 550 + * 500 363 500 859 + * 500 637 500 141 + * 450 694 326 450 * right - * 0.6 153 168 76 - * 0.4 102 87 179 + * 600 600 684 166 + * 400 400 316 834 * * in: dright= -1 left ear, +1 right ear */ @@ -633,9 +817,10 @@ void palears(int[] coff, int[] coffa, int[] coffb, int Nhc, */ real cI=0.214; - /* (u,v) for zero G-y, phase of -34.5 degrees */ + /* itu-r */ real wr=0.299, wb=0.114, wg=1-wr-wb; /* wg=0.587, y=wr*R+wg*G+wb*B */ real wu=0.493, wv=0.877; /* u=wu*(B-y) v=wv*(R-y) */ + /* (u,v) for zero G-y, phase of -34.5 degrees */ real colu=wu*wg/wb, colv=-wv*wg/wr; /* for w=(G-y)/0.696 == 0 */ /* ears: U==0 W==0 W==0 U==0 */ @@ -653,9 +838,13 @@ void palears(int[] coff, int[] coffa, int[] coffb, int Nhc, path[] zz; int lcol, ccol, cicol, rcol, i; - if(dright>0) { + if (dright>0) { + if (verbose > 1) + write("right ears"); cy=cyr; cu=cur; cv=cvr; } else { + if (verbose > 1) + write("left ears"); cy=cyl; cu=cul; cv=cvl; } @@ -690,7 +879,7 @@ void palears(int[] coff, int[] coffa, int[] coffb, int Nhc, z[5]=tvps(rcol,arow, xd,yd,Nv); zz[3]=z[0]--z[1]--z[2]--z[3]--z[4]--z[5]--cycle; - for(i=0; i<4; ++i) { + for (i=0; i<4; ++i) { real y, u, v, A, ph, By, Ry, Gy, R, G, B; y=cy[i]; @@ -699,12 +888,14 @@ void palears(int[] coff, int[] coffa, int[] coffb, int Nhc, A=hypot(u,v); ph= (u!=0 || v!=0) ? atan2(v,u) : 0.0; - if(v>=0) { - if(ph<0) ph=ph+pi; + if (v>=0) { + if (ph<0) + ph=ph+pi; } else { - if(ph>0) ph=ph-pi; + if (ph>0) + ph=ph-pi; } - if(A>0) { + if (A>0) { u=u/A*cI; v=v/A*cI; } @@ -717,22 +908,22 @@ void palears(int[] coff, int[] coffa, int[] coffb, int Nhc, R=Ry+y; G=Gy+y; B=By+y; - if(verbose > 1) - write(y,round(R*255),round(G*255),round(B*255)); + if (verbose > 1) + write(y*1000, round(R*1000), round(G*1000), round(B*1000)); fill(zz[i], p=pdef+rgb(R,G,B)); } return; } -/****************************** NTSC bars *********************************** - * amplitude equals color burst smpte (pm: -V +U) +/****************************** NTSC bars ***********************************/ +/* amplitude equals color burst smpte (pm: -V +U) * y campl sat R G B * left 0.5 0.21 70% -I? * right 0.5 0.17 60% +Q? */ -void ntscbars(int[] coff, int[] coffa, int[] coffb, int Nhc, - int[] rcrowt, int[] rcrowb, int Nvc, int divsy, int dright, +void ntscbars(int[] rccoll, int[] rccolr, int divsx, + int[] rcrowt, int[] rcrowb, int divsy, int dright, pen pdef, real xd, real yd, int Nv) { /* The amplitude of (i,q) as seen on a vectorscope, * max 0.292 Vn for 100% saturation in I==0 ears. @@ -747,35 +938,34 @@ void ntscbars(int[] coff, int[] coffa, int[] coffb, int Nhc, /* iT : iq -> RyBy : rotation+scaling */ real iT11=0.95, iT12=0.62, iT21=-1.11, iT22=1.71; - /* bars -2 -1 0 1 2 */ - real[] cyl={ 0.50, 0.50, 0, 0.50, 0.50 }; - real[] cil={ 0, 0, 0, -1, 1 }; - real[] cql={ -1, 1, 0, 0, 0 }; - int[] offil={ 6, 7, 5, 7, 6 }; - + /* bars -2 -1 0 1 2 */ + real[] cyl={ 0.50, 0.50, 1, 0.50, 0.50 }; + real[] cil={ 0, 0, 0, -1, 1 }; + real[] cql={ -1, 1, 0, 0, 0 }; + int[] indl={ -7, -8, 0, 8, 7 }; + real cy, ci, cq; - int dri, dris, offi, lcol, rcol, i; + int rmaxi, dri, ind, ibase, lcol, rcol, i; - if(dright>=0) { - dris=1; - } else { - dris=-1; - } - if(dright<-2 || dright>2) { + rmaxi=2*divsy+1; + if (dright<-2 || dright>2) { dri=2; } else { dri=2+dright; } - cy=cyl[dri]; ci=cil[dri]; cq=cql[dri]; - offi=offil[dri]; - lcol=Nhc+dris*coffa[offi]; - rcol=Nhc+dris*coffb[offi+1]; + cy=cyl[dri]; + ci=cil[dri]; + cq=cql[dri]; + ind=indl[dri]; + ibase=divsx+ind; + lcol=rccolr[ibase]; + rcol=rccoll[ibase+1]; real A, By, Ry, Gy, R, G, B; A=hypot(ci,cq); - if(A>0) { + if (A>0) { ci=ci/A*campl; cq=cq/A*campl; } @@ -787,33 +977,33 @@ void ntscbars(int[] coff, int[] coffa, int[] coffb, int Nhc, R=Ry+cy; G=Gy+cy; B=By+cy; - if(verbose > 1) - write(cy,ci,cq,round(R*255),round(G*255),round(B*255)); + if (verbose > 1) + write(ind, cy*1000, round(ci*1000), round(cq*1000), + round(R*1000), round(G*1000), round(B*1000)); - for(i=-divsy; i<=divsy; ++i) { + for (i=0; i<rmaxi; ++i) { path zz; - int brow, trow; + int brow, trow, inext=i+1; - if(i>-divsy) { - trow=rcrowb[divsy+i]; + if (i>0) { + trow=rcrowb[i]; } else { - trow=floor((rcrowb[divsy+i]+rcrowt[divsy+i+1])/2); + trow=floor((rcrowb[i]+rcrowt[inext])/2); } - if(divsy>i) { - brow=rcrowt[divsy+i+1]; + if (inext<rmaxi) { + brow=rcrowt[inext]; } else { - brow=floor((rcrowb[divsy+i]+rcrowt[divsy+i+1])/2); + brow=floor((rcrowb[i]+rcrowt[inext])/2); } - zz=tvrect(lcol,brow, rcol,trow, xd,yd,Nv); + zz=tvrect(lcol,trow, rcol,brow, xd,yd,Nv); fill(zz, p=pdef+rgb(R,G,B)); } return; } - /****************************** main ***********************************/ /* Conversion to bitmap: * EPSPNG='gs -dQUIET -dNOPAUSE -dBATCH -sDEVICE=png16m' @@ -834,14 +1024,17 @@ int bsys=2, colortv=1, os=1; * 5 4/3 768 bsys=1, square dot cable TV info channel * 6 131/96 786 bsys=2, total square dot broadcast camera * 7 16/9 720 new broadcast 16/9, SD from HD-1440 or itu-r bt.709 - * 8 4/3 704 525 analog broadcast itu-r bt.470 711*485 + * 8 4/3 704 525 analog broadcast itu-r bt.470 711x485 * 9 4/3 720 525 new broadcast * 10 15/11 720 525 total aperture analog broadcast * 11 16/9 1920 1250, 1080 square dot at 12.5 frames/second * 12 4/3 1600 1250, 1200 square dot at 12.5 frames/second * * colortv: - * set 0 for monochrome crosshatch, 1 for pal ears, 2 for ntsc bars + * 0 monochrome crosshatch, + * 1 pal ears, + * 2 ntsc bars, + * 3 neither ears nor bars. * * os: horizontal oversampling, typical values for 13.5MHz: * 2 4/3 704*576, 15/11 720*576 @@ -854,9 +1047,9 @@ int bsys=2, colortv=1, os=1; access settings; usersetting(); -if(bsys<0 || bsys>12 || colortv<0 || colortv>3 || os<=0 || os>16) { - write('Error: bad user input: bsys, colortv, os=\t', bsys, colortv, os); - abort('Bad option -u bsys=N ?'); +if (bsys<0 || bsys>12 || colortv<0 || colortv>3 || os<=0 || os>16) { + write("Error: bad user input: bsys, colortv, os=\t", bsys, colortv, os); + abort("Bad option -u bsys=N ?"); } int[] bNdot= @@ -905,13 +1098,14 @@ int[] bNsh= * * resolution DPI from image aspect ratio * Rv=Nv/ly, ly=4in - * ri=Ni/Di, Ni={4,15,16} Di={3,11,9} + * ri=Ni/Di, Ni={ 4, 15, 16} Di={ 3, 11, 9} * lx=ri*ly * * Rh=Nh/lx=Di*(Nh/(Ni*ly)) - * ==> ri=4/Di => Nh=k*16 - * ri=15/Di => Nh=k*60 - * ri=16/Di => Nh=k*64 + * integer Rh: + * Ni=4 ri=4/Di => Nh=k*16 + * Ni=15 ri=15/Di => Nh=k*60 + * Ni=16 ri=16/Di => Nh=k*64 * * resolution DPI from dot aspect ratio, general algorithm, * @@ -947,18 +1141,19 @@ Nv=bNv[bsys]; Ly=4; // 4 inch vertical size m=floor(0.5+Nv/(Ly*Nd)); -if(m<1) m=1; +if (m < 1) m=1; ly=Nv/(m*Nd); lx=Nh/(m*Dd); ysize=ly*1inch; xsize=lx*1inch; rimage=xsize/ysize; -if(verbose > 1) - write('#Nd Dd m ri:\t', Nd, Dd, m, rimage); -//size(xsize,ysize,Aspect); // should not have any effect +if (verbose > 1) { + write("#Nd Dd m ri:\t", Nd, Dd, m, rimage); +} +//size(xsize, ysize, Aspect); // should not have any effect -Nsy=bNsy[bsys]; // grating size in lines 42,43, 34,35 +Nsy=bNsy[bsys]; // grating size in lines 42,43 or 34,35 Nshift=bNsh[bsys]; // shift image up: pre 1997 =3, 2007 =0 fs=1e6*bfs[bsys]*os; Na=0; // add 1,0,-1 to height of hor center squares for even Na+Nsy @@ -970,21 +1165,25 @@ xd=xsize/Nh; yd=ysize/Nv; pwidth=min(abs(xd),abs(yd)); -pen pdefault=squarecap+linewidth(pwidth); -pen pblack=pdefault+gray(0.0); -pen pwhite=pdefault+gray(1.0); +pen pdefault = squarecap+linewidth(pwidth); +pen pblack = pdefault+gray(0.0); +pen pwhite = pdefault+gray(1.0); /**** calculate grating repeats and size in tv dots ****/ -// horizontal lines -int divsy, rdisty, Nvc, Nt, Nb; +/* horizontal lines */ +int divsy, rdisty, Nvc, Nt, Nb, rmaxi; Nvc=floor(Nv/2)-Nshift; -divsy=floor(((Nv-Na-2)/Nsy-1)/2); // (Nv-Na-2)/2-Nsy/2 dots for Nsy lengths +/* top half picture (Nv-2)/2-(Nsy+Na)/2 dots for divisions of Nsy dots */ +divsy=floor(((Nv-2-Na)/Nsy-1)/2); rdisty=Na+Nsy*(1+2*divsy); +/* first guess free lines top and bottom */ Nt=Nvc-ceil(rdisty/2); Nb=Nv-Nt-rdisty; -if(verbose > 1) - write('#divsy t b: \t',divsy,Nt,Nb); +if (verbose > 1) { + write('#divsy t b: \t', divsy, Nt, Nb); +} +rmaxi=2*divsy+1; /* Nsyc: center square height * line pairing test: verify distance of center to top and bot @@ -1000,9 +1199,10 @@ if(verbose > 1) * rcrowc true center for color info, distance to top of image. * rcrowb bot dist of hor line * - * Nt=Nvc-(offu+divsy*Nsy); - * Nb=Nv-( Nvc-(offd-divsy*Nsy) ); - * ==> Nt+Nb=Nv-Nsyc-2*divsy*Nsy + * offd = offu-Nsyc + * Nt = Nvc-(offu+divsy*Nsy); + * Nb = Nv-( Nvc-(offd-divsy*Nsy) ); + * ==> Nt+Nb = Nv-Nsyc-2*divsy*Nsy */ int Nsyc, offu, offd, Nyst=0, i; int[] rcrowt, rcrowc, rcrowb; @@ -1010,12 +1210,12 @@ int[] rcrowt, rcrowc, rcrowb; Nsyc=Nsy+Na; offu=floor(Nsyc/2); offd=offu-Nsyc; -if(Nsyc%2 != 0) { +if (Nsyc%2 != 0) { Nyst=1; -} else if(Nsyc%4 == 0) { +} else if (Nsyc%4 == 0) { Nyst=1; /* stagger */ } -for(i=0; i<=divsy; ++i) { +for (i=0; i<=divsy; ++i) { int iu, id, ou, od, ru, rd; iu=divsy-i; @@ -1023,8 +1223,9 @@ for(i=0; i<=divsy; ++i) { ou=offu+Nsy*i; od=offd-Nsy*i; - if(verbose > 1) + if (verbose > 1) { write(ou,od); + } rcrowc[iu]=Nvc-ou; rcrowc[id]=Nvc-od; @@ -1039,30 +1240,71 @@ for(i=0; i<=divsy; ++i) { } Nt=floor((rcrowt[0]+rcrowb[0])/2); Nb=Nv-Nt-Nsyc-2*Nsy*divsy; -if(verbose > 1) - write('#st t b: \t',Nyst,Nt,Nb); +if (verbose > 1) { + write('#st t b: \t', Nyst, Nt, Nb); +} /* vertical lines * (Nh-2*os)/2-Nsx/2 dots available for divisions of Nsx dots. * At least 5 dots margin left and right ==> use -10*os */ -real lsq, Nsx; -int divsx, Nhc, Nl; +real lsq, Nsx, rdistx; +int divsx, Nhc, Nl, Nr, cmaxi; lsq=Nsy*yd; -Nsx=lsq/xd; +Nsx=lsq/xd; /* floating point */ divsx=floor(((Nh-10*os)/Nsx-1)/2); Nhc=round(Nh/2); -Nl=Nhc-round((1+2*divsx)*Nsx/2); -if(verbose > 1) - write('#Nsx divsx Nl:\t',Nsx,divsx,Nl); +rdistx=(1+2*divsx)*Nsx; +Nl=Nhc-round(rdistx/2); +if (verbose > 1) { + write('#divsx Nsx l:\t', divsx, Nsx, Nl); +} +cmaxi=2*divsx+1; + +int[] coff, coffl, coffr; +int[] rccoll, rccolc, rccolr; +for (i=0; i<=divsx; ++i) { + int off, offl, offr, il, ir; + real cdist; + + cdist=Nsx*(1+2*i); /* horizontal distance 2 symmetrical vert lines */ + off=round(cdist/2); + // write(cdist, off); + offl=off-os; + offr=off+os; + + coff[i]=off; + coffl[i]=offl; + coffr[i]=offr; + + if (verbose > 1) { + write(cdist, off); + } + il=divsx-i; + ir=divsx+i+1; + + rccoll[il]=Nhc-offr; + rccolc[il]=Nhc-off; + rccolr[il]=Nhc-offl; + + rccoll[ir]=Nhc+offl; + rccolc[ir]=Nhc+off; + rccolr[ir]=Nhc+offr; +} +Nl=rccolc[0]; +Nr=Nh-rccolc[cmaxi]; +if (verbose > 1) { + write('#divsx Nsx l r:\t', divsx, Nsx, Nl, Nr); +} /**** draw gray background ****/ { path zz; + //zz=tvrect(0,0, Nh,Nv, xd,yd,Nv); /* keep white canvas for castellations */ - zz=tvrect(Nl,Nt, Nh-Nl,Nv-Nb, xd,yd,Nv); + zz=tvrect(rccoll[0],rcrowt[0], rccolr[cmaxi],rcrowb[rmaxi], xd,yd,Nv); fill(zz, p=pdefault+gray(0.5)); //dot(zz); } @@ -1073,36 +1315,35 @@ path ccirc; cx=Nh/2; cy=Nv/2-Nshift; crad=6*Nsy; -if(Nv%2 != 0) { - crad+=0.5; +if (Nv%2 != 0) { + crad+=0.5; } ccenter=tvps(cx,cy, xd,yd,Nv); ccirc=circle(ccenter, crad*yd); -if(colortv<=0) { +if (colortv<=0) { draw(ccirc, p=pwhite+linewidth(2*yd)); } -/****** draw 2*divsy+2 horizontal lines **********************************/ +/**** draw 2*divsy+2 horizontal gridlines ****/ real[] rcang, rcoff; pair[] rcright, rcleft; -int i, iend=2*divsy+1; -for(i=0; i<=iend; ++i) { - real y, phi, x; +int i; +for (i=0; i<=rmaxi; ++i) { + real y, ph, x; path zzh; pair zd; - zzh=tvrect(0,rcrowt[i], Nh,rcrowb[i], xd,yd,Nv); - fill(zzh, p=pwhite); + zzh=tvrect(0,rcrowt[i], Nh,rcrowb[i], xd,yd,Nv); + fill(zzh, p=pwhite); y=cy-rcrowc[i]; - //write(roff); - if(abs(y)<crad) { - phi=asin(y/crad); + if (abs(y)<crad) { + ph=asin(y/crad); } else { - phi=pi/2; + ph=pi/2; } - rcang[i]=phi; - x=(crad*cos(phi))*yd/xd; + rcang[i]=ph; + x=(crad*cos(ph))*yd/xd; rcoff[i]=x; zd=tvps(cx+x,cy-y, xd,yd,Nv); rcright[i]=zd; @@ -1111,109 +1352,31 @@ for(i=0; i<=iend; ++i) { rcleft[i]=zd; } -/****** draw 2*divsx+2 vertical lines ***************************/ -int[] coff, coffa, coffb; -int poffa=0, ccenterwhite=divsx%2; -for(i=0; i<=divsx; ++i) { - real cdist=(1+2*i)*Nsx; - int off, offa, offb; +/**** draw 2*divsx+2 vertical gridlines ****/ +for (i=0; i<=cmaxi; ++i) { path zzv; - - off=round(cdist/2); - //write(cdist,off); - offa=off+os; - offb=off-os; - - coff[i]=off; - coffa[i]=offa; - coffb[i]=offb; - - //write(Nhc-offa); - zzv=tvrect(Nhc+offb,0, Nhc+offa,Nv, xd,yd,Nv); + zzv=tvrect(rccoll[i],0, rccolr[i],Nv, xd,yd,Nv); fill(zzv, p=pwhite); - zzv=tvrect(Nhc-offa,0, Nhc-offb,Nv, xd,yd,Nv); - fill(zzv, p=pwhite); - - /** top castellations, must end with black **/ - if(i%2 == ccenterwhite) { - int j, jnum; - - if(poffa == 0) { - poffa=-offb; - jnum=1; - } else { - jnum=2; - } - - for(j=0; j<jnum; ++j) { - int lc, rc; - path zzc; - - if(j==0) { - lc=Nhc+poffa; - rc=Nhc+offb; - } else { - lc=Nhc-offb; - rc=Nhc-poffa; - } - - zzc=tvrect(lc,0, rc,Nt-1, xd,yd,Nv); - fill(zzc, p=pblack); - zzc=tvrect(lc,Nv-Nb+1, rc,Nv, xd,yd,Nv); - fill(zzc, p=pblack); - } - } - - poffa=offa; } -//write(coff); -/** left and right castellations **/ -/* The bottom right red rectangle tests for a non causal color FIR - * filter in the receiver. The last 2..4 dots then typically appear - * colorless, green, or cyan. - * - * This comes from the fact that the chroma subcarrier is of lower - * bandwidth than luma and thus continues after the last active sample. - * These trailing (y,u,v) samples result from a signal to zero - * transition and depend on the transmit and receive filters. Samples - * from VHS, system B/G/D/K, system I, or a DVD player output are - * different. Nevertheless, a sharpening filter uses this data and so - * adds false color to the last dots. - */ -int lc, rc; -iend=2*divsy+1; -lc=Nhc-coffa[divsx]; -rc=Nhc+coffa[divsx]; -for(i=1; i<=iend; ++i) { - pen pcast; - if(i == iend && colortv>0) { - pcast=pdefault+rgb(0.75,0.0,0); - } else { - pcast=pblack; - } - if(i%2 == 1) { - int tr, br; - path zzc; - - tr=rcrowb[i-1]; - br=rcrowt[i]; - zzc=tvrect( 0,tr, lc,br, xd,yd,Nv); - fill(zzc, p=pblack); - zzc=tvrect(rc,tr, Nh,br, xd,yd,Nv); - fill(zzc, p=pcast); - } -} +/**** castellations ****/ +castelhor(colortv, rccoll, rccolr, cmaxi, Nh, rcrowt[0], rcrowb[rmaxi], + pdefault, xd, yd, Nv); + +castelver(colortv, rccoll[0], rccolr[cmaxi], Nh, rcrowb, rcrowt, rmaxi, + pdefault, xd, yd, Nv); /****** markers for 4/3 aspect ratio ******/ -if(rimage>4/3) +if (rimage>4/3) { rimarkers(rimage, Nh, Nhc, os, Nvc, Nsy, pwhite, xd, yd, Nv); +} /****** line pairing center ******/ -centerline(coff, coffa, coffb, Nhc, divsx, os, rcrowc, Nvc, divsy, +centerline(colortv, rccoll, rccolc, rccolr, divsx, Nhc, os, + rcrowt, rcrowc, rcrowb, divsy, Nvc, ccenter, rcoff, rcright, rcleft, pdefault, xd, yd, Nv); -if(colortv>0) { +if (colortv>0) { /* topbw structure */ topbw(coff, Nhc, os, rcrowc[divsy-5], rcrowc[divsy-4], rcrowc[divsy-3], ccenter, rcleft[divsy-4], rcleft[divsy-3], rcright[divsy-4], @@ -1239,19 +1402,19 @@ if(colortv>0) { rcright[divsy+3], rcright[divsy+4], pdefault, xd,yd,Nv); /* PAL ears */ - if(colortv==1) { - palears(coff,coffa,coffb, Nhc, rcrowt, rcrowb, Nvc, divsy, -1, + if (colortv == 1) { + palears(coff,coffr,coffl, Nhc, rcrowt, rcrowb, Nvc, divsy, -1, pdefault, xd, yd, Nv); - palears(coff,coffa,coffb, Nhc, rcrowt, rcrowb, Nvc, divsy, 1, + palears(coff,coffr,coffl, Nhc, rcrowt, rcrowb, Nvc, divsy, 1, pdefault, xd, yd, Nv); - } else if(colortv==2) { - ntscbars(coff,coffa,coffb, Nhc, rcrowt, rcrowb, Nvc, divsy, -1, + } else if (colortv == 2) { + ntscbars(rccoll, rccolr, divsx, rcrowt, rcrowb, divsy, -1, pdefault, xd, yd, Nv); - ntscbars(coff,coffa,coffb, Nhc, rcrowt, rcrowb, Nvc, divsy, 1, + ntscbars(rccoll, rccolr, divsx, rcrowt, rcrowb, divsy, 1, pdefault, xd, yd, Nv); - ntscbars(coff,coffa,coffb, Nhc, rcrowt, rcrowb, Nvc, divsy, -2, + ntscbars(rccoll, rccolr, divsx, rcrowt, rcrowb, divsy, -2, pdefault, xd, yd, Nv); - ntscbars(coff,coffa,coffb, Nhc, rcrowt, rcrowb, Nvc, divsy, 2, + ntscbars(rccoll, rccolr, divsx, rcrowt, rcrowb, divsy, 2, pdefault, xd, yd, Nv); } @@ -1294,20 +1457,24 @@ if(colortv>0) { itot=insert(ifm,0, itot); /* size of square */ - int rowNsy=round((rcrowc[divsy+5]+rcrowc[divsy+6])/2); - pair Npos=tvps(Nhc+round((coff[4]+coff[5])/2),rowNsy, xd,yd,Nv); - string iNsy=format("%i",Nsy); - + int rowNsy, colNsy; + pair Npos; + string iNsy; pen pbw; - if(colortv>0) { - pbw=pdefault+gray(1.0); + + rowNsy = round((rcrowc[divsy+5]+rcrowc[divsy+6])/2); + colNsy = round((rccolc[divsx+5]+rccolc[divsx+6])/2); + Npos = tvps(colNsy,rowNsy, xd,yd,Nv); + iNsy = format("%i", Nsy); + + if (colortv>0) { + pbw=pdefault+gray(1.0); } else { - pbw=pdefault+gray(0.0); + pbw=pdefault+gray(0.0); } label(ires, rpos, p=pbw); label(itot, tpos, p=pbw); label(iNsy, Npos, p=pbw); - if(verbose > 1) + if (verbose > 1) write('#res:\t', ires, itot, iNsy); } - diff --git a/Master/texmf-dist/doc/info/asy-faq.info b/Master/texmf-dist/doc/info/asy-faq.info index fe63cc4aadf..9034e009096 100644 --- a/Master/texmf-dist/doc/info/asy-faq.info +++ b/Master/texmf-dist/doc/info/asy-faq.info @@ -10,7 +10,7 @@ END-INFO-DIR-ENTRY File: asy-faq.info, Node: Top, Next: Question 1.1, Up: (dir) ASYMPTOTE FREQUENTLY ASKED QUESTIONS - 10 Oct 2012 + 15 May 2013 This is the list of Frequently Asked Questions about Asymptote (asy). diff --git a/Master/texmf-dist/doc/info/asymptote.info b/Master/texmf-dist/doc/info/asymptote.info index 5b88055da4c..c336f360af4 100644 --- a/Master/texmf-dist/doc/info/asymptote.info +++ b/Master/texmf-dist/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 2.21. +This file documents `Asymptote', version 2.22. `http://asymptote.sourceforge.net' @@ -23,7 +23,7 @@ File: asymptote.info, Node: Top, Next: Description, Up: (dir) Asymptote ********* -This file documents `Asymptote', version 2.21. +This file documents `Asymptote', version 2.22. `http://asymptote.sourceforge.net' @@ -351,7 +351,7 @@ file::). `http://www.imagemagick.org/script/binary-releases.php' is required to support output formats other than EPS, PDF, SVG, and PNG -(*note convert::). The `Python' interpreter from +(*note convert::). The `Python 2' interpreter from `http://www.python.org' is only required if you wish to try out the graphical user interface (*note GUI::). @@ -502,16 +502,15 @@ used; if it is old we recommend first putting `http://www.hpl.hp.com/personal/Hans_Boehm/gc/gc_source/gc-7.2d.tar.gz' in the `Asymptote' source directory. -If your graphics card supports multisampling, we recommend using version -`2.6.0' of `freeglut' to support antialiasing in `Asymptote''s adaptive -`OpenGL' 3D renderer (`MacOS X' users can skip this step since -`Asymptote' is configured to use the native glut library on that -platform). Download + On `UNIX' platforms (other than `MacOS X'), we recommend using +version `2.8.1' of the `freeglut' library. To compile `freeglut', +download - `http://prdownloads.sourceforge.net/freeglut/freeglut-2.6.0.tar.gz' + `http://prdownloads.sourceforge.net/freeglut/freeglut-2.8.1.tar.gz' and type (as the root user): -tar -zxf freeglut-2.6.0.tar.gz -cd freeglut-2.6.0 +gunzip freeglut-2.8.1.tar.gz +tar -xf freeglut-2.8.1.tar +cd freeglut-2.8.1 ./configure --prefix=/usr make install cd .. @@ -1024,17 +1023,21 @@ promote pens to a higher color space, as illustrated in the example file Axial gradient shading varying smoothly from `pena' to `penb' in the direction of the line segment `a--b' can be achieved with void axialshade(picture pic=currentpicture, path g, bool stroke=false, - pen pena, pair a, - pen penb, pair b); + pen pena, pair a, bool extenda=true, + pen penb, pair b, bool extendb=true); + The boolean parameters `extenda' and `extendb' indicate whether the +shading should extend beyond the axis endpoints `a' and `b'. Radial gradient shading varying smoothly from `pena' on the circle with center `a' and radius `ra' to `penb' on the circle with center `b' and radius `rb' is similar: void radialshade(picture pic=currentpicture, path g, bool stroke=false, - pen pena, pair a, real ra, - pen penb, pair b, real rb); - Illustrations of radial shading are provided in the example files -`shade.asy', `ring.asy', and `shadestroke.asy'. + pen pena, pair a, real ra, bool extenda=true, + pen penb, pair b, real rb, bool extendb=true); + The boolean parameters `extenda' and `extendb' indicate whether the +shading should extend beyond the radii `a' and `b'. Illustrations of +radial shading are provided in the example files `shade.asy', +`ring.asy', and `shadestroke.asy'. Gouraud shading using fill rule `fillrule' and the vertex colors in the pen array `p' on a triangular lattice defined by the vertices `z' @@ -1303,8 +1306,11 @@ approximates a straight line. One can change the spline tension from its default value of 1 to any real value greater than or equal to 0.75 (cf. John D. Hobby, Discrete and Computational Geometry 1, 1986): draw((100,0)..tension 2 ..(100,100)..(0,100)); -draw((100,0)..tension 2 and 1 ..(100,100)..(0,100)); -draw((100,0)..tension atleast 1 ..(100,100)..(0,100)); +draw((100,0)..tension 3 and 2 ..(100,100)..(0,100)); +draw((100,0)..tension atleast 2 ..(100,100)..(0,100)); + + In these examples there is a space between `2' and `..'. This is +needed as `2.' is interpreted as a numerical constant. The curl parameter specifies the curvature at the endpoints of a path (0 means straight; the default value of 1 means approximately circular): @@ -5051,8 +5057,6 @@ File: asymptote.info, Node: trembling, Next: stats, Prev: geometry, Up: Base This module, written by Philippe Ivaldi and illustrated in the example `floatingdisk.asy', allows one to draw wavy lines, as if drawn by hand. -Further examples are posted at -`http://www.piprime.fr/files/asymptote/trembling/' File: asymptote.info, Node: stats, Next: patterns, Prev: trembling, Up: Base modules @@ -6766,12 +6770,11 @@ There are four choices for viewing 3D `Asymptote' output: `outformat=""' and `render=-1'). If you encounter warnings from your graphics card driver, try specifying `-glOptions=-indirect' on the command line. On `UNIX' systems with graphics support for - multisampling, we recommend installing the latest SVN (antialiased) - version of the `freeglut' library (*note multisampling::); the - sample width can be controlled with the setting `multisample'. An - initial screen position can be specified with the pair setting - `position', where negative values are interpreted as relative to - the corresponding maximum screen dimension. The default settings import settings; + multisampling, the sample width can be controlled with the setting + `multisample'. An initial screen position can be specified with + the pair setting `position', where negative values are interpreted + as relative to the corresponding maximum screen dimension. The + default settings import settings; leftbutton=new string[] {"rotate","zoom","shift","pan"}; middlebutton=new string[] {"menu"}; rightbutton=new string[] {"zoom/menu","rotateX","rotateY","rotateZ"}; @@ -7709,8 +7712,7 @@ guide[][] contour(pair[][] z, real[][] f, real[] c, To construct contours for an array of values `f' specified at irregularly positioned points `z', use the routine -guide[][] contour(pair[] z, real[] f, real[] c, - interpolate join=operator --, int subsample=1); +guide[][] contour(pair[] z, real[] f, real[] c, interpolate join=operator --); The contours themselves can be drawn with one of the routines void draw(picture pic=currentpicture, Label[] L=new Label[], guide[][] g, pen p=currentpen); @@ -8264,9 +8266,9 @@ packages. Pictures are deconstructed into the PNG image format, which supports full alpha channel transparency. Under `Microsoft Windows', this -requires `Python 2.7.3' and the `Python Imaging Library': +requires `Python 2.7.4' and the `Python Imaging Library': - `http://www.python.org/ftp/python/2.7.3/python-2.7.3.msi' + `http://www.python.org/ftp/python/2.7.4/python-2.7.4.msi' `http://effbot.org/downloads/PIL-1.1.7.win32-py2.7.exe'. On `UNIX' systems, place @@ -8467,7 +8469,7 @@ Index (line 6) * & <1>: Arithmetic & logical. (line 56) -* &: Bezier curves. (line 83) +* &: Bezier curves. (line 86) * &&: Arithmetic & logical. (line 53) * * <1>: Arithmetic & logical. @@ -8489,7 +8491,7 @@ Index * -- <1>: Self & prefix operators. (line 6) * --: Tutorial. (line 127) -* ---: Bezier curves. (line 83) +* ---: Bezier curves. (line 86) * -=: Self & prefix operators. (line 6) * -c: Options. (line 175) @@ -8506,12 +8508,10 @@ Index * 2D graphs: graph. (line 6) * 3D graphs: graph3. (line 6) * 3D grids: grid3. (line 6) -* 3D PostScript: three. (line 594) -* 3D rendering: Compiling from UNIX source. - (line 16) +* 3D PostScript: three. (line 593) * :: Arithmetic & logical. (line 73) -* ::: Bezier curves. (line 67) +* ::: Bezier curves. (line 70) * <: Arithmetic & logical. (line 41) * <=: Arithmetic & logical. @@ -8535,7 +8535,7 @@ Index * abs <1>: Mathematical functions. (line 35) * abs: Data types. (line 62) -* accel <1>: three. (line 520) +* accel <1>: three. (line 519) * accel: Paths and guides. (line 115) * access: Import. (line 6) * acknowledgments: Credits. (line 6) @@ -8545,9 +8545,9 @@ Index (line 6) * acosh: Mathematical functions. (line 6) -* add <1>: three. (line 284) +* add <1>: three. (line 283) * add: Frames and pictures. (line 196) -* addViews: three. (line 406) +* addViews: three. (line 405) * adjust: Pens. (line 115) * Ai: Mathematical functions. (line 48) @@ -8571,22 +8571,20 @@ Index * animation: animation. (line 6) * annotate: annotate. (line 6) * antialias <1>: Options. (line 144) -* antialias: three. (line 223) -* antialiasing: Compiling from UNIX source. - (line 16) +* antialias: three. (line 222) * append <1>: Arrays. (line 39) * append: Files. (line 36) -* arc: three. (line 296) +* arc: three. (line 295) * Arc: Paths and guides. (line 32) * arc: Paths and guides. (line 22) * ArcArrow: draw. (line 26) -* ArcArrow3: three. (line 561) +* ArcArrow3: three. (line 560) * ArcArrows: draw. (line 26) -* ArcArrows3: three. (line 561) -* arclength <1>: three. (line 520) +* ArcArrows3: three. (line 560) +* arclength <1>: three. (line 519) * arclength: Paths and guides. (line 142) * arcpoint: Paths and guides. (line 152) -* arctime <1>: three. (line 520) +* arctime <1>: three. (line 519) * arctime: Paths and guides. (line 146) * arguments: Default arguments. (line 6) * arithmetic operators: Arithmetic & logical. @@ -8598,10 +8596,10 @@ Index * Arrow: draw. (line 26) * arrow: Drawing commands. (line 31) * arrow keys: Tutorial. (line 37) -* Arrow3: three. (line 561) +* Arrow3: three. (line 560) * Arrows: draw. (line 26) * arrows: draw. (line 26) -* Arrows3: three. (line 561) +* Arrows3: three. (line 560) * as: Import. (line 68) * ascii: Data types. (line 286) * aSin: Mathematical functions. @@ -8631,8 +8629,9 @@ Index (line 6) * atleast: Bezier curves. (line 56) * attach <1>: graph. (line 416) -* attach: LaTeX usage. (line 51) -* autoadjust: three. (line 372) +* attach <2>: LaTeX usage. (line 51) +* attach: Frames and pictures. (line 252) +* autoadjust: three. (line 371) * autoimport: Options. (line 112) * automatic scaling: graph. (line 682) * axialshade: fill. (line 43) @@ -8641,11 +8640,11 @@ Index * azimuth: Data types. (line 126) * babel: babel. (line 6) * background color: Frames and pictures. (line 168) -* BackView: three. (line 399) +* BackView: three. (line 398) * Bar: draw. (line 19) -* Bar3: three. (line 561) +* Bar3: three. (line 560) * Bars: draw. (line 19) -* Bars3: three. (line 561) +* Bars3: three. (line 560) * barsize: draw. (line 19) * base modules: Base modules. (line 6) * basealign: Pens. (line 168) @@ -8653,18 +8652,18 @@ Index * batch mode: Tutorial. (line 6) * beep: Data types. (line 357) * BeginArcArrow: draw. (line 26) -* BeginArcArrow3: three. (line 561) +* BeginArcArrow3: three. (line 560) * BeginArrow: draw. (line 26) -* BeginArrow3: three. (line 561) +* BeginArrow3: three. (line 560) * BeginBar: draw. (line 19) -* BeginBar3: three. (line 561) +* BeginBar3: three. (line 560) * BeginDotMargin: draw. (line 42) -* BeginDotMargin3: three. (line 577) +* BeginDotMargin3: three. (line 576) * BeginMargin: draw. (line 42) -* BeginMargin3: three. (line 577) +* BeginMargin3: three. (line 576) * BeginPenMargin: draw. (line 42) -* BeginPenMargin2: three. (line 577) -* BeginPenMargin3: three. (line 577) +* BeginPenMargin2: three. (line 576) +* BeginPenMargin3: three. (line 576) * BeginPoint: label. (line 56) * Bessel: Mathematical functions. (line 48) @@ -8676,13 +8675,13 @@ Index (line 48) * Bi_deriv: Mathematical functions. (line 48) -* Billboard: three. (line 490) +* Billboard: three. (line 489) * binary: Files. (line 75) * binary format: Files. (line 75) * binary operators: Arithmetic & logical. (line 6) * binarytree: binarytree. (line 6) -* black stripes: three. (line 223) +* black stripes: three. (line 222) * Blank: draw. (line 26) * block.bottom: flowchart. (line 19) * block.bottomleft: flowchart. (line 19) @@ -8701,10 +8700,10 @@ Index (line 6) * Bottom: graph. (line 134) * BottomTop: graph. (line 140) -* BottomView: three. (line 399) +* BottomView: three. (line 398) * bounding box: Frames and pictures. (line 168) * Bounds: graph3. (line 21) -* box <1>: three. (line 318) +* box <1>: three. (line 317) * box: Frames and pictures. (line 22) * bp: Tutorial. (line 26) * break: Programming. (line 29) @@ -8720,14 +8719,14 @@ Index * C string: Data types. (line 191) * CAD: CAD. (line 6) * calculateTransform: Frames and pictures. (line 107) -* camera: three. (line 367) +* camera: three. (line 366) * casts: Casts. (line 6) * cbrt: Mathematical functions. (line 6) * cd: Files. (line 25) * ceil: Mathematical functions. (line 26) -* center: three. (line 351) +* center: three. (line 350) * Center: label. (line 61) * checker: Pens. (line 251) * Chinese: unicode. (line 12) @@ -8736,7 +8735,7 @@ Index * Ci: Mathematical functions. (line 48) * circle <1>: flowchart. (line 64) -* circle: three. (line 292) +* circle: three. (line 291) * Circle: Paths and guides. (line 17) * circle: Paths and guides. (line 10) * circlebarframe: markers. (line 18) @@ -8744,7 +8743,7 @@ Index * clamped: graph. (line 37) * clear <1>: Debugger. (line 23) * clear: Files. (line 92) -* clip: fill. (line 111) +* clip: fill. (line 115) * CLZ: Arithmetic & logical. (line 80) * cm: Tutorial. (line 63) @@ -8789,7 +8788,7 @@ Index * convert <3>: Files. (line 154) * convert: Configuring. (line 67) * convertOptions: Options. (line 131) -* Coons shading: fill. (line 74) +* Coons shading: fill. (line 78) * copy: Arrays. (line 174) * Cos: Mathematical functions. (line 20) @@ -8809,10 +8808,10 @@ Index (line 80) * cubicroots: Arrays. (line 318) * curl <1>: three. (line 6) -* curl: Bezier curves. (line 63) +* curl: Bezier curves. (line 66) * curlSpecifier: Paths and guides. (line 394) * currentpen: Pens. (line 6) -* currentprojection: three. (line 396) +* currentprojection: three. (line 395) * curve: slopefield. (line 20) * custom axis types: graph. (line 144) * custom mark routine: graph. (line 577) @@ -8820,7 +8819,7 @@ Index * cut: Paths and guides. (line 240) * cycle <1>: three. (line 6) * cycle: Tutorial. (line 75) -* cyclic <1>: three. (line 520) +* cyclic <1>: three. (line 519) * cyclic <2>: Arrays. (line 39) * cyclic: Paths and guides. (line 74) * Cyrillic: unicode. (line 7) @@ -8836,7 +8835,7 @@ Index * default arguments: Default arguments. (line 6) * defaultformat: graph. (line 175) * DefaultHead: draw. (line 26) -* DefaultHead3: three. (line 561) +* DefaultHead3: three. (line 560) * defaultpen: Pens. (line 46) * defaultrender: three. (line 47) * deferred drawing: simplex. (line 6) @@ -8851,7 +8850,7 @@ Index * diagonal: Arrays. (line 303) * diamond: flowchart. (line 57) * dimension: Arrays. (line 367) -* dir <1>: three. (line 520) +* dir <1>: three. (line 519) * dir <2>: Paths and guides. (line 98) * dir <3>: Data types. (line 87) * dir: Search paths. (line 10) @@ -8867,11 +8866,11 @@ Index * dot <2>: Data types. (line 100) * dot: draw. (line 83) * DotMargin: draw. (line 42) -* DotMargin3: three. (line 577) +* DotMargin3: three. (line 576) * DotMargins: draw. (line 42) -* DotMargins3: three. (line 577) +* DotMargins3: three. (line 576) * dotted: Pens. (line 95) -* double deferred drawing: three. (line 269) +* double deferred drawing: three. (line 268) * double precision: Files. (line 75) * draw: three. (line 112) * Draw: Frames and pictures. (line 147) @@ -8897,22 +8896,22 @@ Index * else: Programming. (line 8) * emacs: Editing modes. (line 6) * embed: embed. (line 6) -* Embedded: three. (line 490) +* Embedded: three. (line 489) * empty: Frames and pictures. (line 7) * EndArcArrow: draw. (line 26) -* EndArcArrow3: three. (line 561) +* EndArcArrow3: three. (line 560) * EndArrow: draw. (line 26) -* EndArrow3: three. (line 561) +* EndArrow3: three. (line 560) * EndBar: draw. (line 19) -* EndBar3: three. (line 561) +* EndBar3: three. (line 560) * EndDotMargin: draw. (line 42) -* EndDotMargin3: three. (line 577) +* EndDotMargin3: three. (line 576) * endl: Files. (line 61) * EndMargin: draw. (line 42) -* EndMargin3: three. (line 577) +* EndMargin3: three. (line 576) * EndPenMargin: draw. (line 42) -* EndPenMargin2: three. (line 577) -* EndPenMargin3: three. (line 577) +* EndPenMargin2: three. (line 576) +* EndPenMargin3: three. (line 576) * EndPoint: label. (line 56) * envelope: Frames and pictures. (line 22) * environment variables: Configuring. (line 87) @@ -8951,12 +8950,12 @@ Index * extension <1>: MetaPost. (line 10) * extension: Paths and guides. (line 235) * external: embed. (line 13) -* extrude: three. (line 514) +* extrude: three. (line 513) * F: Mathematical functions. (line 48) * fabs: Mathematical functions. (line 6) -* face: three. (line 602) +* face: three. (line 601) * factorial: Mathematical functions. (line 39) * Fedora: UNIX binary distributions. @@ -8965,7 +8964,7 @@ Index * fft <1>: math. (line 26) * fft: Arrays. (line 246) * FFTW: Compiling from UNIX source. - (line 58) + (line 57) * file <1>: Debugger. (line 45) * file: Files. (line 6) * Fill: Frames and pictures. (line 133) @@ -8981,7 +8980,7 @@ Index * find: Data types. (line 226) * firstcut: Paths and guides. (line 250) * fit: Frames and pictures. (line 103) -* fit3: three. (line 282) +* fit3: three. (line 281) * fixedscaling: Frames and pictures. (line 74) * floor: Mathematical functions. (line 26) @@ -8998,17 +8997,15 @@ Index * format: Data types. (line 269) * forum: Help. (line 6) * frame: Frames and pictures. (line 7) -* freeglut: Compiling from UNIX source. - (line 16) * from: Import. (line 17) -* FrontView: three. (line 399) +* FrontView: three. (line 398) * function declarations: Functions. (line 67) -* function shading: fill. (line 96) -* Function shading: fill. (line 96) +* function shading: fill. (line 100) +* Function shading: fill. (line 100) * functions <1>: Mathematical functions. (line 6) * functions: Functions. (line 6) -* functionshade: fill. (line 96) +* functionshade: fill. (line 100) * gamma: Mathematical functions. (line 6) * Gaussrand: Mathematical functions. @@ -9020,10 +9017,10 @@ Index * getstring: Files. (line 117) * gettriple: Files. (line 117) * glOptions <1>: Options. (line 131) -* glOptions: three. (line 223) +* glOptions: three. (line 222) * GNU Scientific Library: Mathematical functions. (line 48) -* gouraudshade: fill. (line 58) +* gouraudshade: fill. (line 62) * Gradient: palette. (line 25) * gradient shading: fill. (line 32) * graph: graph. (line 6) @@ -9040,7 +9037,7 @@ Index * gsl: Mathematical functions. (line 48) * GSL: Compiling from UNIX source. - (line 58) + (line 57) * gsOptions: Options. (line 131) * GUI: GUI. (line 6) * GUI installation: GUI installation. (line 6) @@ -9058,14 +9055,14 @@ Index * hex: Data types. (line 283) * hexidecimal <1>: Pens. (line 59) * hexidecimal: Data types. (line 283) -* hidden surface removal: three. (line 602) +* hidden surface removal: three. (line 601) * histogram: Mathematical functions. (line 39) * history <1>: Interactive mode. (line 59) * history: Files. (line 142) * historylines: Interactive mode. (line 64) * HookHead: draw. (line 26) -* HookHead3: three. (line 561) +* HookHead3: three. (line 560) * Horizontal: flowchart. (line 81) * hyperrefOptions: Options. (line 131) * hypot: Mathematical functions. @@ -9074,12 +9071,12 @@ Index (line 48) * i_scaled: Mathematical functions. (line 48) -* iconic: three. (line 223) +* iconic: three. (line 222) * identity <1>: Arrays. (line 300) * identity <2>: Mathematical functions. (line 6) * identity: Transforms. (line 24) -* identity4: three. (line 450) +* identity4: three. (line 449) * if: Programming. (line 8) * IgnoreAspect: Frames and pictures. (line 58) * image: palette. (line 34) @@ -9118,22 +9115,22 @@ Index * interp: Arithmetic & logical. (line 76) * interpolate: interpolate. (line 6) -* intersect <1>: three. (line 520) +* intersect <1>: three. (line 519) * intersect <2>: math. (line 13) * intersect: Paths and guides. (line 184) -* intersectionpoint <1>: three. (line 520) +* intersectionpoint <1>: three. (line 519) * intersectionpoint <2>: math. (line 17) * intersectionpoint: Paths and guides. (line 227) -* intersectionpoints <1>: three. (line 520) +* intersectionpoints <1>: three. (line 519) * intersectionpoints: Paths and guides. (line 231) -* intersections <1>: three. (line 520) +* intersections <1>: three. (line 519) * intersections: Paths and guides. (line 195) * InTicks: graph3. (line 35) * intMax: Data types. (line 28) * intMin: Data types. (line 28) * inverse <1>: Arrays. (line 306) * inverse: Transforms. (line 16) -* invert: three. (line 440) +* invert: three. (line 439) * invisible: Pens. (line 39) * isnan: Data types. (line 33) * J: Mathematical functions. @@ -9147,13 +9144,13 @@ Index * KDE editor: Editing modes. (line 49) * keepAspect <1>: LaTeX usage. (line 51) * keepAspect: Frames and pictures. (line 54) -* keyboard bindings:: three. (line 182) +* keyboard bindings:: three. (line 181) * keys: Arrays. (line 39) * keyword: Named arguments. (line 37) * keyword-only: Named arguments. (line 37) * keywords: Named arguments. (line 6) * Korean: unicode. (line 12) -* label: three. (line 484) +* label: three. (line 483) * Label <1>: graph. (line 343) * Label: label. (line 14) * label: clip. (line 16) @@ -9179,13 +9176,13 @@ Index * LeftRight: graph. (line 290) * LeftSide: label. (line 61) * LeftTicks: graph. (line 161) -* LeftView: three. (line 399) +* LeftView: three. (line 398) * legend <1>: graph. (line 432) * legend <2>: draw. (line 64) * legend: Drawing commands. (line 31) * Legendre: Mathematical functions. (line 48) -* length <1>: three. (line 520) +* length <1>: three. (line 519) * length <2>: Arrays. (line 39) * length <3>: Paths and guides. (line 65) * length: Data types. (line 62) @@ -9226,10 +9223,10 @@ Index * makepen: Pens. (line 300) * map: Arrays. (line 141) * Margin: draw. (line 42) -* Margin3: three. (line 577) -* margins: three. (line 275) +* Margin3: three. (line 576) +* margins: three. (line 274) * Margins: draw. (line 42) -* Margins3: three. (line 577) +* Margins3: three. (line 576) * mark: graph. (line 485) * markangle: markers. (line 38) * marker: graph. (line 485) @@ -9240,28 +9237,28 @@ Index * math: math. (line 6) * mathematical functions: Mathematical functions. (line 6) -* max <1>: three. (line 520) +* max <1>: three. (line 519) * max <2>: Arrays. (line 225) * max <3>: Frames and pictures. (line 7) * max: Paths and guides. (line 267) * maxbound: Data types. (line 106) -* maxtile: three. (line 223) +* maxtile: three. (line 222) * maxtimes: Paths and guides. (line 222) -* maxviewport: three. (line 223) +* maxviewport: three. (line 222) * MetaPost: MetaPost. (line 6) -* MetaPost ... : Bezier curves. (line 67) +* MetaPost ... : Bezier curves. (line 70) * MetaPost cutafter: Paths and guides. (line 255) * MetaPost cutbefore: Paths and guides. (line 251) * MetaPost pickup: Pens. (line 6) * MetaPost whatever: MetaPost. (line 10) * Microsoft Windows: Microsoft Windows. (line 6) * MidArcArrow: draw. (line 26) -* MidArcArrow3: three. (line 561) +* MidArcArrow3: three. (line 560) * MidArrow: draw. (line 26) -* MidArrow3: three. (line 561) +* MidArrow3: three. (line 560) * midpoint: Paths and guides. (line 169) * MidPoint: label. (line 56) -* min <1>: three. (line 520) +* min <1>: three. (line 519) * min <2>: Arrays. (line 218) * min <3>: Frames and pictures. (line 7) * min: Paths and guides. (line 263) @@ -9275,12 +9272,10 @@ Index * mode: Files. (line 75) * monotonic: graph. (line 37) * mouse: GUI. (line 6) -* mouse bindings: three. (line 150) +* mouse bindings: three. (line 149) * Move: Pens. (line 339) * MoveQuiet: Pens. (line 345) * multisample: three. (line 140) -* multisampling: Compiling from UNIX source. - (line 16) * N: Tutorial. (line 106) * name: Files. (line 88) * named arguments: Named arguments. (line 6) @@ -9297,10 +9292,10 @@ Index * NoFill <1>: Frames and pictures. (line 141) * NoFill: draw. (line 26) * NoMargin: draw. (line 42) -* NoMargin3: three. (line 577) +* NoMargin3: three. (line 576) * none: Files. (line 61) * None: draw. (line 19) -* normal: three. (line 506) +* normal: three. (line 505) * nosafe: Options. (line 164) * NOT: Arithmetic & logical. (line 80) @@ -9310,13 +9305,13 @@ Index * null: Structures. (line 6) * nullpen <1>: Frames and pictures. (line 127) * nullpen: label. (line 14) -* NURBS: three. (line 376) -* O: three. (line 287) +* NURBS: three. (line 375) +* O: three. (line 286) * obj: obj. (line 9) -* oblique: three. (line 332) -* obliqueX: three. (line 340) -* obliqueY: three. (line 347) -* obliqueZ: three. (line 332) +* oblique: three. (line 331) +* obliqueX: three. (line 339) +* obliqueY: three. (line 346) +* obliqueZ: three. (line 331) * ode: ode. (line 9) * offset <1>: Options. (line 169) * offset: Pens. (line 115) @@ -9341,7 +9336,7 @@ Index * OR: Arithmetic & logical. (line 80) * orientation: Frames and pictures. (line 95) -* orthographic: three. (line 351) +* orthographic: three. (line 350) * outformat: three. (line 140) * outprefix: Frames and pictures. (line 83) * output <1>: Options. (line 144) @@ -9378,33 +9373,33 @@ Index * pdfviewerOptions: Options. (line 131) * pen: Pens. (line 6) * PenMargin: draw. (line 42) -* PenMargin2: three. (line 577) -* PenMargin3: three. (line 577) +* PenMargin2: three. (line 576) +* PenMargin3: three. (line 576) * PenMargins: draw. (line 42) -* PenMargins2: three. (line 577) -* PenMargins3: three. (line 577) +* PenMargins2: three. (line 576) +* PenMargins3: three. (line 576) * periodic: graph. (line 37) * perl: LaTeX usage. (line 30) * perpendicular: geometry. (line 6) -* perspective: three. (line 376) +* perspective: three. (line 375) * picture: Frames and pictures. (line 35) * picture alignment: Frames and pictures. (line 209) * piecewisestraight: Paths and guides. (line 81) -* pixel: three. (line 584) +* pixel: three. (line 583) * Pl: Mathematical functions. (line 48) * plain: plain. (line 6) * planar: three. (line 89) -* plane: three. (line 314) -* planeproject: three. (line 503) -* point <1>: three. (line 520) +* plane: three. (line 313) +* planeproject: three. (line 502) +* point <1>: three. (line 519) * point: Paths and guides. (line 84) * polar: Data types. (line 121) * polargraph: graph. (line 90) * polygon: graph. (line 485) * pop: Arrays. (line 39) * Portrait: Frames and pictures. (line 95) -* postcontrol <1>: three. (line 520) +* postcontrol <1>: three. (line 519) * postcontrol: Paths and guides. (line 135) * postfix operators: Self & prefix operators. (line 19) @@ -9413,9 +9408,9 @@ Index * PostScript subpath: Tutorial. (line 134) * pow10: Mathematical functions. (line 6) -* prc: three. (line 244) +* prc: three. (line 243) * precision: Files. (line 92) -* precontrol <1>: three. (line 520) +* precontrol <1>: three. (line 519) * precontrol: Paths and guides. (line 128) * prefix operators: Self & prefix operators. (line 6) @@ -9440,11 +9435,11 @@ Index * quotient: Arithmetic & logical. (line 6) * RadialShade: Frames and pictures. (line 159) -* radialshade: fill. (line 49) +* radialshade: fill. (line 51) * RadialShadeDraw: Frames and pictures. (line 163) * radians: Mathematical functions. (line 17) -* radius <1>: three. (line 520) +* radius <1>: three. (line 519) * radius: Paths and guides. (line 124) * Rainbow: palette. (line 12) * rand: Mathematical functions. @@ -9479,7 +9474,7 @@ Index * restore: Frames and pictures. (line 265) * restricted: Structures. (line 6) * return: Debugger. (line 48) -* reverse <1>: three. (line 520) +* reverse <1>: three. (line 519) * reverse <2>: Arrays. (line 146) * reverse <3>: Paths and guides. (line 172) * reverse: Data types. (line 250) @@ -9491,8 +9486,8 @@ Index * Right: graph. (line 287) * RightSide: label. (line 61) * RightTicks: graph. (line 161) -* RightView: three. (line 399) -* rotate: three. (line 471) +* RightView: three. (line 398) +* rotate: three. (line 470) * Rotate: label. (line 36) * Rotate(pair z): label. (line 39) * round: Mathematical functions. @@ -9509,13 +9504,13 @@ Index * safe: Options. (line 164) * save: Frames and pictures. (line 262) * saveline: Files. (line 134) -* scale: three. (line 470) +* scale: three. (line 469) * Scale: graph. (line 698) * scale <1>: graph. (line 682) * scale <2>: Transforms. (line 39) * scale: Pens. (line 115) * Scale: label. (line 45) -* scale3: three. (line 467) +* scale3: three. (line 466) * scaled graph: graph. (line 663) * scientific graph: graph. (line 397) * scroll: Files. (line 108) @@ -9538,12 +9533,12 @@ Index * sgn: Mathematical functions. (line 26) * shading: fill. (line 32) -* shift <1>: three. (line 455) +* shift <1>: three. (line 454) * shift: Transforms. (line 27) * Shift: label. (line 33) * shiftless: Transforms. (line 53) * shipout: Frames and pictures. (line 83) -* showtarget: three. (line 351) +* showtarget: three. (line 350) * Si: Mathematical functions. (line 48) * signedint: Files. (line 75) @@ -9560,14 +9555,14 @@ Index * singlereal: Files. (line 75) * sinh: Mathematical functions. (line 6) -* SixViews: three. (line 414) -* SixViewsFR: three. (line 414) -* SixViewsUS: three. (line 414) +* SixViews: three. (line 413) +* SixViewsFR: three. (line 413) +* SixViewsUS: three. (line 413) * size <1>: Options. (line 144) -* size <2>: three. (line 520) +* size <2>: three. (line 519) * size <3>: Frames and pictures. (line 43) * size: Paths and guides. (line 70) -* size3: three. (line 272) +* size3: three. (line 271) * slant: Transforms. (line 45) * Slant: label. (line 42) * sleep: Data types. (line 351) @@ -9599,7 +9594,7 @@ Index * step: Debugger. (line 39) * stickframe: markers. (line 16) * stop: Debugger. (line 10) -* straight: three. (line 520) +* straight: three. (line 519) * Straight: graph. (line 31) * straight: Paths and guides. (line 77) * strftime: Data types. (line 298) @@ -9609,7 +9604,7 @@ Index * strptime: Data types. (line 306) * struct: Structures. (line 6) * structures: Structures. (line 6) -* subpath <1>: three. (line 520) +* subpath <1>: three. (line 519) * subpath: Paths and guides. (line 175) * subpictures: Frames and pictures. (line 103) * substr: Data types. (line 246) @@ -9633,13 +9628,13 @@ Index (line 6) * tanh: Mathematical functions. (line 6) -* target: three. (line 351) +* target: three. (line 350) * tell: Files. (line 92) * tension <1>: three. (line 6) * tension: Bezier curves. (line 56) * tensionSpecifier: Paths and guides. (line 388) -* tensor product shading: fill. (line 74) -* tensorshade: fill. (line 74) +* tensor product shading: fill. (line 78) +* tensorshade: fill. (line 78) * tessellation: three. (line 112) * tex <1>: Options. (line 144) * tex: Frames and pictures. (line 278) @@ -9647,7 +9642,7 @@ Index * TeX string: Data types. (line 181) * texcommand: Configuring. (line 67) * TeXHead: draw. (line 26) -* TeXHead3: three. (line 561) +* TeXHead3: three. (line 560) * texpath <1>: label. (line 115) * texpath: Configuring. (line 67) * texpreamble: Frames and pictures. (line 286) @@ -9659,9 +9654,9 @@ Index * thin: three. (line 123) * this: Structures. (line 6) * three: three. (line 6) -* ThreeViews: three. (line 414) -* ThreeViewsFR: three. (line 414) -* ThreeViewsUS: three. (line 414) +* ThreeViews: three. (line 413) +* ThreeViewsFR: three. (line 413) +* ThreeViewsUS: three. (line 413) * tick: graph. (line 343) * Ticks: graph. (line 161) * ticks: graph. (line 161) @@ -9672,25 +9667,25 @@ Index * time: Data types. (line 298) * times: Paths and guides. (line 209) * Top: graph. (line 137) -* TopView: three. (line 399) +* TopView: three. (line 398) * trace: Debugger. (line 51) * trailingzero: graph. (line 175) -* transform <1>: three. (line 495) +* transform <1>: three. (line 494) * transform: Transforms. (line 6) -* transform3: three. (line 450) +* transform3: three. (line 449) * transparency: Pens. (line 222) * transpose: Arrays. (line 205) * tree: tree. (line 9) * trembling: trembling. (line 6) * triangle: geometry. (line 6) * triangles: three. (line 112) -* triangulate: contour. (line 157) +* triangulate: contour. (line 156) * tridiagonal: Arrays. (line 266) * trigonometric integrals: Mathematical functions. (line 48) * triple: Data types. (line 110) * TrueMargin: draw. (line 42) -* TrueMargin3: three. (line 577) +* TrueMargin3: three. (line 576) * tube <1>: tube. (line 6) * tube: three. (line 123) * tutorial: Tutorial. (line 6) @@ -9700,16 +9695,16 @@ Index * U3D: embed. (line 24) * undefined: Paths and guides. (line 271) * UnFill: Frames and pictures. (line 152) -* unfill: fill. (line 106) +* unfill: fill. (line 110) * UnFill: draw. (line 26) * unicode: unicode. (line 6) * uniform: Arrays. (line 155) * Uninstall: Uninstall. (line 6) * unique: math. (line 64) * unit: Data types. (line 80) -* unitbox <1>: three. (line 320) +* unitbox <1>: three. (line 319) * unitbox: Tutorial. (line 155) -* unitcircle <1>: three. (line 287) +* unitcircle <1>: three. (line 286) * unitcircle: Tutorial. (line 128) * unitrand: Mathematical functions. (line 39) @@ -9719,7 +9714,7 @@ Index (line 6) * unpacking: Rest arguments. (line 39) * unravel: Import. (line 30) -* up: three. (line 351) +* up: three. (line 350) * update: Files. (line 36) * UpsideDown: Frames and pictures. (line 95) * usepackage: Frames and pictures. (line 291) @@ -9739,10 +9734,10 @@ Index * vertex-dependent colors: three. (line 81) * Vertical: flowchart. (line 81) * viewportheight: LaTeX usage. (line 51) -* viewportmargin: three. (line 275) -* viewportsize: three. (line 275) +* viewportmargin: three. (line 274) +* viewportsize: three. (line 274) * viewportwidth: LaTeX usage. (line 51) -* views: three. (line 244) +* views: three. (line 243) * vim: Editing modes. (line 33) * virtual functions: Structures. (line 181) * void: Data types. (line 10) @@ -9757,7 +9752,7 @@ Index * word: Arrays. (line 354) * write <1>: Arrays. (line 394) * write: Files. (line 53) -* X: three. (line 287) +* X: three. (line 286) * xasy: GUI. (line 6) * xaxis3: graph3. (line 7) * xdr: Files. (line 75) @@ -9769,15 +9764,15 @@ Index (line 80) * xpart: Data types. (line 91) * xscale: Transforms. (line 33) -* xscale3: three. (line 458) +* xscale3: three. (line 457) * xtick: graph. (line 343) -* XY: three. (line 480) +* XY: three. (line 479) * XYEquals: graph3. (line 21) * XYZero: graph3. (line 21) * XZEquals: graph3. (line 21) * XZero: graph. (line 275) * XZZero: graph3. (line 21) -* Y <1>: three. (line 287) +* Y <1>: three. (line 286) * Y: Mathematical functions. (line 6) * yaxis3: graph3. (line 7) @@ -9786,14 +9781,14 @@ Index * ylimits: graph. (line 637) * ypart: Data types. (line 94) * yscale: Transforms. (line 36) -* yscale3: three. (line 461) +* yscale3: three. (line 460) * ytick: graph. (line 343) -* YX: three. (line 495) -* YZ: three. (line 495) +* YX: three. (line 494) +* YZ: three. (line 494) * YZEquals: graph3. (line 21) * YZero: graph. (line 125) * YZZero: graph3. (line 21) -* Z: three. (line 287) +* Z: three. (line 286) * zaxis3: graph3. (line 7) * zero_Ai: Mathematical functions. (line 48) @@ -9809,9 +9804,9 @@ Index * zeta: Mathematical functions. (line 48) * zpart: Data types. (line 163) -* zscale3: three. (line 464) -* ZX: three. (line 495) -* ZY: three. (line 495) +* zscale3: three. (line 463) +* ZX: three. (line 494) +* ZY: three. (line 494) * |: Arithmetic & logical. (line 62) * ||: Arithmetic & logical. @@ -9827,139 +9822,138 @@ Node: UNIX binary distributions11503 Node: MacOS X binary distributions12609 Node: Microsoft Windows13493 Ref: psview14203 -Node: Configuring15135 -Node: Search paths19349 -Node: Compiling from UNIX source20191 -Ref: multisampling20781 -Node: Editing modes23176 -Node: Subversion25608 -Node: Uninstall26071 -Node: Tutorial26421 -Ref: unitcircle30719 -Node: Drawing commands32655 -Node: draw34366 -Ref: arrows35514 -Node: fill40757 -Ref: gradient shading41801 -Node: clip46029 -Node: label46621 -Ref: Label47219 -Node: Bezier curves53022 -Node: Programming56599 -Ref: array iteration57413 -Node: Data types58494 -Ref: format67691 -Node: Paths and guides71944 -Ref: circle72198 -Ref: extension81618 -Node: Pens88301 -Ref: fillrule95669 -Ref: basealign96566 -Ref: transparency99392 -Ref: makepen102835 -Ref: overwrite103673 -Node: Transforms104883 -Node: Frames and pictures106674 -Ref: envelope107815 -Ref: size108898 -Ref: unitsize109885 -Ref: shipout110945 -Ref: filltype113278 -Ref: add116415 -Ref: add about117361 -Ref: tex120299 -Node: Files121173 -Ref: cd122156 -Ref: scroll126830 -Node: Variable initializers129745 -Node: Structures132470 -Node: Operators139914 -Node: Arithmetic & logical140228 -Node: Self & prefix operators142201 -Node: User-defined operators142989 -Node: Implicit scaling143900 -Node: Functions144463 -Ref: stack overflow147216 -Node: Default arguments147780 -Node: Named arguments148519 -Node: Rest arguments151090 -Node: Mathematical functions154211 -Node: Arrays158876 -Ref: sort165865 -Ref: tridiagonal168269 -Ref: solve169497 -Node: Slices173690 -Node: Casts177580 -Node: Import179545 -Node: Static184782 -Node: LaTeX usage187676 -Node: Base modules194088 -Node: plain196588 -Node: simplex197240 -Node: math197513 -Node: interpolate200218 -Node: geometry200497 -Node: trembling201091 -Node: stats201442 -Node: patterns201702 -Node: markers201938 -Node: tree203721 -Node: binarytree203909 -Node: drawtree204529 -Node: syzygy204733 -Node: feynman205007 -Node: roundedpath205282 -Node: animation205565 -Ref: animate205985 -Node: embed207124 -Node: slide208151 -Node: MetaPost208491 -Node: unicode209207 -Node: latin1210095 -Node: babel210463 -Node: labelpath210692 -Node: labelpath3211512 -Node: annotate211823 -Node: CAD212294 -Node: graph212604 -Ref: ticks219733 -Ref: pathmarkers233060 -Ref: marker233525 -Ref: markuniform233876 -Ref: errorbars235667 -Ref: automatic scaling239704 -Node: palette250333 -Ref: images250451 -Ref: image254623 -Ref: logimage255101 -Ref: penimage256162 -Ref: penfunctionimage256383 -Node: three257107 -Ref: PostScript3D282792 -Node: obj284484 -Node: graph3284736 -Ref: GaussianSurface289891 -Node: grid3290995 -Node: solids291735 -Node: tube292683 -Node: flowchart294918 -Node: contour299487 -Node: contour3304612 -Node: slopefield304919 -Node: ode306356 -Node: Options306616 -Ref: configuration file312661 -Ref: settings312661 -Ref: convert313862 -Node: Interactive mode316829 -Ref: history318982 -Node: GUI320287 -Node: GUI installation320790 -Node: GUI usage321920 -Node: PostScript to Asymptote322823 -Node: Help323579 -Node: Debugger325315 -Node: Credits327100 -Node: Index328032 +Node: Configuring15137 +Node: Search paths19351 +Node: Compiling from UNIX source20193 +Node: Editing modes23051 +Node: Subversion25483 +Node: Uninstall25946 +Node: Tutorial26296 +Ref: unitcircle30594 +Node: Drawing commands32530 +Node: draw34241 +Ref: arrows35389 +Node: fill40632 +Ref: gradient shading41676 +Node: clip46231 +Node: label46823 +Ref: Label47421 +Node: Bezier curves53224 +Node: Programming56926 +Ref: array iteration57740 +Node: Data types58821 +Ref: format68018 +Node: Paths and guides72271 +Ref: circle72525 +Ref: extension81945 +Node: Pens88628 +Ref: fillrule95996 +Ref: basealign96893 +Ref: transparency99719 +Ref: makepen103162 +Ref: overwrite104000 +Node: Transforms105210 +Node: Frames and pictures107001 +Ref: envelope108142 +Ref: size109225 +Ref: unitsize110212 +Ref: shipout111272 +Ref: filltype113605 +Ref: add116742 +Ref: add about117688 +Ref: tex120626 +Node: Files121500 +Ref: cd122483 +Ref: scroll127157 +Node: Variable initializers130072 +Node: Structures132797 +Node: Operators140241 +Node: Arithmetic & logical140555 +Node: Self & prefix operators142528 +Node: User-defined operators143316 +Node: Implicit scaling144227 +Node: Functions144790 +Ref: stack overflow147543 +Node: Default arguments148107 +Node: Named arguments148846 +Node: Rest arguments151417 +Node: Mathematical functions154538 +Node: Arrays159203 +Ref: sort166192 +Ref: tridiagonal168596 +Ref: solve169824 +Node: Slices174017 +Node: Casts177907 +Node: Import179872 +Node: Static185109 +Node: LaTeX usage188003 +Node: Base modules194415 +Node: plain196915 +Node: simplex197567 +Node: math197840 +Node: interpolate200545 +Node: geometry200824 +Node: trembling201418 +Node: stats201687 +Node: patterns201947 +Node: markers202183 +Node: tree203966 +Node: binarytree204154 +Node: drawtree204774 +Node: syzygy204978 +Node: feynman205252 +Node: roundedpath205527 +Node: animation205810 +Ref: animate206230 +Node: embed207369 +Node: slide208396 +Node: MetaPost208736 +Node: unicode209452 +Node: latin1210340 +Node: babel210708 +Node: labelpath210937 +Node: labelpath3211757 +Node: annotate212068 +Node: CAD212539 +Node: graph212849 +Ref: ticks219978 +Ref: pathmarkers233305 +Ref: marker233770 +Ref: markuniform234121 +Ref: errorbars235912 +Ref: automatic scaling239949 +Node: palette250578 +Ref: images250696 +Ref: image254868 +Ref: logimage255346 +Ref: penimage256407 +Ref: penfunctionimage256628 +Node: three257352 +Ref: PostScript3D282920 +Node: obj284612 +Node: graph3284864 +Ref: GaussianSurface290019 +Node: grid3291123 +Node: solids291863 +Node: tube292811 +Node: flowchart295046 +Node: contour299615 +Node: contour3304705 +Node: slopefield305012 +Node: ode306449 +Node: Options306709 +Ref: configuration file312754 +Ref: settings312754 +Ref: convert313955 +Node: Interactive mode316922 +Ref: history319075 +Node: GUI320380 +Node: GUI installation320883 +Node: GUI usage322013 +Node: PostScript to Asymptote322916 +Node: Help323672 +Node: Debugger325408 +Node: Credits327193 +Node: Index328125 End Tag Table diff --git a/Master/texmf-dist/doc/man/man1/xasy.man1.pdf b/Master/texmf-dist/doc/man/man1/xasy.man1.pdf Binary files differindex ebad4890ee3..9779ad3d7ef 100644 --- a/Master/texmf-dist/doc/man/man1/xasy.man1.pdf +++ b/Master/texmf-dist/doc/man/man1/xasy.man1.pdf |