diff options
Diffstat (limited to 'Master/texmf-doc/doc/russian/mpman-ru/manfig-ru.mp')
-rw-r--r-- | Master/texmf-doc/doc/russian/mpman-ru/manfig-ru.mp | 956 |
1 files changed, 0 insertions, 956 deletions
diff --git a/Master/texmf-doc/doc/russian/mpman-ru/manfig-ru.mp b/Master/texmf-doc/doc/russian/mpman-ru/manfig-ru.mp deleted file mode 100644 index bdbe2e99d95..00000000000 --- a/Master/texmf-doc/doc/russian/mpman-ru/manfig-ru.mp +++ /dev/null @@ -1,956 +0,0 @@ -% $Id: manfig.mp,v 1.4 2005/03/27 17:29:22 karl Exp $ -% Figures for MetaPost manual, by John Hobby. Public domain. - -filenametemplate "%j-%c.mps"; - -%%% This redefinition of dotlabel draws dots as a closed path -%%% which are rendered more smoothly in Adobe Reader. -vardef dotlabel@#(expr s,z) text t_ = - label@#(s,z) t_; - addto currentpicture - contour (makepath pencircle scaled dotlabeldiam) shifted z t_; -enddef; - -%%% TeX macro \place is only used in figure 0. -verbatimtex -\input texnames.sty -\font\tenrm=kcmr10 -\def\place#1{\vphantom{FiMP}\smash{\tenrm #1}} -etex - -%%% The boxes package is only used in figure 0. -input boxes - -beginfig(0); -ba.dy = bb.dy = d.dy = 12bp; -d.dx = 100bp; -boxit.aa(btex \place{Рисунки на MetaPost} etex); -boxit.ab(btex \place{Документ \TeX} etex); -boxit.ba(btex \hbox to 75bp {\hfil\place{MetaPost}\hfil} etex); -boxit.bb.(btex \hbox to 75bp {\hfil\place{\TeX\ или \LaTeX}\hfil} etex); -boxit.ca(btex \place{Рисунки на PostScript} etex); -boxit.cb(btex \place{{\tt dvi}-файл} etex); -boxit.d(btex \place{\tt dvips} etex); -boxit.e(btex PostScript etex); -boxit.f(btex \vbox{ - \hbox to 80bp {\hfil\hbox{\tenrm Охватывающая}\hfil} - \hbox to 80bp {\hfil\hbox{\tenrm рамка}\hfil} - } etex scaled .74); -ba.n - aa.s = ca.n - ba.s -= bb.n - ab.s = cb.n - bb.s -= e.n - d.s = down * 25bp; -ypart cb.s - ypart d.n = 25bp; -e.s = origin; -ypart ca.s = ypart cb.s; -xpart aa.n = xpart 0.1[d.nw,d.ne]; -xpart ab.n = xpart 0.9[d.nw,d.ne]; -drawunboxed(aa,ab,ca,cb,e); -drawboxed(ba,bb,d); -drawarrow aa.s -- top ba.n; drawarrow ab.s -- top bb.n; -drawarrow ba.s -- top ca.n; drawarrow bb.s -- top cb.n; -drawarrow ca.s -- top 0.1[d.nw,d.ne]; -drawarrow cb.s -- top 0.9[d.nw,d.ne]; -drawarrow d.s -- top e.n; -path p; -p = ca.e{right} .. {right}bb.w; -f.c = point .5 of p; -drawunboxed(f); -draw p cutafter bpath f dashed evenly; -drawarrow p cutbefore subpath (1,3) of bpath f dashed evenly; -endfig; - - -beginfig(1); -draw (20,20)--(0,0)--(0,30)--(30,0)--(0,0); -endfig; - - -beginfig(2); numeric u; -u=1cm; -draw (2u,2u)--(0,0)--(0,3u)--(3u,0)--(0,0); -pickup pencircle scaled 4pt; -for i=0 upto 2: - for j=0 upto 2: - drawdot (i*u,j*u); - endfor -endfor -endfig; - - -beginfig(3); -z0 = (0,0); z1 = (60,40); -z2 = (40,90); z3 = (10,70); -z4 = (30,50); -draw z0..z1..z2..z3..z4; -dotlabels.top(0,2,4); -dotlabels.lft(3); -dotlabels.lrt(1); -endfig; - - -beginfig(104); -z0 = (0,0); z1 = (60,40); -z2 = (40,90); z3 = (10,70); -z4 = (30,50); -draw z0..z1..z2..z3..z4..cycle; -dotlabels.top(2,4); -dotlabels.lft(0,3); -dotlabels.lrt(1); -endfig; - - -beginfig(204); -z0 = (0,0); z1 = (60,40); -z2 = (40,90); z3 = (10,70); -z4 = (30,50); -draw z0..z1..z2..z3--z4--cycle; -dotlabels.top(2,4); -dotlabels.lft(0,3); -dotlabels.lrt(1); -endfig; - - -beginfig(5); -z0 = (0,0); z1 = (60,40); -z2 = (40,90); z3 = (10,70); -z4 = (30,50); -path p; p = z0..z1..z2..z3..z4; -draw p; -for t=0 upto 3: - draw point t of p--postcontrol t of p - --precontrol t+1 of p--point t+1 of p - dashed (evenly scaled .5); -endfor -dotlabels.top(0,2,4); -dotlabels.lft(3); -dotlabels.lrt(1); -endfig; - - -beginfig(6); -z0 = (0,0); z1 = (60,40); -z2 = (40,90); z3 = (10,70); -z4 = (30,50); -draw z0..z1{up}..z2{left}..z3..z4; -dotlabels.top(0,2,4); -dotlabels.lft(3); -dotlabels.lrt(1); -endfig; - - -beginfig(7) -for a=0 upto 9: - draw (0,0){dir 45}..{dir -10a}(6cm,0); -endfor -endfig; - -beginfig(8) -for a=0 upto 7: - draw (0,0){dir 45}..{dir 10a}(6cm,0); -endfor -endfig; - - -beginfig(109); -z2=-z0=(1in,0); z1=(0,.2in); -draw z0{up}..z1{right}..z2{down}; -dotlabels.bot(0,1,2); -endfig; - - -beginfig(209); -z2=-z0=(1in,0); z1=(0,.2in); -draw z0{up}...z1{right}...z2{down}; -dotlabels.bot(0,1,2); -endfig; - - -beginfig(110); -numeric u; 10u=1.5in; --z0=z3=(5u,0); -(-x1,y1)=z2=(3u,2u); -draw z0..z1..z2..z3; -dotlabels.bot(0,1,2,3); -endfig; - - -beginfig(210); -numeric u; 10u=1.5in; --z0=z3=(5u,0); -(-x1,y1)=z2=(3u,2u); -draw z0..z1..tension 1.3..z2..z3; -dotlabels.bot(0,1,2,3); -endfig; - - -beginfig(310); -numeric u; 10u=1.5in; --z0=z3=(5u,0); -(-x1,y1)=z2=(3u,2u); -draw z0..z1..tension 1.5 and 1..z2..z3; -dotlabels.bot(0,1,2,3); -endfig; - - -beginfig(111); -numeric u, c; 10u=1.4in; c=0; -z1=(0,0); (x0,-y0)=z2=(2u,5u); -draw z0{curl c}..z1..{curl c}z2; -dotlabels.rt(0,1,2); -endfig; - - -beginfig(211); -numeric u, c; 10u=1.4in; c=1; -z1=(0,0); (x0,-y0)=z2=(2u,5u); -draw z0{curl c}..z1..{curl c}z2; -dotlabels.rt(0,1,2); -endfig; - - -beginfig(311); -numeric u, c; 10u=1.4in; c=2; -z1=(0,0); (x0,-y0)=z2=(2u,5u); -draw z0{curl c}..z1..{curl c}z2; -dotlabels.rt(0,1,2); -endfig; - - -beginfig(411); -numeric u, c; 10u=1.4in; c=infinity; -z1=(0,0); (x0,-y0)=z2=(2u,5u); -draw z0{curl c}..z1..{curl c}z2; -dotlabels.rt(0,1,2); -endfig; - - -beginfig(13); -z1=-z2=(.2in,0); -x3=-x6=.3in; -x3+y3=x6+y6=1.1in; -z4=1/3[z3,z6]; -z5=2/3[z3,z6]; -z20=whatever[z1,z3]=whatever[z2,z4]; -z30=whatever[z1,z4]=whatever[z2,z5]; -z40=whatever[z1,z5]=whatever[z2,z6]; -draw z1--z20--z2--z30--z1--z40--z2; -pickup pencircle scaled 1pt; -draw z1--z2; -draw z3--z6; -% -dotlabels.bot(1,2); -dotlabels.rt(3); -dotlabels.lft(6); -dotlabels.top(20,30,40); -endfig; - - -vardef llet(expr c) = - c infont defaultfont scaled magstep3 -enddef; - -primarydef p centered h = - (p shifted (h - xpart .5[llcorner p,lrcorner p], 0)) -enddef; - -beginfig(14); -string s; s = "abcde"; -numeric u,n, ytop, ybot; -n = 5; -ytop = 3bp + ypart urcorner llet(s); -ybot = -3bp + ypart llcorner llet(s); -ytop - ybot = u; -draw (n*u,ybot)--(0,ybot)--(0,ytop)--(n*u,ytop); -for i=1 upto n: - draw (i*u,ybot)..(i*u,ytop); - draw llet(substring (i-1,i) of s) centered ((i-.5)*u); - label.bot(decimal i, (i*u,ybot)); -endfor -picture llab; llab = btex \llap{$x={}$}0 etex; -z0 = urcorner llab; -draw llab shifted (-.5*x0, ybot-labeloffset-y0); -endfig; - - -beginfig(17); -a=.7in; b=.5in; -z0=(0,0); -z1=-z3=(a,0); -z2=-z4=(0,b); -draw z1..z2..z3..z4..cycle; -draw z1--z0--z2; -label.top("a", .5[z0,z1]); -label.lft("b", .5[z0,z2]); -dotlabel.bot("(0,0)", z0); -endfig; - - -beginfig(18); -numeric u; -u = 1cm; -draw (0,2u)--(0,0)--(4u,0); -pickup pencircle scaled 1pt; -draw (0,0){up} - for i=1 upto 8: ..(i/2,sqrt(i/2))*u endfor; -label.lrt(btex $\sqrt x$ etex, (3,sqrt 3)*u); -label.bot(btex $x$ etex, (2u,0)); -label.lft(btex $y$ etex, (0,u)); -endfig; - - -beginfig(19); -numeric ux, uy; -120ux=1.2in; 4uy=2.4in; -draw (0,4uy)--(0,0)--(120ux,0); -pickup pencircle scaled 1pt; -draw (0,uy){right} - for ix=1 upto 8: - ..(15ix*ux, uy*2/(1+cosd 15ix)) - endfor; -label.bot(btex $x$ axis etex, (60ux,0)); -label.lft(btex $y$ axis etex rotated 90, - (0,2uy)); -label.lft( - btex $\displaystyle y={2\over1+\cos x}$ etex, - (120ux, 4uy)); -endfig; - - -beginfig(20); -picture p; -p = "testing" infont "ptmr8r" scaled 7; -draw p; -draw llcorner p--lrcorner p--urcorner p--ulcorner p--cycle; -dotlabel.lft(btex \tt llcorner etex, llcorner p); -dotlabel.rt(btex \tt lrcorner etex, lrcorner p); -dotlabel.lft(btex \tt ulcorner etex, ulcorner p); -dotlabel.rt(btex \tt urcorner etex, urcorner p); -endfig; - - -beginfig(21); -path p; -p = (-1cm,0)..(0,-1cm)..(1cm,0); -fill p{up}..(0,0){-1,-2}..{up}cycle; -draw p..(0,1cm)..cycle; -endfig; - - -beginfig(22); -path a, b, aa, ab; -a = fullcircle scaled 2cm; -b = a shifted (0,1cm); -aa = halfcircle scaled 2cm; -ab = buildcycle(aa, b); -picture pa, pb; -pa = thelabel(btex $A$ etex, (0,-.5cm)); -pb = thelabel(btex $B$ etex, (0,1.5cm)); -fill a withcolor .7white; -fill b withcolor .7white; -fill ab withcolor .4white; -unfill bbox pa; -draw pa; -unfill bbox pb; -draw pb; -label.lft(btex $U$ etex, (-1cm,.5cm)); -draw bbox currentpicture; -endfig; - - -beginfig(123); -path aa, b; -b = a shifted (0,1cm); -aa = halfcircle scaled 2cm; -draw aa; -draw b dashed evenly; -z1 = aa intersectionpoint reverse b; -z2 = reverse aa intersectionpoint b; -dotlabel.rt(btex 1 etex, z1); -dotlabel.lft(btex 2 etex, z2); -label.bot(btex \tt aa etex, point 0 of aa); -label.bot(btex \tt b etex, point 2 of b); -endfig; - -beginfig(223); -path aa, b; -b = a shifted (0,1cm); -aa = halfcircle scaled 2cm; -numeric t[], tt[]; -(t1,8-tt1) = aa intersectiontimes reverse b; -(4-t2,tt2) = reverse aa intersectiontimes b; -pickup(pencircle scaled .3); -draw aa; -draw b; -pickup(pencircle scaled .8); -draw subpath (t1,t2) of aa; -draw subpath (tt2,tt1) of b; -dotlabel.rt(btex 1 etex, point t1 of aa); -dotlabel.lft(btex 2 etex, point t2 of aa); -label.bot(btex \tt aa etex, point 0 of aa); -label.bot(btex \tt b etex, point 2 of b); -endfig; - - -beginfig(24); -h=2in; w=2.7in; -path p[], q[], pp; -for i=2 upto 4: ii:=i**2; - p[i] = (w/ii,h){1,-ii}...(w/i,h/i)...(w,h/ii){ii,-1}; -endfor -q0.5 = (0,0)--(w,0.5h); -q1.5 = (0,0)--(w/1.5,h); -pp = buildcycle(q0.5, p2, q1.5, p4); -fill pp withcolor .7white; -z0=center pp; -picture lab; lab=thelabel(btex $f>0$ etex, z0); -unfill bbox lab; draw lab; -draw q0.5; draw p2; draw q1.5; draw p4; -dotlabel.top(btex $P$ etex, p2 intersectionpoint q0.5); -dotlabel.rt(btex $Q$ etex, p2 intersectionpoint q1.5); -dotlabel.lft(btex $R$ etex, p4 intersectionpoint q1.5); -dotlabel.bot(btex $S$ etex, p4 intersectionpoint q0.5); -endfig; - - -beginfig(25); -numeric u; -u = .2in; -path a, b; -a = (0,0){up}..(4u,0)..(8u,0)..(8u,4u); -b = (10u,3u)..(5u,u)..(-u,u); -numeric t; t=0; -forsuffixes $=bot, llft, lrt, lft: - dotlabel$(decimal t, point t of a); - t:=t+1; -endfor -for i=0 upto 2: - dotlabel.top(decimal i, point i of b); -endfor -pickup(pencircle scaled .3); -draw a; -pickup(pencircle scaled .8); -draw b; -% intersections (atime, btime): -% (0.2501,1.77225) -% (2.58316,0.23619) -% (0.75288,1.40094) -endfig; - - -beginfig(26); -numeric scf, #, t[]; -3.2scf = 2.4in; -path fun; -# = .1; % Keep the function single-valued -fun = ((0,-1#)..(1,.5#){right}..(1.9,.2#){right}..{curl .1}(3.2,2#)) - yscaled(1/#) scaled scf; -x1 = 2.5scf; -for i=1 upto 2: - (t[i],whatever) = - fun intersectiontimes ((x[i],-infinity)--(x[i],infinity)); - z[i] = point t[i] of fun; - z[i]-(x[i+1],0) = whatever*direction t[i] of fun; - draw (x[i],0)--z[i]--(x[i+1],0); - fill fullcircle scaled 3bp shifted z[i]; -endfor -label.bot(btex $x_1$ etex, (x1,0)); -label.bot(btex $x_2$ etex, (x2,0)); -label.bot(btex $x_3$ etex, (x3,0)); -draw (0,0)--(3.2scf,0); -pickup pencircle scaled 1pt; -draw fun; -endfig; - - -beginfig(28); -path p[]; -p1 = fullcircle scaled .6in; -z1=(.75in,0)=-z3; -z2=directionpoint left of p1=-z4; -p2 = z1..z2..{curl1}z3..z4..{curl 1}cycle; -fill p2 withcolor .4[white,black]; -unfill p1; -draw p1; -transform T; -z1 transformed T = z2; -z3 transformed T = z4; -xxpart T=yypart T; yxpart T=-xypart T; -picture pic; -pic = currentpicture; -for i=1 upto 2: - pic:=pic transformed T; - draw pic; -endfor -dotlabels.top(1,2,3); dotlabels.bot(4); -endfig; - - -beginfig(29); -if unknown withdots: % So this works w/o MetaPost version 0.5 - picture withdots; withdots=dashpattern(off 2.5 on 0 off 2.5); -fi -z0 = (0,0); -z1 = (2in-2bp,0); -for i=1 upto 4: - z[2i]-z[2i-2] = z[2i+1]-z[2i-1] = (0,14pt); -endfor -draw z0..z1 dashed evenly; -label.rt(btex \tt dashed evenly etex, z1); -draw z2..z3 dashed evenly scaled 2; -label.rt(btex \tt dashed evenly scaled 2 etex, z3); -draw z4..z5 dashed evenly scaled 4; -label.rt(btex \tt dashed evenly scaled 4 etex, z5); -draw z6..z7 dashed withdots; -label.rt(btex \tt dashed withdots etex, z7); -draw z8..z9 dashed withdots scaled 2; -label.rt(btex \tt dashed withdots scaled 2 etex, z9); -endfig; - - -beginfig(30); -picture e[]; e4=evenly scaled 4; -z0 = (0,0); -z1 = (2in,0); -for i=1 upto 3: - z[2i]-z[2i-2] = z[2i+1]-z[2i-1] = (0,14pt); -endfor -dotlabels.lft(0,2,4,6); -draw z0..z1 dashed e4; -dotlabel.rt(btex 1 \tt\ draw z0..z1 dashed e4 etex, z1); -draw z2..z3 dashed e4 shifted (6bp,0); -dotlabel.rt(btex 3 \tt\ draw z2..z3 dashed e4 shifted (6bp,0) etex, z3); -draw z4..z5 dashed e4 shifted (12bp,0); -dotlabel.rt(btex 5 \tt\ draw z4..z5 dashed e4 shifted (12bp,0) etex, z5); -draw z6..z7 dashed e4 shifted (18bp,0); -dotlabel.rt(btex 7 \tt\ draw z6..z7 dashed e4 shifted (18bp,0) etex, z7); -endfig; - - -beginfig(31); -picture d; d = dashpattern(on 6bp off 12bp on 6bp); -draw d; -endfig; - - -beginfig(32); -draw dashpattern(on 15bp off 15bp) dashed evenly; -picture p; -p=currentpicture; -currentpicture:=nullpicture; -draw fullcircle scaled 1cm xscaled 3 dashed p; -endfig; - - -beginfig(33); -for i=0 upto 2: - z[i]=(0,-40i); z[i+3]-z[i]=(100,30); -endfor -pickup pencircle scaled 18; -draw z0..z3 withcolor .8white; -linecap:=butt; -draw z1..z4 withcolor .8white; -linecap:=squared; -draw z2..z5 withcolor .8white; -dotlabels.top(0,1,2,3,4,5); -endfig; linecap:=rounded; - - -beginfig(34); -for i=0 upto 2: - z[i]=(0,-50i); z[i+3]-z[i]=(60,40); - z[i+6]-z[i]=(120,0); -endfor -pickup pencircle scaled 24; -draw z0--z3--z6 withcolor .8white; -linejoin:=mitered; -draw z1..z4--z7 withcolor .8white; -linejoin:=beveled; -draw z2..z5--z8 withcolor .8white; -dotlabels.bot(0,1,2,3,4,5,6,7,8); -endfig; linejoin:=rounded; - - -beginfig(35); -z2a=(0,0); -(-x1a,y1a) = -z3a = .5in*unitvector(6,1); -z1b - z1a = .75*z1a rotated -90; -z2b - z1b = whatever*(z2a-z1a); -z3b - z2b = whatever*(z3a-z2a); -y2b = 0; -z3b - z3a = whatever*(z3a rotated 90); -z0b-z1b = z0a-z1a = z1a; -x4a=x2a; x4b=x2b; -y4a = y4b = 1.3*y3b; -fill z1a--z2a--z3a--z3b--z2b--z1b--cycle withcolor .8 white; -for p= z2a--z4a, z2b--z4b, z0a--z1a, z0b--z1b: - draw p dashed evenly; -endfor -drawdblarrow z4a--z4b; -drawdblarrow z0a--z0b; -label.bot(btex {\tenrm длина острия} etex, .5[z4a,z4b]); -label.ulft(btex {\tenrm толщина линии} etex, .5[z0a,z0b]); -endfig; - - -beginfig(36); -z[-1]=(0,0); z0=(1in,0); -for i=1 upto 6: - z[i]-z[i-2] = (0,-15pt); - if x[i]=0: label.lft(decimal i, z[i]); - fi -endfor -drawarrow z1..z2; -drawarrow reverse(z3..z4); -drawdblarrow z5..z6; -label.rt(btex 2 \tt\ drawarrow z1..z2 etex, z2); -label.rt(btex 4 \tt\ drawarrow reverse(z3..z4) etex, z4); -label.rt(btex 6 \tt\ drawdblarrow z5..z6 etex, z6); -endfig; - - -beginfig(37); -path p, q, r; -ahlength := 1.5cm; -pickup pencircle scaled .2cm; -p = (0,0)..{right}(2.5cm,2cm); -q = counterclockwise arrowhead p; -z0 = directionpoint up of q; -z.a = directionpoint right of q; -z.b = directionpoint (-1,-1) of q; -drawarrow p withcolor .4white; -pickup defaultpen; -undraw p; -undraw q; -ahlength:=4bp; -z.a1-z0 = .3cm*unitvector(z.a-z0) rotated 90; -z.a1-z.a2 = z0-z.a; -z.b1-z0 = .3cm*unitvector(z.b-z0) rotated -90; -z.b1-z.b2 = z0-z.b; -z.ab = whatever[z.a1,z.a2] = whatever[z.b1,z.b2]; -z.a0-z.ab = .4cm*unitvector(z.a1-z.a2); -z.b0-z.ab = .4cm*unitvector(z.b1-z.b2); -drawdblarrow z.a1..z.a2; -label.lrt(btex \tt ahlength etex, .9[z.a1,z.a2]); -draw z.a1..z.a0 dashed evenly; -drawdblarrow z.b1..z.b2; -label.urt(btex \tt ahlength etex, .9[z.b1,z.b2]); -draw z.b1..z.b0 dashed evenly; -r = z.a0{(z.a2-z.a0) rotated 90}..{(z.b2-z.b0)rotated 90}z.b0; -draw r; -label.rt(btex \tt ahangle etex, point .5 of r); -endfig; - - -beginfig(38); -pickup pencircle scaled .2in yscaled .08 rotated 30; -x0=x3=x4; -z1-z0 = .45in*dir 30; -z2-z3 = whatever*(z1-z0); -z6-z5 = whatever*(z1-z0); -z1-z6 = 1.2*(z3-z0); -rt x3 = lft x2; -x5 = .55[x4,x6]; -y4 = y6; -lft x3 = bot y5 = 0; -top y2 = .9in; -draw z0--z1--z2--z3--z4--z5--z6 withcolor .7white; -dotlabels.top(0,1,2,3,4,5,6); -endfig; - - -beginfig(40); -path p[]; -p1 = (0,0){curl 0}..(5pt,-3pt)..{curl 0}(10pt,0); -p2 = p1..(p1 yscaled-1 shifted(10pt,0)); -p0 = p2; -for i=1 upto 3: p0:=p0.. p2 shifted (i*20pt,0); - endfor -for j=0 upto 8: draw p0 shifted (0,j*10pt); - endfor -p3 = fullcircle shifted (.5,.5) scaled 72pt; -clip currentpicture to p3; -draw p3; -endfig; - - -marksize=4pt; -angle_radius=8pt; - -def draw_mark(expr p, a) = - begingroup - save t, dm; pair dm; - t = arctime a of p; - dm = marksize*unitvector direction t of p - rotated 90; - draw (-.5dm.. .5dm) shifted point t of p; - endgroup -enddef; - -def draw_marked(expr p, n) = - begingroup - save amid; - amid = .5*arclength p; - for i=-(n-1)/2 upto (n-1)/2: - draw_mark(p, amid+.6marksize*i); - endfor - draw p; - endgroup -enddef; - -def mark_angle(expr a, b, c, n) = - begingroup - save s, p; path p; - p = unitvector(a-b){(a-b)rotated 90}..unitvector(c-b); - s = .9marksize/length(point 1 of p - point 0 of p); - if s<angle_radius: s:=angle_radius; fi - draw_marked(p scaled s shifted b, n); - endgroup -enddef; - -def mark_rt_angle(expr a, b, c) = - draw ((1,0)--(1,1)--(0,1)) - zscaled (angle_radius*unitvector(a-b)) shifted b -enddef; - -beginfig(42); -pair a,b,c,d; -b=(0,0); c=(1.5in,0); a=(0,.6in); -d-c = (a-b) rotated 25; -dotlabel.lft("a",a); -dotlabel.lft("b",b); -dotlabel.bot("c",c); -dotlabel.llft("d",d); -z0=.5[a,d]; -z1=.5[b,c]; -(z.p-z0) dotprod (d-a) = 0; -(z.p-z1) dotprod (c-b) = 0; -draw a--d; -draw b--c; -draw z0--z.p--z1; -draw_marked(a--b, 1); -draw_marked(c--d, 1); -draw_marked(a--z.p, 2); -draw_marked(d--z.p, 2); -draw_marked(b--z.p, 3); -draw_marked(c--z.p, 3); -mark_angle(z.p, b, a, 1); -mark_angle(z.p, c, d, 1); -mark_angle(z.p, c, b, 2); -mark_angle(c, b, z.p, 2); -mark_rt_angle(z.p, z0, a); -mark_rt_angle(z.p, z1, b); -endfig; - - -def getmid(suffix p) = - pair p.mid[], p.off[], p.dir[]; - for i=0 upto 36: - p.dir[i] = dir(5*i); - p.mid[i]+p.off[i] = directionpoint p.dir[i] of p; - p.mid[i]-p.off[i] = directionpoint -p.dir[i] of p; - endfor -enddef; - -def joinup(suffix pt, d)(expr n) = - begingroup - save res, g; path res; - res = pt[0]{d[0]}; - for i=1 upto n: - g:= if (pt[i]-pt[i-1]) dotprod d[i] <0: - fi 1; - res := res{g*d[i-1]}...{g*d[i]}pt[i]; - endfor - res - endgroup -enddef; - -beginfig(45) -path p, q; -p = ((5,2)...(3,4)...(1,3)...(-2,-3)...(0,-5)...(3,-4) - ...(5,-3)...cycle) scaled .3cm shifted (0,5cm); -getmid(p); -draw p; -draw joinup(p.mid, p.dir, 36)..cycle; -q = joinup(p.off, p.dir, 36); -draw q..(q rotated 180)..cycle; -drawoptions(dashed evenly); -for i=0 upto 3: - draw p.mid[9i]-p.off[9i]..p.mid[9i]+p.off[9i]; - draw -p.off[9i]..p.off[9i]; -endfor -endfig; - - -input boxes - - -\beginfig(48); -fill unitsquare xscaled 1.1in yscaled .7in withcolor .9white; -boxit(currentpicture); -dx = dy = .25in; -clearit; drawboxed(); -forsuffixes $=n,c: makelabel.top(str $, $); endfor -makelabel.bot("s",s); -forsuffixes $=ne,e,se: makelabel.rt(str $, $); endfor -forsuffixes $=nw,w,sw: makelabel.lft(str $, $); endfor -pickup pencircle scaled .3bp; -vardef larrow@#(expr a, da, s) = - drawdblarrow a..a+da; label@#(s,a+.5da); enddef; -larrow.rt(n, (0,-dy), "dy"); -larrow.rt(s, (0,dy), "dy"); -larrow.top(e, (-dx,0), "dx"); -larrow.top(w, (dx,0), "dx"); -endfig; - - -beginfig(49); -boxjoin(a.se=b.sw; a.ne=b.nw); -boxit.a(btex\strut$\cdots$ etex); boxit.ni(btex\strut$n_i$ etex); -boxit.di(btex\strut$d_i$ etex); boxit.ni1(btex\strut$n_{i+1}$ etex); -boxit.di1(btex\strut$d_{i+1}$ etex); boxit.aa(btex\strut$\cdots$ etex); -boxit.nk(btex\strut$n_k$ etex); boxit.dk(btex\strut$d_k$ etex); -drawboxed(di,a,ni,ni1,di1,aa,nk,dk); label.lft("ndtable:", a.w); -interim defaultdy:=7bp; -boxjoin(a.sw=b.nw; a.se=b.ne); -boxit.ba(); boxit.bb(); boxit.bc(); -boxit.bd(btex $\vdots$ etex); boxit.be(); boxit.bf(); -bd.dx=8bp; ba.ne=a.sw-(15bp,10bp); -drawboxed(ba,bb,bc,bd,be,bf); label.lft("hashtab:",ba.w); -vardef ndblock suffix $ = - boxjoin(a.sw=b.nw; a.se=b.ne); - forsuffixes $$=$1,$2,$3: boxit$$(); ($$dx,$$dy)=(5.5bp,4bp); - endfor; enddef; -ndblock nda; ndblock ndb; ndblock ndc; -nda1.c-bb.c = ndb1.c-nda3.c = (whatever,0); -xpart ndb3.se = xpart ndc1.ne = xpart di.c; -ndc1.c - be.c = (whatever,0); -drawboxed(nda1,nda2,nda3, ndb1,ndb2,ndb3, ndc1,ndc2,ndc3); -drawarrow bb.c -- nda1.w; -drawarrow be.c -- ndc1.w; -drawarrow nda3.c -- ndb1.w; -drawarrow nda1.c{right}..{curl0}ni.c cutafter bpath ni; -drawarrow nda2.c{right}..{curl0}di.c cutafter bpath di; -drawarrow ndc1.c{right}..{curl0}ni1.c cutafter bpath ni1; -drawarrow ndc2.c{right}..{curl0}di1.c cutafter bpath di1; -drawarrow ndb1.c{right}..nk.c cutafter bpath nk; -drawarrow ndb2.c{right}..dk.c cutafter bpath dk; -x.ptr=xpart aa.c; y.ptr=ypart ndc1.ne; -drawarrow subpath (0,.7) of (z.ptr..{left}ndc3.c) dashed evenly; -label.rt(btex \strut ndblock etex, z.ptr); endfig; - - -\beginfig(50) -interim circmargin := .07in; -fill unitsquare xscaled 1.1in yscaled .7in withcolor .9white; -circleit(currentpicture); -dx = dy; -clearit; drawboxed(); -forsuffixes $=n,c: makelabel.top(str $, $); endfor -makelabel.bot("s",s); -makelabel.rt("e", e); -makelabel.lft("w", w); -pickup pencircle scaled .3bp; -vardef larrow@#(expr a, da, s) = - drawdblarrow a..a+da; label@#(s,a+.5da); enddef; -larrow.rt(n, (0,-dy), "dy"); -larrow.rt(s, (0,dy), "dy"); -larrow.top(e, (-dx,0), "dx"); -larrow.top(w, (dx,0), "dx"); -endfig; - - - -vardef drawshadowed(text t) = - fixsize(t); - forsuffixes s=t: - fill bpath.s shifted (1pt,-1pt); - unfill bpath.s; - drawboxed(s); - endfor -enddef; - -beginfig(51) -circleit.a(btex Box 1 etex); -circleit.b(btex Box 2 etex); -b.n = a.s - (0,20pt); -drawshadowed(a,b); -drawarrow a.s -- b.n; -endfig; - - -vardef cuta(suffix a,b) expr p = - drawarrow p cutbefore bpath.a cutafter bpath.b; - point .5*length p of p -enddef; - -vardef self@# expr p = - cuta(@#,@#) @#.c{curl0}..@#.c+p..{curl0}@#.c enddef; - -beginfig(52); -verbatimtex \def\stk#1#2{$\displaystyle{\matrix{#1\cr#2\cr}}$} etex -circleit.aa(btex\strut Start etex); aa.dx=aa.dy; -circleit.bb(btex \stk B{(a|b)^*a} etex); -circleit.cc(btex \stk C{b^*} etex); -circleit.dd(btex \stk D{(a|b)^*ab} etex); -circleit.ee(btex\strut Stop etex); ee.dx=ee.dy; -numeric hsep; -bb.c-aa.c = dd.c-bb.c = ee.c-dd.c = (hsep,0); -cc.c-bb.c = (0,.8hsep); -xpart(ee.e - aa.w) = 3.8in; -drawboxed(aa,bb,cc,dd,ee); -label.ulft(btex$b$etex, cuta(aa,cc) aa.c{dir50}..cc.c); -label.top(btex$b$etex, self.cc(0,30pt)); -label.rt(btex$a$etex, cuta(cc,bb) cc.c..bb.c); -label.top(btex$a$etex, cuta(aa,bb) aa.c..bb.c); -label.llft(btex$a$etex, self.bb(-20pt,-35pt)); -label.top(btex$b$etex, cuta(bb,dd) bb.c..dd.c); -label.top(btex$b$etex, cuta(dd,ee) dd.c..ee.c); -label.lrt(btex$a$etex, cuta(dd,bb) dd.c..{dir140}bb.c); -label.bot(btex$a$etex, cuta(ee,bb) ee.c..tension1.3 ..{dir115}bb.c); -label.urt(btex$b$etex, cuta(ee,cc) ee.c{(cc.c-ee.c)rotated-15}..cc.c); -endfig; - - -beginfig(55) -picture wheel, car; -path body; - u := 5bp; - % Use a calligraphic pen. - pickup pencircle scaled .1u yscaled .6 rotated 30; - % Define a wheel object. - wheel := image( - draw fullcircle scaled 2u xscaled .8 rotated 30; - draw fullcircle scaled .1u xscaled .8 rotated 30 - withpen currentpen scaled .5; - ); - % Construct path for car body. - body := (3.2u,0){right}..(4.5u,1.5u){up}..(1.5u,2.5u){dir(-170)} - ..(1.5u,4.25u){up}...(0,5u){left}; - body := body .. reverse body reflectedabout (origin, (0,u)); - % Define a car object. - car := image( - draw wheel shifted (2u, 0);% Draw two wheels. - draw wheel shifted (-2u, 0); - draw (-.8u,0){dir(5)}..(.8u,0);% Draw connection betweeen wheels. - draw body;% Draw body. - % Draw speed indicators. - for i=1.5, 2, 2.5: - draw (5u, u*i){right}..{dir(-10)}(6.5u,u*i*.95); - endfor - ) shifted (0, u) slanted -.2 rotated 1;% Introduce asymmetries. - % Draw two cars and a faster one. - draw car shifted (5u,0); - draw car shifted (20u,0); - draw car slanted -.25 shifted (45u,0); - % Draw motorway. - draw (-5u,-u)...(25u,-.5u)...(60u,-u) - withpen currentpen scaled 4 withcolor .7white; -endfig; - -%%% Title page rule. -beginfig(60); - pickup pencircle scaled 1.1bp; - linecap := rounded; - draw origin--(4.38in,0); -endfig; - -end |