diff options
author | Karl Berry <karl@freefriends.org> | 2006-01-09 00:45:48 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2006-01-09 00:45:48 +0000 |
commit | 5dc602d16c5be2fd035b254ca23484a90aebd6dc (patch) | |
tree | 72efb15fba318cc2096a8cc6999ed3fa0bff317d /Master/texmf-dist/doc/metapost/featpost/example | |
parent | b4fc5f639874db951177ec539299d20908adb654 (diff) |
doc 5
git-svn-id: svn://tug.org/texlive/trunk@81 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/doc/metapost/featpost/example')
115 files changed, 9039 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/metapost/featpost/example/bugtrack/bughunt.mp b/Master/texmf-dist/doc/metapost/featpost/example/bugtrack/bughunt.mp new file mode 100644 index 00000000000..2afa2bcd62d --- /dev/null +++ b/Master/texmf-dist/doc/metapost/featpost/example/bugtrack/bughunt.mp @@ -0,0 +1,57 @@ +% bughunt.mp +% L. Nobre G. +% 2003 + +%input featpost3Dplus2D; + +%SphericalDistortion := true; +%f := 0.3*(5,4,2); +%Spread := 40; +%ShiftV := (200,200); + +SphericalDistortion := false; +f := 3.3*(5,4,2); +Spread := 70; +ShiftV := (250,250); + +beginfig(1); + color nalfa, gammacnt, vertex; + numeric altura, grids, radius, aux, i, numc, slope; + + altura = 1; + radius = 0.3; + grids = 1; + numc = 8; + slope = 15; + + for i=1 upto numc: + aux := (i-1-0.5*(numc-1))*grids; + gammacnt := (0,aux,0); + vertex := gammacnt+0.1*(f-gammacnt)+(0,0,aux/slope); + nalfa := vertex - gammacnt; + rigorousdisc( 0, true, gammacnt, radius, nalfa ); + endfor; +endfig; + +beginfig(2); + path cpath; + color vert; + numeric i; + f := (4,0,0.5); + vert = 0.5*(0,1,1); + cpath = rigorouscone(true, black, blue, 1, vert); +% draw rp(vert); + draw cpath; show length cpath; + for i=0 upto length cpath: + dotlabel.top( decimal(i),point i of cpath); + endfor; +% cpath := rigorouscircle( black, blue, 1); +% draw cpath; +% for i=0 upto length cpath: +% dotlabel.bot( decimal(i),point i of cpath); +% endfor; +endfig; + +end; + + diff --git a/Master/texmf-dist/doc/metapost/featpost/example/bugtrack/gstr.mp b/Master/texmf-dist/doc/metapost/featpost/example/bugtrack/gstr.mp new file mode 100644 index 00000000000..b0cf81a4674 --- /dev/null +++ b/Master/texmf-dist/doc/metapost/featpost/example/bugtrack/gstr.mp @@ -0,0 +1,9 @@ + +beginfig(1); + boolean tb; + tb = true; + draw origin; + show bstr( tb ); +endfig; +end. + diff --git a/Master/texmf-dist/doc/metapost/featpost/example/highmemory/hiddenlinegraph.mp b/Master/texmf-dist/doc/metapost/featpost/example/highmemory/hiddenlinegraph.mp new file mode 100644 index 00000000000..efa5cea3727 --- /dev/null +++ b/Master/texmf-dist/doc/metapost/featpost/example/highmemory/hiddenlinegraph.mp @@ -0,0 +1,72 @@ +% hiddenlinegraph.mp +% L. Nobre G. +% 2003 +% The application of the big nice trick to draw 3D hidden line surfaces + +verbatimtex +\documentclass{article} +\usepackage{beton} +\usepackage{concmath} +\usepackage{ccfonts} +\begin{document} +etex + +def zsurfaci( expr xc, yc ) = + begingroup + numeric zout; + zout = yc**4-xc*yc*(1-yc**2); + ( ( xc, yc, zout ) ) + endgroup +enddef; + +def zsurface( expr xc, yc ) = + ( xc, yc, cosd(xc*57)*cosd(yc*57)+4*mexp(-(xc**2+yc**2)*6.4) ) +enddef; + +def zsurfaca( expr xc, yc ) = + ( xc, yc, 1.5-0.2*xc ) +enddef; + +%f := (6,1,0); +f := (5,1.5,3); +Spread := 147; +NF := 0; +LightSource := (1,-1,2); + +beginfig(1); + numeric nx, ny, lowx, higx, lowy, higy, + facz, lowz, higz, base, topo; + path chair; + nx = 22; + ny = 22; + lowy = -7; + higy = 7; + lowx = -7; + higx = 7; + facz = 2; + lowz = -1; + higz = 5; +% lowy = -2.5; +% higy = 1; +% lowx = 1.5; +% higx = 3; +% facz = 3; +% lowz = -1.5; +% higz = 1.5; + partrimesh( nx,ny,lowx,higx,lowy,higy, + lowx,higx,lowy,higy,lowz,higz,facz,zsurface); + partrimesh( nx,ny,lowx,higx,lowy,higy, + lowx,higx,lowy,higy,lowz,higz,facz,zsurfaca); + base = -1/facz; + topo = 1/facz; + chair = rp((-1,-1,base))--rp((1,-1,base))--rp((1,1,base)) + --rp((-1,1,base))--rp((-1,-1,base))--rp((-1,-1,topo)) + --rp((-1,1,topo))--rp((-1,1,base))--cycle; + draw chair; +% fill_faces( withcolor blue ); + draw_invisible( false, false, green, blue ); +endfig; + +verbatimtex \end{document} etex + +end; diff --git a/Master/texmf-dist/doc/metapost/featpost/example/highmemory/mainmemtest.mp b/Master/texmf-dist/doc/metapost/featpost/example/highmemory/mainmemtest.mp new file mode 100644 index 00000000000..d4ab2a9e4cf --- /dev/null +++ b/Master/texmf-dist/doc/metapost/featpost/example/highmemory/mainmemtest.mp @@ -0,0 +1,54 @@ +% mainmemtest.mp +% L. Nobre G. +% 2003 + +%input featpost3D; + +beginfig(1); + + f := (2,1,1); + + Spread := 500; + + color gridvec, sizevec, currpos, starpos, bordpos; + numeric i, j, k, counter, theta, phi, thetamin, + thetamax, thetastp, long, base; +% It works with sizevec := (8,6,1); +% with (9,6,1) and sharpraytrace it says +% ! MetaPost capacity exceeded, sorry [main memory size=2199001]. + sizevec := (7,6,1); + gridvec := (0.05,0.1,0.1); + thetamin := 55; + thetamax := 125; + long := 0.08; + base := 0.01; + thetastp := (thetamax-thetamin)/(X(sizevec)-1); + starpos := ( -0.5*X(gridvec)*(X(sizevec)-1) , + -0.5*Y(gridvec)*(Y(sizevec)-1) , + -0.5*Z(gridvec)*(Z(sizevec)-1) ); + bordpos := starpos - 0.5*gridvec; + npf1 := 4; + F1p1 := bordpos; + F1p2 := (X(bordpos),-Y(bordpos), Z(bordpos)); + F1p3 := (-X(bordpos),-Y(bordpos), Z(bordpos)); + F1p4 := (-X(bordpos),Y(bordpos), Z(bordpos)); + counter := 2; + for i=1 upto X(sizevec): + for j=1 upto Y(sizevec): + for k=1 upto Z(sizevec): + phi := 90; + theta := thetamin+(i-1)*thetastp; + currpos := starpos+( (i-1)*X(gridvec) , + (j-1)*Y(gridvec) , + (k-1)*Z(gridvec) ); + generatedirface( counter, phi, theta, long, base, currpos ); + counter := incr(counter); + endfor; + endfor; + endfor; + NF := decr(counter); + sharpraytrace; +endfig; + +end; + diff --git a/Master/texmf-dist/doc/metapost/featpost/example/highmemory/par3Dplotexamples.mp b/Master/texmf-dist/doc/metapost/featpost/example/highmemory/par3Dplotexamples.mp new file mode 100644 index 00000000000..6b05682918a --- /dev/null +++ b/Master/texmf-dist/doc/metapost/featpost/example/highmemory/par3Dplotexamples.mp @@ -0,0 +1,149 @@ +% J. Schwaiger with help of +% FEATPOST and the macropackages +% la3Dmacros.mp and hlr3Dmacros.mp +% by L. Nobre G. +% 2003 + +% Figure (2) retouched in 2004 by L. Nobre G. + +verbatimtex +\documentclass[a4paper,12pt]{article} +\usepackage[T1]{fontenc} +\usepackage[latin1]{inputenc} +\usepackage{euler} +\usepackage{graphicx} +\begin{document} +etex + +% for trigonometric functions when angles are measured in rad +% + def sinrad( expr t)=sind(t/3.145*180) enddef; + def cosrad( expr t)=cosd(t/3.145*180) enddef; + + def parsurface( expr tc,sc )= + (% + (4 cosrad(tc) - sinrad(sc)*cosrad(tc),% + 4 sinrad(tc) - sinrad(sc)*sinrad(tc),% + cosrad(sc))% + )% A torus + enddef; + + def parsurfacetwo( expr tc,sc )= + (% + (4+4cosrad(tc) - sinrad(sc)*cosrad(tc),% + cosrad(sc), + 4sinrad(tc) - sinrad(sc)*sinrad(tc)% + )% + )% Another torus + enddef; + + def parsurfacethree( expr tc,sc )= +% 0<=sc<=2pi,-2<=tc<=2 +%xmin=-1.4, xmax=1.4 +%ymin=-0.7, ymax=2 +%zmin=-2.5,zmax=2.5 + (% + (1.414213562*cosrad(sc)*cosrad(tc) + -2*sinrad(sc)*sinrad(tc))/(2*(abs(tc) + 1)) + sinrad(tc),% + cosrad(tc) - (1.414213562*cosrad(sc)*sinrad(tc) + + 2*sinrad(sc)*cosrad(tc))/(2*(abs(tc) + 1)),% + tc - 2*cosrad(sc)/(2*(abs(tc) + 1)) + )% +% A space tube governed by a helix + enddef; + +def zsurface( expr xc, yc ) = + ( xc, yc, cosd(xc*57)*cosd(yc*57)+4*mexp(-(xc**2+yc**2)*6.4) ) +enddef; + +f:=(8,1.5,1.5); +Spread := 127; + + +beginfig(1); + numeric Ns, Nt, lows, higs, lowt, higt, lowx, highx, lowy, highy, + facz, lowz, higz, base, topo; + path chair; + % for torus + f:=(4,1.5,1.5); + Spread:=150; + Ns = 16; + Nt= 16; + lows := 3.145*0.25; + higs := 3.145*1.75; + lowt = -3.145; + higt = 3.145; + facz=1; + lowz = -5; + higz = 5; + lowx:=-5; + lowy:=-5; + higx:=10; + higy:=7; +% + NF:=0; %Initialize number of faces; +% + partrimesh( Ns,Nt,lowt,higt,lows,higs, + lowx,higx,lowy,higy,lowz,higz,facz,parsurfacetwo ); + lows := 3.145*0.5; + higs := 2.25*3.145; % new parameters and new surface + partrimesh( Ns,Nt,lowt,higt,lows,higs, + lowx,higx,lowy,higy,lowz,higz,facz,parsurface ); + base = -1/facz; + topo = 1/facz; + chair = rp((-1,-1,base))--rp((1,-1,base))--rp((1,1,base)) + --rp((-1,1,base))--rp((-1,-1,base))--rp((-1,-1,topo)) + --rp((-1,1,topo))--rp((-1,1,base))--cycle; + draw_invisible( false,true,(blue+0.5green),0.6white); + draw bbox currentpicture; +endfig; + +beginfig(2); + numeric Ns, Nt, lows, higs, lowt, higt, lowx, highx, lowy, highy, + facz, lowz, higz, base, topo; + path chair; + + f := (6,0.5,3); + Spread:=150; + + Ns = 19; + Nt= 19; + lows := -3.145; + higs := 3.145; + lowt = -3.145; + higt = 3.145; + facz = 2; + lowz = -2; + higz = 2; + lowx:=-5; + lowy:=-5; + higx:=5; + higy:=5; + NF:=0; %Initialize number of faces; +% + partrimesh( Ns,Nt,lowt,higt,lows,higs, + lowx,higx,lowy,higy,lowz,higz,facz,parsurface ); + + nx := 27; + lowy := -7; + higy := 7; + lowx := -7; + higx := 7; + facz := 2; + lowz := -1; + higz := 5; + partrimesh( nx,nx,lowx,higx,lowy,higy, + lowx,higx,lowy,higy,lowz,higz,facz,zsurface); + base = -1/facz; + topo = 1/facz; + chair = rp((-1,-1,base))--rp((1,-1,base))--rp((1,1,base)) + --rp((-1,1,base))--rp((-1,-1,base))--rp((-1,-1,topo)) + --rp((-1,1,topo))--rp((-1,1,base))--cycle; + fill chair withcolor 0.9 blue+0.6white; + draw chair withcolor 0.1white ; + draw_invisible( false,false,(red+0.32blue),0.6white); +endfig; + +verbatimtex \end{document} etex + +end; diff --git a/Master/texmf-dist/doc/metapost/featpost/example/repeated/borderframetest.mp b/Master/texmf-dist/doc/metapost/featpost/example/repeated/borderframetest.mp new file mode 100644 index 00000000000..1c2331bdc17 --- /dev/null +++ b/Master/texmf-dist/doc/metapost/featpost/example/repeated/borderframetest.mp @@ -0,0 +1,28 @@ +% borderframetest.mp +% L. Nobre G. +% 2003 + +%input featpost3Dplus2D; + +beginfig(0); + Spread := 45; + + numeric theframefrach, theframefracw, Shifts; + path theframebord; + Shifts := 105mm; + theframefrach = 0.2927; + theframefracw = 0.39; + z1 = Shifts*(1-theframefracw,1-theframefrach); + z2 = Shifts*(1+theframefracw,1-theframefrach); + z3 = Shifts*(1+theframefracw,1+theframefrach); + z4 = Shifts*(1-theframefracw,1+theframefrach); + theframebord = z1--z2--z3--z4--cycle; + show z1; + show z2; + show z3; + show z4; + draw theframebord withcolor background withpen pencircle scaled 0; + clip currentpicture to theframebord; +endfig; + +end; diff --git a/Master/texmf-dist/doc/metapost/featpost/example/repeated/conegetready.mp b/Master/texmf-dist/doc/metapost/featpost/example/repeated/conegetready.mp new file mode 100644 index 00000000000..17e7fea51b3 --- /dev/null +++ b/Master/texmf-dist/doc/metapost/featpost/example/repeated/conegetready.mp @@ -0,0 +1,36 @@ +% conegetready.mp +% L. Nobre G. +% 2004 + +%input featpost3Dplus2D; + +beginfig(1); + numeric radiusin, fac, i, xcoor, ycoor, radc, numc, baz; + color refvec; + string rv, mrv, vgc, stra, strb, lrv; + + f := (5,0.3,1.5); + Spread := 70; + radiusin = 0.3; + baz = 0.08; + fac = 3; + numc = 9; + radc = (fac-1)*radiusin*sind(180/numc); + + i = 155; + xcoor := -radiusin*cosd(i); + ycoor := radiusin*sind(i); + refvec := (xcoor,-ycoor,baz); + rv := cstr( refvec ); + mrv := cstr( -refvec ); + lrv := cstr( (2*fac-1)*refvec ); + vgc :="verygoodcone(true,fac*"; + stra := vgc & rv & "," & mrv & "," & decimal(radc) & "," & rv & ")"; + getready( stra, 0.5*(fac+1)*refvec ); + strb := vgc & rv & "," & rv & "," & decimal(radc) & "," & lrv & ")"; + getready( strb, 0.5*(3*fac-1)*refvec ); + doitnow; + produce_vga_border; +endfig; + +end; diff --git a/Master/texmf-dist/doc/metapost/featpost/example/repeated/doitnow.mp b/Master/texmf-dist/doc/metapost/featpost/example/repeated/doitnow.mp new file mode 100644 index 00000000000..7cfec23a39d --- /dev/null +++ b/Master/texmf-dist/doc/metapost/featpost/example/repeated/doitnow.mp @@ -0,0 +1,33 @@ +% doitnow.mp +% L. Nobre G. +% 2004 + +%input featpost3Dplus2D; + +f := 1.5*(1.5,0,1); +Spread := 100; + +beginfig(1); + numeric stagelevel, holediam, outerdiam, stagemargin; + numeric numberofstagesidesquares, stagesidesize; + numeric centercoord; + color centerposdisc, centerpostorus, centerstage; + pickup pencircle scaled 3pt; + stagelevel = 0.2; + holediam = 0.6; + stagemargin = 0.2; + numberofstagesidesquares = 10; + centerstage = (-X(f),-Y(f),-stagelevel); + outerdiam = holediam+4*stagelevel; + stagesidesize = 2*( outerdiam + stagemargin ); + centercoord = 0.3535*outerdiam; + HoriZon := -stagelevel; + centerpostorus = ( centercoord, -centercoord, 0 ); + centerposdisc = ( -centercoord, centercoord, HoriZon ); + getready("setthestage( numberofstagesidesquares, stagesidesize );", + centerstage); + getready("smoothtorus( centerpostorus, blue,0.5*holediam+stagelevel, stagelevel );",centerpostorus); + getready("rigorousdisc( 0.5*holediam, true, centerposdisc,0.5*outerdiam, 1.5*stagelevel*blue );",centerposdisc); + doitnow; +endfig; +end. diff --git a/Master/texmf-dist/doc/metapost/featpost/example/repeated/electricpotential.mp b/Master/texmf-dist/doc/metapost/featpost/example/repeated/electricpotential.mp new file mode 100644 index 00000000000..01caaab0c5e --- /dev/null +++ b/Master/texmf-dist/doc/metapost/featpost/example/repeated/electricpotential.mp @@ -0,0 +1,151 @@ +% electricpotential.mp +% L. Nobre G. +% 2004 +% PAY ATTENTION: THESE FIGURES ARE INDEPENDANT. CONDUCTOR SURFACE POTENTIAL +% CHANGES UNDER THE INFLUENCE OF EXTERNAL CHARGES. + +%input featpost3Dplus2D; + +f := 16*(4,1,1); +Spread := 35; +LightSource := 10*(4,-3,4); +ActuC := 2; + +numeric potlim, cac, cbc, ccc, cdc; +potlim = 2; +cac = 2; +cbc = -2; +ccc = 4; +cdc = 1.5; +pair cap, cbp, ccp; +cap = (-2,-4); +ccp = (-2,4); +cbp = (2,0); +numeric np, ssize; +np = 56; +ssize = 18; + +def zi( expr xc, yc ) = + 0 +enddef; + +def za( expr xc, yc ) = + begingroup + save out; + numeric dist, out; + dist = abs( (xc,yc)-cap ); + if abs(dist) < 0.005: + if cac<0: + out = -potlim; + else: + out = potlim; + fi; + else: + out = cac/dist; + fi; + if out > potlim: + out := potlim; + elseif out < -potlim: + out := -potlim; + fi; + (out) + endgroup +enddef; + +def zb( expr xc, yc ) = + begingroup + save out; + numeric dist, out; + dist = abs( (xc,yc)-cbp ); + if abs(dist) < 0.005: + if cbc<0: + out = -potlim; + else: + out = potlim; + fi; + else: + out = cbc/dist + za( xc, yc ); + fi; + if out > potlim: + out := potlim; + elseif out < -potlim: + out := -potlim; + fi; + (out) + endgroup +enddef; + +def zc( expr xc, yc ) = + begingroup + save out; + numeric dist, out; + dist = abs( (xc,yc)-ccp ); + if abs(dist) < 0.005: + if ccc<0: + out = -potlim; + else: + out = potlim; + fi; + else: + out = ccc/dist + zb( xc, yc ); + fi; + if out > potlim: + out := potlim; + elseif out < -potlim: + out := -potlim; + fi; + (out) + endgroup +enddef; + +def zd( expr xc, yc ) = + begingroup + save out; + numeric dist, out, i, tmp; + pair poi; + tmp = 0; + for i=0 upto np: + poi := (i/np)[cap,ccp]; + dist := abs( (xc,yc)-poi ); + if abs(dist) < 0.005: + if cdc<0: + out := -potlim; + else: + out := potlim; + fi; + else: + out := cdc/dist/np; + fi; + tmp := tmp+out; + endfor; + tmp := tmp + zc( xc, yc ); + if tmp > potlim: + tmp := potlim; + elseif tmp < -potlim: + tmp := -potlim; + fi; + (tmp) + endgroup +enddef; + +beginfig(0); + hexagonaltrimesh( false, np, ssize, zi ); +endfig; + +beginfig(1); + hexagonaltrimesh( false, np, ssize, za ); +endfig; + +beginfig(2); + hexagonaltrimesh( false, np, ssize, zb ); +endfig; + +beginfig(3); + hexagonaltrimesh( false, np, ssize, zc ); +endfig; + +beginfig(4); + hexagonaltrimesh( false, np, ssize, zd ); +endfig; + +end; diff --git a/Master/texmf-dist/doc/metapost/featpost/example/repeated/emptylines.mp b/Master/texmf-dist/doc/metapost/featpost/example/repeated/emptylines.mp new file mode 100644 index 00000000000..df8e02695dd --- /dev/null +++ b/Master/texmf-dist/doc/metapost/featpost/example/repeated/emptylines.mp @@ -0,0 +1,28 @@ +% emptylines.mp +% L. Nobre G. +% 2001 + +%input featpost3Dplus2D; + + +def closec( expr TheVal ) = + begingroup + numeric par[], cred, cblu, param; + par1 = 360; + par2 = 0.3; + param = 360*TheVal; + cred = par2*cosd( param ); + cblu = par2*sind( param ); + ( (cred,cblu,1) ) + endgroup +enddef; + +f := (4,3,2); +Spread := 170; +ShadowOn := true; + +beginfig(1); + emptyline( true, 1, black, 0.5background, 360, 0.88, 2, closec ); +endfig; + +end; diff --git a/Master/texmf-dist/doc/metapost/featpost/example/repeated/experimental.mp b/Master/texmf-dist/doc/metapost/featpost/example/repeated/experimental.mp new file mode 100644 index 00000000000..106e7574f2a --- /dev/null +++ b/Master/texmf-dist/doc/metapost/featpost/example/repeated/experimental.mp @@ -0,0 +1,177 @@ +% experimental.mp +% L. Nobre G. +% 2003 + +%input featpost3Dplus2D; + +%verbatimtex +%\documentclass{article} +%\usepackage{beton} +%\usepackage{concmath} +%\usepackage{ccfonts} +%\begin{document} +%etex + +verbatimtex +\documentclass{article} +\usepackage{palatino} +\begin{document} +etex + +f := (4.5,-6,5); + +beginfig(1); + numeric len[], ray[]; + color axe[], pos[], fix[], lab[]; + color reflabpos, reflabpoi, lincolor; + picture txt[], dashpatt; + numeric inclang, aberang, sampang, stepang; + numeric squside, sqlevel, ul, outermagpos; + numeric innerray, polesep, fracone, fracsam; + numeric labelscale; + path tmpath, aupath, copath; + + pickup pencircle scaled 1.2pt; + dashpatt = evenly scaled 3; + inclang = 150; + aberang = 17; + sampang = 30; + stepang = 20; + ul = 0.1; + labelscale = 5; + outermagpos = 30ul; + squside = outermagpos; + sqlevel = -20ul; + polesep = 15ul; + fracone = 0.33; + fracsam = 0.86; + ray1 = 10ul; + ray2 = 6ul; + ray3 = 8ul; + ray4 = 1.5ul; + ray5 = 4ul; + ray6 = 3ul; + ray7 = 3.5ul; + ray8 = 2ul; + len3 = 7ul; + len4 = 20ul; + len5 = 3ul; + len7 = 3.5ul; + len8 = 7ul; + lincolor = 0.5background; + + reflabpos = ( -squside, 0, -sqlevel ); + reflabpoi = ( -squside, squside, -sqlevel ); + V1 := (squside,squside,sqlevel); + V2 := (-squside,squside,sqlevel); + V3 := (-squside,-squside,sqlevel); + V4 := (squside,-squside,sqlevel); +% makeface1(1,2,3,4); + + len1 = (1-fracone)*(outermagpos-ray5-polesep); + pos1 = (-outermagpos,0,0); + rigorousdisc( 0, true, pos1, ray1, len1*(1,0,0) ); + + len2 = fracone*(outermagpos-ray5-polesep); + pos2 = (len1-outermagpos,0,0); + tmpath := goodcirclepath( pos2, (1,0,0), ray1 ); + aupath := goodcirclepath( (-ray5-polesep,0,0), (1,0,0), ray2 ); + copath := twocyclestogether( tmpath, aupath ); + unfill copath; + draw copath; + draw aupath; + lab2 = reflabpos; + txt2 = thelabel.top( btex magneto etex scaled labelscale, rp( lab2 ) ); + draw txt2; + fix2 = (-outermagpos+0.5len1,0,ray1); + draw llcorner txt2--lrcorner txt2--rp(fix2) withcolor lincolor; + + axe3 = ( 0, cosd( inclang ), sind( inclang ) ); + pos3 = -( len3 + len4 + len5 )*axe3; + rigorousdisc( 0, true, pos3, ray3, len3*axe3 ); + lab3 = (1-fracone)*reflabpoi+fracone*V1; + txt3 = thelabel.rt( btex rotor etex scaled labelscale, rp( lab3 ) ); + draw txt3; + + axe4 = axe3; + pos4 = -( len4 + len5 )*axe4; + rigorousdisc( 0, true, pos4, ray4, len4*axe4 ); + + fix3 = pos4+fracsam*ray3*(0,cosd( inclang -90 ),sind( inclang -90 )); + draw lrcorner txt3--llcorner txt3--rp(fix3) withcolor lincolor; + + axe5 = axe3; + pos5 = -( len5 )*axe5; + rigorousdisc( 0, true, pos5, ray5, len5*axe5 ); + lab5 = (1-fracone)*reflabpoi+fracone*V2; + txt5 = thelabel.rt( btex porta-amostras etex scaled labelscale, rp( lab5 ) ); + draw txt5; + fix5 = fracsam*ray5*(0,cosd( inclang -90 ),sind( inclang -90 )); + draw lrcorner txt5--llcorner txt5--rp(fix5) withcolor lincolor; + + V5 := fracsam*ray5*( sind( sampang ), + cosd( sampang )*cosd( inclang -90 ), + cosd( sampang )*sind( inclang -90 ) ); + V6 := fracsam*ray5*( -sind( sampang ), + cosd( sampang )*cosd( inclang -90 ), + cosd( sampang )*sind( inclang -90 ) ); + V8 := fracsam*ray5*( sind( sampang ), + -cosd( sampang )*cosd( inclang -90 ), + -cosd( sampang )*sind( inclang -90 ) ); + V7 := fracsam*ray5*( -sind( sampang ), + -cosd( sampang )*cosd( inclang -90 ), + -cosd( sampang )*sind( inclang -90 ) ); + draw rp(V5)--rp(V6)--rp(V7)--rp(V8)--cycle; + + axe6 = ( 0, cosd( inclang+aberang ), sind( inclang+aberang ) ); + pos6 = ray1*axe6; + len6 = len4; + axe7 = ( 0, cosd( inclang-aberang ), sind( inclang-aberang ) ); + pos7 = ( ray1 + 0.5len6 )*axe7; + draw rp(pos6)--rp((0,0,0))--rp(pos7) dashed dashpatt; + rigorousdisc( 0, true, pos6, ray6, len6*axe6 ); + lab6 = fracone*reflabpos+(1-fracone)*V3; + txt6 = thelabel.lft( btex telemicrosc\'{o}pio etex scaled labelscale, rp( lab6 ) ); + draw txt6; + fix6 = pos6+len6*axe6; + draw llcorner txt6--lrcorner txt6--rp(fix6) withcolor lincolor; + + pos8 = pos7+len7*axe7; + tmpath := goodcirclepath( pos7, axe7, ray7 ); + aupath := goodcirclepath( pos8, axe7, ray8 ); + copath := twocyclestogether( tmpath, aupath ); + unfill copath; + draw copath; + draw aupath; + + axe8 = axe7; + rigorousdisc( 0, true, pos8, ray8, len8*axe8 ); + lab8 = (1-fracone)*reflabpos+fracone*V3; + txt8 = thelabel.lft( btex l\^{a}mpada etex scaled labelscale, rp( lab8 ) ); + draw txt8; + fix8 = pos8+len8*axe8; + draw llcorner txt8--lrcorner txt8--rp(fix8) withcolor lincolor; + + len9 = len2; + pos9 = (ray5+polesep,0,0); + ray9 = ray2; + ray10 = ray1; + tmpath := goodcirclepath( pos9, (1,0,0), ray9 ); + pos10 = pos9+len9*(1,0,0); + aupath := goodcirclepath( pos10, (1,0,0), ray10 ); + copath := twocyclestogether( tmpath, aupath ); + unfill copath; + draw copath; + draw aupath; + + len10 = len1; + rigorousdisc( 0, true, pos10, ray10, len10*(1,0,0) ); + + produce_auto_scale; +endfig; + +verbatimtex +\end{document} +etex + +end. diff --git a/Master/texmf-dist/doc/metapost/featpost/example/repeated/fieldlines.mp b/Master/texmf-dist/doc/metapost/featpost/example/repeated/fieldlines.mp new file mode 100644 index 00000000000..bcb018a0f7f --- /dev/null +++ b/Master/texmf-dist/doc/metapost/featpost/example/repeated/fieldlines.mp @@ -0,0 +1,59 @@ +% fieldlines.mp +% L. Nobre G. +% 2003 + +%input featpost3Dplus2D; + +Spread := 30; +f := (10,0,0); + +color posa, posb; +numeric kfac; +posa = -5*green; +posb = 5*green; +kfac = 2.5; + +def vecfunc( expr posit )= + begingroup + save modula, modulb, field; + color field; + numeric modula, modulb; + modula = conorm( posit-posa ); + modulb = conorm( posit-posb ); + field = ( posit-posa )/(modula**3)+kfac*( posit-posb )/(modulb**3); + ( field ) + endgroup +enddef; + +beginfig(1); + numeric i, lena, lenb, numa, numb, sa, sb, diffstep, ray; + color stp; + path oneline; + pen grossa, fina; + grossa = pencircle scaled 3pt; + fina = pencircle scaled 2pt; + lena = 105; + lenb = 145; + numa = 72; + numb = 30; + diffstep = 1; + ray = 0.5; + sa = 36; + sb = 75; + for i=sa step numa until (360+sa): + stp := posa+( 0, ray*cosd(i), ray*sind(i) ); + oneline := fieldlinepath( lena, stp, diffstep, vecfunc ); + draw oneline withpen grossa; +% draw oneline withpen fina withcolor background; + endfor; + for i=sb step numb until (360+sb): + stp := posb+( 0, ray*cosd(i), ray*sind(i) ); + oneline := fieldlinepath( lenb, stp, diffstep, vecfunc ); + draw oneline withpen grossa; +% draw oneline withpen fina withcolor background; + endfor; + draw rp(posa) withpen grossa; + draw rp(posb) withpen grossa; +endfig; + +end. diff --git a/Master/texmf-dist/doc/metapost/featpost/example/repeated/fis3prey.mp b/Master/texmf-dist/doc/metapost/featpost/example/repeated/fis3prey.mp new file mode 100644 index 00000000000..c1b32219687 --- /dev/null +++ b/Master/texmf-dist/doc/metapost/featpost/example/repeated/fis3prey.mp @@ -0,0 +1,128 @@ +% fis3prey.mp +% L. Nobre G. +% IYP (2005) + +%input featpost3Dplus2D; + +verbatimtex +\documentclass{article} +\usepackage{beton} +\usepackage{concmath} +\usepackage{ccfonts} +\begin{document} +etex + +beginfig(1); + Spread := 50; + f := (4,6,3.5); + path malhacub, rama, ramb, ramc, malhatet; + pen grossa, nuclear, negat; + color p[]; + numeric lengax, lscal, arrowmarg, arrowshift; + pair tx, ty, tz; + lengax = 0.7; + lscal = 2; + arrowshift = 0.85; + arrowmarg = 0.13; + grossa = pencircle scaled 2.7pt; + nuclear = pencircle scaled 2.1pt; + negat = pencircle scaled 1.8pt; + p1 = (1,1,-1); + p2 = (-1,1,-1); + p3 = (-1,-1,-1); + p4 = (1,-1,-1); + p5 = (1,1,1); + p6 = (-1,1,1); + p7 = (-1,-1,1); + p8 = (1,-1,1); + + p0 = p2 + arrowshift*N((1,0,1)) + arrowmarg*N((-1,0,1)); + p9 = p5 - arrowshift*N((1,0,1)) + arrowmarg*N((-1,0,1)); + + z1 = rp(p1); + z2 = rp(p2); + z3 = rp(p3); + z4 = rp(p4); + z5 = rp(p5); + z6 = rp(p6); + z7 = rp(p7); + z8 = rp(p8); + + z0 = rp(p0); + z9 = rp(p9); + + tx = rp( p1 - (lengax,0,0) ); + ty = rp( p1 - (0,lengax,0) ); + tz = rp( p1 + (0,0,lengax) ); + + malhacub = z1--z2--z3--z4--z1--z5--z6--z7--z8--z5; + malhatet = z2--z7--z4--z5--cycle; + rama = z2--z6; + ramb = z3--z7; + ramc = z4--z8; + drawoptions( dashed evenly ); + draw malhacub; + draw rama; + draw ramb; + draw ramc; + drawoptions( withpen grossa ); + draw malhatet; + + drawarrow z1--tx withpen negat; + drawarrow z1--ty withpen negat; + drawarrow z1--tz withpen negat; + label.lrt(btex $x$ etex scaled lscal, tx); + label.llft(btex $y$ etex scaled lscal, ty); + label.lft(btex $z$ etex scaled lscal, tz); + drawarrow z0--z9 withpen negat; +endfig; + +beginfig(2); + Spread := 50; + f := 2.3*(6,2,3.5); + numeric lang, cray, lpos, llen, smar; + path circ, rigcirc, lone, ltwo, carrpath; + pen pena, penb, penc; + pena = pencircle scaled 1.3mm; + penb = pencircle scaled 0.95mm; + penc = pencircle scaled 0.4mm; + color outcol, incol; + outcol = black; + incol = 0.876white; + lang = 30; + cray = 1; + lpos = 0.57; + llen = 2.2; + smar = 0.15; + circ = goodcirclepath( black, green, cray ); + rigcirc = rigorouscircle( black, green, cray+smar ); + carrpath = subpath (3.2,4.5) of rigcirc; + lone = rp((-lpos,llen*cosd(lang),llen*sind(lang))) + --rp(-(lpos,llen*cosd(lang),llen*sind(lang))); + ltwo = rp((lpos,-llen*cosd(lang),llen*sind(lang))) + --rp((lpos,llen*cosd(lang),-llen*sind(lang))); + drawarrow carrpath withpen penc withcolor outcol; + draw circ withpen pena withcolor outcol; + draw circ withpen penb withcolor incol; + draw rp((-cray,0,0))--rp((-lpos,0,0)) dashed evenly; + draw lone withpen pena withcolor outcol; + draw lone withpen penb withcolor incol; + draw rp((lpos,0,0))--rp((-lpos,0,0)) dashed evenly; + draw rp((0,0,-cray))--rp((0,0,cray)) dashed evenly; + draw ltwo withpen pena withcolor outcol; + draw ltwo withpen penb withcolor incol; + draw rp((cray,0,0))--rp((lpos,0,0)) dashed evenly; + draw subpath (1,15) of circ withpen pena withcolor outcol; + draw subpath (0,16) of circ withpen penb withcolor incol; + + + +% label.top( btex $+$ etex, point 3 of rigcirc ); + +endfig; + +verbatimtex +\end{document} +etex + +end; diff --git a/Master/texmf-dist/doc/metapost/featpost/example/repeated/frustum.mp b/Master/texmf-dist/doc/metapost/featpost/example/repeated/frustum.mp new file mode 100644 index 00000000000..90da3d74440 --- /dev/null +++ b/Master/texmf-dist/doc/metapost/featpost/example/repeated/frustum.mp @@ -0,0 +1,46 @@ +% frustum.mp +% L. Nobre G. +% IYP (2005) + +verbatimtex +\documentclass{article} +\begin{document} +{\sffamily +etex + +beginfig(1); +% f := (5,3,4); + f := (5,3,0.4); +% f := (5,3,-0.4); + numeric labscal; + picture labsa, labba, labsb, labd, labc; + labscal = 2; + ahlength := 8pt; + ahangle := 30; + labc = btex $\vec{c}$ etex scaled labscal; + labsa = btex $\vec{S}_1$ etex scaled labscal; + labsb = btex $\vec{S}_2$ etex scaled labscal; + labba = btex $\vec{B}_1$ etex scaled labscal; + labd= btex $D$ etex scaled labscal; + drawoptions( withpen pencircle scaled 1.7pt withcolor 0.65blue ); + whatisthis( black, 0.5red, green, 0.85, 0.8 ); + drawoptions( withpen pencircle scaled 1.3pt ); + drawdblarrow rp(black)--rp(0.85blue); + label.rt( labd, rp(0.4blue) ); + drawarrow rp(black)--rp(0.5red); + label.ulft( labsa, rp(0.25red) ); + drawarrow rp(black)--rp(green); + label.top( labba, rp((0,0.5,0)) ); + drawarrow rp(0.85blue)--rp(0.8*0.5*red+0.85blue); + label.ulft( labsb, rp(0.2red+0.85blue) ); + dotlabel.bot( labc, rp(black) ); +endfig; + +verbatimtex +} +\end{document} +etex + +end. + + diff --git a/Master/texmf-dist/doc/metapost/featpost/example/repeated/geom_casq.mp b/Master/texmf-dist/doc/metapost/featpost/example/repeated/geom_casq.mp new file mode 100644 index 00000000000..bdc52c58d89 --- /dev/null +++ b/Master/texmf-dist/doc/metapost/featpost/example/repeated/geom_casq.mp @@ -0,0 +1,84 @@ +% geom_casq.mp +% L. Nobre G. +% 1999 + +%input featpost3Dplus2D; + +%input la3Dmacros; +%input hlr3Dmacros; +%input plan2Dmacros; +% + +verbatimtex +\documentclass{article} +\usepackage{beton} +\usepackage{concmath} +\usepackage{ccfonts} +\begin{document} +etex + +beginfig(1); + + f := (1.7,1.2,1); + + Spread := 150; + + color gridvec, sizevec, currpos, starpos, bordpos, orig, axxc, ayyc, azzc; + numeric alphamax, long, base, thetamax; + axxc = (0.8,0,0); + ayyc = (0,0.7,0); + azzc = (0,0,0.4); + sizevec := (11,9,9); + gridvec := (0.1,0.1,0.1); + thetamax := 50; + alphamax := 70; + long := 0.65; + base := 0.3; + starpos := ( -0.5*X(gridvec)*(X(sizevec)-1) , + -0.5*Y(gridvec)*(Y(sizevec)-1) , + -0.5*Z(gridvec)*(Z(sizevec)-1) ); + bordpos := starpos - 0.5*gridvec; + orig := starpos + 0.5*gridvec + (0.05,0,-0.1); + npf1 := 4; + F1p1 := bordpos; + F1p2 := (X(bordpos),-Y(bordpos), Z(bordpos)); + F1p3 := (-X(bordpos),-Y(bordpos), Z(bordpos)); + F1p4 := (-X(bordpos),Y(bordpos), Z(bordpos)); + npf2 := 4; + F2p1 := (X(bordpos),Y(bordpos), -Z(bordpos)); + F2p2 := (X(bordpos),-Y(bordpos), -Z(bordpos)); + F2p3 := (-X(bordpos),-Y(bordpos), -Z(bordpos)); + F2p4 := (-X(bordpos),Y(bordpos), -Z(bordpos)); + NF := 2; + + pickup pencircle scaled 1pt; + drawarrow rp(orig)..rp(orig+axxc); + drawarrow rp(orig)..rp(orig+ayyc); + drawarrow rp(orig)..rp(orig+azzc); + label.bot(btex z etex,rp(orig+axxc)); + label.bot(btex x etex,rp(orig+ayyc)); + label.lft(btex y etex,rp(orig+azzc)); + pickup pencircle scaled 1.5pt; + + starpos := (base,0,0)+orig; + drawarrow rp(orig)..rp(starpos); + label.bot(btex $\vec{n}_0$ etex,rp(starpos)); + + currpos := starpos; + starpos := long*(cosd(alphamax),sind(alphamax),0)+orig; + drawarrow rp(orig)..rp(starpos); + label.bot(btex $\vec{H}$ etex,rp(starpos)); + angline(starpos,currpos,orig,0.55,btex $\alpha$ etex,bot); + + starpos := base*(cosd(thetamax),sind(thetamax),0)+orig; + drawarrow rp(orig)..rp(starpos); + label.bot(btex $\vec{n}$ etex,rp(starpos)); + angline(starpos,currpos,orig,0.2,btex $\theta$ etex,bot); +endfig; + +verbatimtex +\end{document} +etex + +end; + diff --git a/Master/texmf-dist/doc/metapost/featpost/example/repeated/geom_freder.mp b/Master/texmf-dist/doc/metapost/featpost/example/repeated/geom_freder.mp new file mode 100644 index 00000000000..9a834001aab --- /dev/null +++ b/Master/texmf-dist/doc/metapost/featpost/example/repeated/geom_freder.mp @@ -0,0 +1,94 @@ +% geom_freder.mp +% L. Nobre G. +% 2000 + +%input featpost3Dplus2D; + +verbatimtex \documentclass{article} \usepackage{beton} \usepackage{concmath} \usepackage{ccfonts} \begin{document} etex + +beginfig(1); + + f := (1.7,1.2,1); + + Spread := 250; + + color gridvec, sizevec, currpos, starpos, bordpos; + numeric i, j, k, counter, theta, phi, long, base, thetamax; + path closingface; + sizevec := (11,9,7); + gridvec := (0.1,0.1,0.1); + thetamax := 50; + long := 0.08; + base := 0.1; + starpos := ( -0.5*X(gridvec)*(X(sizevec)-1) , + -0.5*Y(gridvec)*(Y(sizevec)-1) , + -0.5*Z(gridvec)*(Z(sizevec)-1) ); + bordpos := starpos - 0.5*gridvec; + npf1 := 4; + F1p1 := bordpos; + F1p2 := (X(bordpos),-Y(bordpos), Z(bordpos)); + F1p3 := (-X(bordpos),-Y(bordpos), Z(bordpos)); + F1p4 := (-X(bordpos),Y(bordpos), Z(bordpos)); + npf2 := 4; + F2p1 := (X(bordpos),Y(bordpos), -Z(bordpos)); + F2p2 := (X(bordpos),-Y(bordpos), -Z(bordpos)); + F2p3 := (-X(bordpos),-Y(bordpos), -Z(bordpos)); + F2p4 := (-X(bordpos),Y(bordpos), -Z(bordpos)); + NF := 2; + draw facepath(1); + counter := 1; + for i= X(sizevec) upto X(sizevec): + for j=1 upto Y(sizevec): + for k=1 upto Z(sizevec): + phi := 0; + theta := 0; + currpos := starpos+( (i-1)*X(gridvec) , + (j-1)*Y(gridvec) , + (k-1)*Z(gridvec) ); + phi := thetamax*cosd(90*Z(currpos)/abs(Z(starpos))); + theta := 90+thetamax*cosd(90*Z(currpos)/abs(Z(starpos))); + generatedirline( counter, phi, theta, long, currpos ); + counter := incr(counter); + endfor; + endfor; + endfor; + for i=1 upto X(sizevec)-1: + for j=Y(sizevec) upto Y(sizevec): + for k=1 upto Z(sizevec): + phi := 0; + theta := 0; + currpos := starpos+( (i-1)*X(gridvec) , + (j-1)*Y(gridvec) , + (k-1)*Z(gridvec) ); + phi := thetamax*cosd(90*Z(currpos)/abs(Z(starpos))); + theta := 90+thetamax*cosd(90*Z(currpos)/abs(Z(starpos))); + generatedirline( counter, phi, theta, long, currpos ); + counter := incr(counter); + endfor; + endfor; + endfor; + NL := decr(counter); + director_invisible( true, base, false ); + closingface = facepath(2); + fill closingface withcolor background; + draw closingface; + pickup pencircle scaled 1pt; + currpos := (-X(bordpos)+X(gridvec),Y(bordpos), Z(bordpos)); + starpos := (-X(bordpos)+X(gridvec),Y(bordpos)+4*Y(gridvec), Z(bordpos)); + drawarrow rp(currpos)..rp(starpos); + label.bot(btex $y$ etex,rp(starpos)); + currpos := (-X(bordpos)+X(gridvec),Y(bordpos), Z(bordpos)); + starpos := (-X(bordpos)+X(gridvec),Y(bordpos), Z(bordpos)+4*Z(gridvec)); + drawarrow rp(currpos)..rp(starpos); + label.lft(btex $z$ etex,rp(starpos)); + currpos := (X(bordpos),-Y(bordpos)+Y(gridvec), Z(bordpos)); + starpos := (X(bordpos)+4*X(gridvec),-Y(bordpos)+Y(gridvec), Z(bordpos)); + drawarrow rp(currpos)..rp(starpos); + label.bot(btex $x$ etex,rp(starpos)); + +endfig; + +verbatimtex \end{document} etex + +end; + diff --git a/Master/texmf-dist/doc/metapost/featpost/example/repeated/graphexample.mp b/Master/texmf-dist/doc/metapost/featpost/example/repeated/graphexample.mp new file mode 100644 index 00000000000..6591ed5d0f9 --- /dev/null +++ b/Master/texmf-dist/doc/metapost/featpost/example/repeated/graphexample.mp @@ -0,0 +1,16 @@ +% graphexample.mp +% L. Nobre G. +% 2003 + +%input featpost3Dplus2D; + +input mp-tool; + +beginfig(1); + path thezigzag; + thezigzag = zigzagfrontier( origin, (200,200), 17, + 4, 20, 16, 12, blue, background ); + draw thezigzag; +endfig; + +end; diff --git a/Master/texmf-dist/doc/metapost/featpost/example/repeated/lcurvature.mp b/Master/texmf-dist/doc/metapost/featpost/example/repeated/lcurvature.mp new file mode 100644 index 00000000000..ca6d5670457 --- /dev/null +++ b/Master/texmf-dist/doc/metapost/featpost/example/repeated/lcurvature.mp @@ -0,0 +1,114 @@ +% lcurvature.mp +% L. Nobre G. +% 2002 + +%input featpost3Dplus2D; + +verbatimtex +\documentclass{article} +\usepackage{beton} +\usepackage{concmath} +\usepackage{ccfonts} +\begin{document} +etex + +beginfig(1); + f := (5,3,4); + Spread := 70; + numeric gridstep, anglstep, cylength, cyradius, numcylis; + numeric i, j, curcoord, vcx, vcy, vcz, curangle, curnorma; + numeric major, othcoord, othangle; + color base, lenvec; + cylength := 0.1; + cyradius := 0.3; + gridstep := cyradius*2.2; + anglstep := 10; + numcylis := 5; + major := 0.35*gridstep*numcylis; + for i=1 upto numcylis: % bend + curnorma := i-0.5*(numcylis+1); + curangle := curnorma*anglstep; + vcx := cylength*cosd(curangle); + vcy := 0; + vcz := cylength*sind(curangle); + base := major*(sind(curangle),-1,-cosd(curangle)); + lenvec := (vcx,vcy,vcz); + rigorousdisc( 0, true,base,cyradius,lenvec); + endfor; + for i=1 upto numcylis: % twist + curnorma := i-0.5*(numcylis+1); + curcoord := curnorma*gridstep; + curangle := curnorma*anglstep; + vcx := 0; + vcy := cylength*sind(curangle); + vcz := cylength*cosd(curangle); + base := (curcoord,-vcy/2-major,-vcz/2+major); + lenvec := (vcx,vcy,vcz); + rigorousdisc( 0, true,base,cyradius,lenvec); + endfor; + for i=1 upto numcylis: % splay + curnorma := i-0.5*(numcylis+1); + curcoord := curnorma*gridstep; + curangle := curnorma*anglstep; + vcx := cylength*sind(curangle); + vcy := 0; + vcz := -cylength*cosd(curangle); + lenvec := (vcx,vcy,vcz); + for j=1 upto numcylis: + othcoord := (j-0.5*(numcylis+1))*gridstep; + base := major*(0,1,-cosd(curangle)); + base := base +(curcoord,othcoord,0); + rigorousdisc( 0, true,base,cyradius,lenvec); + endfor; + endfor; + for i=1 upto numcylis: % saddle + curnorma := i-0.5*(numcylis+1); + curcoord := curnorma*gridstep; + curangle := curnorma*anglstep; + vcx := cylength*sind(curangle); + for j=1 upto numcylis: + othcoord := (j-0.5*(numcylis+1))*gridstep; + othangle := (j-0.5*(numcylis+1))*anglstep; + vcy := -cylength*sind(othangle); + vcz := -cylength*cosd(curangle)*cosd(othangle); + base := major*(0,1,1-cosd(curangle)+cosd(othangle)); + base := base + (curcoord,othcoord,0); + lenvec := (vcx,vcy,vcz); + rigorousdisc( 0, true,base,cyradius,lenvec); + endfor; + endfor; +endfig; + +beginfig(2); + f := (5,3,4); + Spread := 70; + numeric gridstep, cylength, cyradius, numcylis; + numeric i, j, curcoord, curangle, curnorma; + numeric othcoord, othangle, zcoord, coef, othnorma; + color base, lenvec; + cylength := 0.1; + cyradius := 0.3; + gridstep := cyradius*2.2; + numcylis := 5; + coef := 0.32; + for i=1 upto numcylis: % splay + curnorma := i-0.5*(numcylis+1); + curcoord := curnorma*gridstep; + curangle := -curcoord*2*coef; + for j=1 upto numcylis: + othnorma := j-0.5*(numcylis+1); + othcoord := othnorma*gridstep; + othangle := -othcoord*2*coef; + zcoord := -coef*(othcoord**2+curcoord**2); + base := (curcoord,othcoord,zcoord); + lenvec := cylength*N((-curangle,-othangle,1)); + rigorousdisc( 0, true,base,cyradius,lenvec); + endfor; + endfor; +endfig; + +verbatimtex +\end{document} +etex + +end; diff --git a/Master/texmf-dist/doc/metapost/featpost/example/repeated/mptoolcone.mp b/Master/texmf-dist/doc/metapost/featpost/example/repeated/mptoolcone.mp new file mode 100644 index 00000000000..4053632efb5 --- /dev/null +++ b/Master/texmf-dist/doc/metapost/featpost/example/repeated/mptoolcone.mp @@ -0,0 +1,49 @@ +% mptoolcone.mp +% L. Nobre G. +% Y2K + +%input featpost3Dplus2D; + +input mp-tool; + + defaultscale := 1.1; +% defaultfont := "putr8r"; + defaultfont := "bchr8r"; + +beginfig(0); + color orig, axxc, ayyc, azzc; + color nalfa, gammacnt; + path gamma, cone, mybox; + numeric theta, radius, xxsize, yysize, zzsize; + picture mypict; + + f := (3,4,2); + Spread := 100; + xxsize = 0.8; + yysize = 0.8; + zzsize = 1.0; + theta = 25; + + orig = (0,0,0); + mypict = thelabel("Texto com acentuação.",rp(orig)); + mybox = bbox mypict; + draw mypict; + draw mybox; + axxc = (xxsize,0,0); + ayyc = (0,yysize,0); + azzc = (0,0,zzsize); + nalfa = (0,sind(theta),cosd(theta)); + gammacnt = cosd(theta)*cosd(theta)*nalfa; + radius := cosd(theta)*sind(theta); + gamma = rigorouscircle( gammacnt, nalfa, radius ); + cone = rigorouscone(true, gammacnt, nalfa, radius, (xxsize,yysize,0) ); + draw gamma dashed evenly; + draw cone; + drawarrow rp(orig)..rp(axxc); + drawarrow rp(orig)..rp(ayyc); + drawarrow rp(orig)..rp(azzc); +endfig; + +end; + + diff --git a/Master/texmf-dist/doc/metapost/featpost/example/repeated/nembends.mp b/Master/texmf-dist/doc/metapost/featpost/example/repeated/nembends.mp new file mode 100644 index 00000000000..5900e88d187 --- /dev/null +++ b/Master/texmf-dist/doc/metapost/featpost/example/repeated/nembends.mp @@ -0,0 +1,48 @@ +% nembends.mp +% L. Nobre G. +% 2002 + +%input featpost3Dplus2D; + +%input mp-tool; + +beginfig(1); + f := 2*(5,3,4); + Spread := 70; + + numeric hsdev, basestep, basxstep, basesdev; + numeric i, j, k, coesdev, cylength, cyradius, basen; + numeric vcx, vcy, vcz, hcurr, xcurr, ycurr, aone; + numeric atwo, zcurr, coestep, angsdev, basxsdev; + color lenvec, currpos; + + + coestep := -0.15; + cylength := 0.6; + cyradius := 0.1; + basen := 3; + basestep := cylength*1.6; + basxstep := cyradius*4; + basesdev := basestep*0.001; + basxsdev := basxstep*0.001; + hsdev := 0.005; + coesdev := 0.001; + angsdev := 0.02; + for i=-basen upto basen: + for j=-basen upto basen: + xcurr := i*basxstep + basxsdev*normaldeviate; + ycurr := j*basestep + basesdev*normaldeviate; + zcurr := ycurr**2*coestep + coesdev*normaldeviate; + aone := angsdev*normaldeviate; + atwo :=angle(1,ycurr*2*coestep)+angsdev*normaldeviate; + vcz := cosd( aone )*sind( atwo ); + vcy := cosd( aone )*cosd( atwo ); + vcx := sind( aone ); + currpos := ( xcurr, ycurr, zcurr ); + lenvec := cylength*( vcx, vcy, vcz ); + rigorousdisc(0,true,currpos-0.5*lenvec,cyradius,lenvec); + endfor; + endfor; +endfig; + +end; diff --git a/Master/texmf-dist/doc/metapost/featpost/example/repeated/nemdirector.mp b/Master/texmf-dist/doc/metapost/featpost/example/repeated/nemdirector.mp new file mode 100644 index 00000000000..4c1d88fe095 --- /dev/null +++ b/Master/texmf-dist/doc/metapost/featpost/example/repeated/nemdirector.mp @@ -0,0 +1,82 @@ +% nemdirector.mp +% L. Nobre G. +% 2003 + +%input featpost3Dplus2D; + +verbatimtex +\documentclass{article} +%\usepackage{mathpazo} +\begin{document} +etex + +beginfig(1); + f := 2*(5,3,4); + Spread := 70; + + numeric cylength, cyradius, zoneradi, zoneleng; + numeric i, angsdev, halfnum, directlen, arrthick; + numeric vcx, vcy, vcz, xcurr, ycurr, thickfact; + numeric atwo, zcurr, aone, apos; + color lenvec, currpos, tippos; + path arrpath; + picture tmppict; + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Nu + cylength := 0.45; + cyradius := 0.1; + zoneradi := 2; + zoneleng := 4; + directlen := 5.6; + angsdev := 12; + halfnum := 130; + thickfact := 5; + arrthick := Spread*ps( (0,0,0), thickfact ); + tippos := (0,0,0.5*directlen); + arrpath := rp(-tippos)--rp(tippos); + ahlength := 3*arrthick; + ahangle := 40; + for i=1 upto halfnum: + zcurr := -0.5*zoneleng+uniformdeviate( zoneleng ); + apos := uniformdeviate( 180 ); + xcurr := -zoneradi*cosd( apos )*uniformdeviate( 1 ); + ycurr := zoneradi*sind( apos )*uniformdeviate( 1 ); + aone := uniformdeviate( 360 ); + atwo := angsdev*normaldeviate; + vcz := cosd( atwo ); + vcy := sind( atwo )*sind( aone ); + vcx := sind( atwo )*cosd( aone ); + currpos := ( xcurr, ycurr, zcurr ); + lenvec := cylength*( vcx, vcy, vcz ); + generatedirline( i, aone, 90-atwo, cylength, currpos ); + endfor; + NL:= halfnum; + director_invisible( true, thickfact, false ); + drawarrow arrpath withpen pencircle scaled arrthick; + for i=1 upto halfnum: + zcurr := -0.5*zoneleng+uniformdeviate( zoneleng ); + apos := uniformdeviate( 180 ); + xcurr := zoneradi*cosd( apos )*uniformdeviate( 1 ); + ycurr := zoneradi*sind( apos )*uniformdeviate( 1 ); + aone := uniformdeviate( 360 ); + atwo := angsdev*normaldeviate; + vcz := cosd( atwo ); + vcy := sind( atwo )*sind( aone ); + vcx := sind( atwo )*cosd( aone ); + currpos := ( xcurr, ycurr, zcurr ); + lenvec := cylength*( vcx, vcy, vcz ); + generatedirline( i, aone, 90-atwo, cylength, currpos ); + endfor; + NL:= halfnum; + director_invisible( true, thickfact, false ); + label.ulft(btex $\vec{n}$ etex scaled 8.5 rotated 90, rp(tippos) ); + tmppict := currentpicture rotated -90; + currentpicture := nullpicture; + draw tmppict; +endfig; + +verbatimtex +\end{document} +etex + +end; diff --git a/Master/texmf-dist/doc/metapost/featpost/example/repeated/nemquira.mp b/Master/texmf-dist/doc/metapost/featpost/example/repeated/nemquira.mp new file mode 100644 index 00000000000..41caf4578a6 --- /dev/null +++ b/Master/texmf-dist/doc/metapost/featpost/example/repeated/nemquira.mp @@ -0,0 +1,60 @@ +% nemquira.mp +% L. Nobre G. +% 2002 + +%input featpost3Dplus2D; + + + +beginfig(1); + f := 7*(1,2,1); + Spread := 70; + + numeric hstep, hmax, hsdev, basestep, basemax, basesdev; + numeric i, j, k, angsdev, cylength, cyradius, basen, hn; + numeric vcx, vcy, vcz, hcurr, xcurr, ycurr, hbase, aone; + numeric atwo, zcurr, angstep, counter; + color lenvec, currpos; + + angstep := 20; + cylength := 0.45; + cyradius := 0.1; + basen := 4.5; + hn := 1; + basestep := cylength*1.37; + hstep := basestep; + basesdev := basestep*0.05; + hsdev := basesdev; + hbase := -0.8; + angsdev := 4; + + basemax := basen*basestep; + hmax := hn*hstep; + counter := 0; + for i=-basen upto basen: + for j=-basen upto basen: + hcurr := hbase; + forever: + exitunless hcurr < hmax+hbase; + hcurr := hcurr + hstep; + zcurr := hcurr + hsdev*normaldeviate; + xcurr := i*basestep + basesdev*normaldeviate; + ycurr := j*basestep + basesdev*normaldeviate; + aone := angsdev*normaldeviate; + atwo := j*angstep + angsdev*normaldeviate; + vcz := sind( atwo+90 ); + vcy := cosd( atwo+90 )*sind( aone ); + vcx := cosd( atwo+90 )*cosd( aone ); + currpos := ( xcurr, ycurr, zcurr ); + lenvec := cylength*( vcx, vcy, vcz ); +% rigorousdisc( 0, true, currpos-0.5*lenvec, cyradius, lenvec); + counter := incr(counter); + generatedirline( counter, aone, 90+atwo, cylength, currpos ); + endfor; + endfor; + endfor; + NL := counter; + director_invisible( true, 5, false ); +endfig; + +end; diff --git a/Master/texmf-dist/doc/metapost/featpost/example/repeated/nemquirapitch.mp b/Master/texmf-dist/doc/metapost/featpost/example/repeated/nemquirapitch.mp new file mode 100644 index 00000000000..d29f0ffeb10 --- /dev/null +++ b/Master/texmf-dist/doc/metapost/featpost/example/repeated/nemquirapitch.mp @@ -0,0 +1,69 @@ +% nemquirapitch.mp +% L. Nobre G. +% 2002 + +%input featpost3Dplus2D; + +verbatimtex +\documentclass{article} +\usepackage{beton} +\usepackage{concmath} +\usepackage{ccfonts} +\begin{document} +etex + +beginfig(1); + f := 7*(1,2,1); + Spread := 70; + ahlength := 3mm; + ahangle := 48; + + numeric hsdev, basestep, basemax, basesdev, xpos; + numeric i, j, angsdev, cylength, cyradius, basen; + numeric vcx, vcy, vcz, hcurr, xcurr, ycurr, aone; + numeric atwo, zcurr, angstep, counter, linelen; + color lenvec, currpos; + + angstep := 20; + cylength := 0.45; + cyradius := 0.1; + basen := 4.5; + basestep := cylength*1.37; + basesdev := basestep*0.05; + hsdev := basesdev; + angsdev := 4; + linelen := cylength; + + basemax := basen*basestep; + xpos := -(basen+1)*basestep; + draw rp((-xpos-0.5*cylength,-basemax,0))--rp((-xpos+0.5*cylength,-basemax,0)); + draw rp((-xpos-0.5*cylength,basemax,0))--rp((-xpos+0.5*cylength,basemax,0)); + drawdblarrow rp((-xpos,-basemax,0))--rp((-xpos,basemax,0)); + label.urt( btex $\frac{p}{2}$ etex scaled 2.5, rp((-xpos,0,0)) ); + counter := 0; + for i=-basen upto basen: + for j=-basen upto basen: + zcurr := hsdev*normaldeviate; + xcurr := i*basestep + basesdev*normaldeviate; + ycurr := j*basestep + basesdev*normaldeviate; + aone := angsdev*normaldeviate; + atwo := j*angstep + angsdev*normaldeviate; + vcz := sind( atwo+90 ); + vcy := cosd( atwo+90 )*sind( aone ); + vcx := cosd( atwo+90 )*cosd( aone ); + currpos := ( xcurr, ycurr, zcurr ); + lenvec := cylength*( vcx, vcy, vcz ); +% rigorousdisc( 0, true, currpos-0.5*lenvec, cyradius, lenvec); + counter := incr(counter); + generatedirline( counter, aone, 90+atwo, cylength, currpos ); + endfor; + endfor; + NL := counter; + director_invisible( true, 5, false ); +endfig; + +verbatimtex +\end{document} +etex + +end; diff --git a/Master/texmf-dist/doc/metapost/featpost/example/repeated/nemuniax.mp b/Master/texmf-dist/doc/metapost/featpost/example/repeated/nemuniax.mp new file mode 100644 index 00000000000..b2ebec11c8f --- /dev/null +++ b/Master/texmf-dist/doc/metapost/featpost/example/repeated/nemuniax.mp @@ -0,0 +1,61 @@ +% nemuniax.mp +% L. Nobre G. +% 2003 + +%input featpost3Dplus2D; + +beginfig(1); + f := 2*(5,3,4); + Spread := 70; + + numeric hstep, hmax, hsdev, basestep, basemax, basesdev; + numeric i, j, k, angsdev, cylength, cyradius, basen, hn; + numeric vcx, vcy, vcz, hcurr, xcurr, ycurr, hbase, aone; + numeric atwo, zcurr, counter; + color lenvec, currpos; + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Nu + cylength := 0.6; + cyradius := 0.1; + basen := 12; + hn := 5; + basestep := cyradius*3.1; + hstep := cylength*1.5; + basesdev := cyradius*0.1; + hsdev := hstep*0.2; + hbase := -0.8; + angsdev := 12; + + basemax := basen*basestep; + hmax := hn*hstep; + counter := 0; + for i=1 upto basen: + for j=1 upto basen: + hcurr := hbase; + forever: + exitunless hcurr < hmax+hbase; + hcurr := hcurr + hstep; + zcurr := hcurr + hsdev*normaldeviate; + xcurr := i*basestep + basesdev*normaldeviate; + ycurr := j*basestep + basesdev*normaldeviate; + aone := uniformdeviate( 360 ); + atwo := angsdev*normaldeviate; + vcz := cosd( atwo ); + vcy := sind( atwo )*sind( aone ); + vcx := sind( atwo )*cosd( aone ); + currpos := ( xcurr, ycurr, zcurr ); + lenvec := cylength*( vcx, vcy, vcz ); +% rigorousdisc( 0, true, currpos-0.5*lenvec, cyradius, lenvec); + counter := incr( counter ); + generatedirline( counter, aone, 90-atwo, cylength, currpos ); +% generateonebiax( counter, aone, 90-atwo, cylength, +% -60, 0.25*cylength, currpos ); + endfor; + endfor; + endfor; + NL := counter; + director_invisible( true, 5, false ); +% director_invisible( false, 5, true ); +endfig; + +end; diff --git a/Master/texmf-dist/doc/metapost/featpost/example/repeated/pathernon.mp b/Master/texmf-dist/doc/metapost/featpost/example/repeated/pathernon.mp new file mode 100644 index 00000000000..8b3d8b56140 --- /dev/null +++ b/Master/texmf-dist/doc/metapost/featpost/example/repeated/pathernon.mp @@ -0,0 +1,65 @@ +% pathernon.mp +% L. Nobre G. +% 2004 + +beginfig(0); + f := (4.8,3,3.65); + viewcentr := black; + Spread := 50; + horiZon := 0; + ShadowOn := false; + LightSource := (1,-1,7); + SphericalDistortion := true; + OverRidePolyhedricColor := true; + numeric side, coluheight, blocheight, roofheight, coluray, fact; + numeric acroside, acronum, auxa, raya, rayb , poshemi, lena, lenb; + color roofcenter, ba, bb, bc, bd, coluvec, colucen, auxb, auxc, auxd; + side = 1; + roofheight = 0.1; + coluheight = 0.7; + acroside = 4; + acronum = 20; + coluray = 0.06; + blocheight = 0.1; + poshemi = 0.25*side; + raya = 0.08; + rayb = 0.12; + lena = 0.13; + lenb = 0.26; + fact = 1.3; + auxa = 0.5*side-coluray; + coluvec = blue*coluheight; + colucen = 0.5*coluvec; + auxc = (0,-poshemi,0); + auxd = (0,-poshemi,raya+rayb); + setthestage( acronum, acroside ); + V1 := (0.5*side,-0.5*side,coluheight+blocheight); + V2 := (0.5*side,0.5*side,coluheight+blocheight); + V3 := (-0.5*side,0.5*side,coluheight+blocheight); + V4 := (-0.5*side,-0.5*side,coluheight+blocheight); + V5 := (0,-0.5*side,coluheight+roofheight+blocheight); + V6 := (0,0.5*side,coluheight+roofheight+blocheight); + makeface1(1,4,5); + makeface2(1,2,6,5); + makeface3(2,3,6); + makeface4(3,4,5,6); + ba = (auxa,-auxa,0); + bb = (auxa,auxa,0); + bc = (-auxa,auxa,0); + bd = (-auxa,-auxa,0); + roofcenter = (V1+V2+V3+V4+V5+V6)/6; + auxb = roofcenter-blue*blocheight; + V7 := (-0.5*side,-0.5*side,coluheight); + getready( "draw_invisible( false, false, white, black )", roofcenter ); + getready( "rigorousdisc( 0, true, ba, coluray, coluvec )", ba+colucen); + getready( "rigorousdisc( 0, true, bb, coluray, coluvec )", bb+colucen); + getready( "rigorousdisc( 0, true, bc, coluray, coluvec )", bc+colucen); + getready( "rigorousdisc( 0, true, bd, coluray, coluvec )", bd+colucen); + getready("kindofcube(false,true,V7,0,0,0,side,side,blocheight)",auxb); + getready( "whatisthis(auxc,lenb*red,lena*green,raya,fact)", auxc ); + getready( "spatialhalfsfear( auxd, blue, rayb )", auxd ); + doitnow; + produce_vga_border; +endfig; + +end; diff --git a/Master/texmf-dist/doc/metapost/featpost/example/repeated/planpht.mp b/Master/texmf-dist/doc/metapost/featpost/example/repeated/planpht.mp new file mode 100644 index 00000000000..dac34577eff --- /dev/null +++ b/Master/texmf-dist/doc/metapost/featpost/example/repeated/planpht.mp @@ -0,0 +1,291 @@ +% planpht.mp +% L. Nobre G. +% 2003 + +%input featpost3Dplus2D; + +% Planification wise 3D figures + +verbatimtex +\documentclass{article} +\usepackage{beton} +\usepackage{concmath} +\usepackage{ccfonts} +\begin{document} +etex + +beginfig(1); % phtpbq +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Definition of the 3D-figure + V1 := (1,0,0); + V2 := (0,1,0); + V5 := (0,0,1); + V3 := (-1,0,0); + V4 := (0,-1,0); + makeface1(1,2,3,4); + makeface2(1,2,5); + makeface3(2,3,5); + makeface4(3,4,5); + makeface5(4,1,5); +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + f := (3,5,4); + Spread := 50; + pickup pencircle scaled 1pt; + sharpraytrace; +endfig; + +beginfig(2); % phtdpbp + numeric altura, raio, xp, xs, yp, ys; + altura = 0.5257311; + raio = 0.8506508; + yp = 0.80901699; + ys = 0.5; + xp = 0.2628655; + xs = -0.6881909; +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Definition of the 3D-figure + V1 := (raio,0,0); + V2 := (xp,yp,0); + V3 := (xs,ys,0); + V4 := (xs,-ys,0); + V5 := (xp,-yp,0); + V6 := (0,0,altura); + V7 := (0,0,-altura); + makeface1(1,2,6); + makeface2(5,1,6); + makeface3(2,3,6); + makeface4(3,4,6); + makeface5(4,5,6); + makeface6(1,2,7); + makeface7(5,1,7); + makeface8(2,3,7); + makeface9(3,4,7); + makeface10(4,5,7); +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + f := (3,5,1.8); + Spread := 50; + pickup pencircle scaled 1pt; + sharpraytrace; +endfig; + +beginfig(3); % phtcubo eps + defaultscale := 1; + defaultfont := "ccr10"; + V1 := (1,1,1); + V2 := (-1,1,1); + V3 := (-1,-1,1); + V4 := (1,-1,1); + V5 := (1,1,-1); + V6 := (-1,1,-1); + V7 := (-1,-1,-1); + V8 := (1,-1,-1); + makeface1(1,2,3,4); + makeface2(5,6,7,8); + makeface3(1,2,6,5); + makeface4(2,3,7,6); + makeface5(3,4,8,7); + makeface6(4,1,5,8); +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + f := (3,5,3); + Spread := 50; + pickup pencircle scaled 1pt; + sharpraytrace; + label.lft("A", rp(V8) ); + label.top("B", rp(V1) ); + label.top("C", rp(V3) ); + label.lft("D", rp(V4) ); + label.rt("E", rp(V2) ); + label.rt("F", rp(V6) ); +endfig; + +beginfig(4); % phtptq + numeric high, low; + high = sqrt(2); + low = sqrt(2)-1.6818; + V1 := (1,1,high); + V2 := (-1,1,high); + V3 := (-1,-1,high); + V4 := (1,-1,high); + V5 := (high,0,low); + V6 := (0,high,low); + V7 := (-high,0,low); + V8 := (0,-high,low); + V9 := (0,0,0); + makeface1(5,6,7,8); + makeface2(6,1,2); + makeface3(7,2,3); + makeface4(8,3,4); + makeface5(5,4,1); + makeface6(5,6,1); + makeface7(6,7,2); + makeface8(7,8,3); + makeface9(8,5,4); + makeface10(9,1,2); + makeface11(9,2,3); + makeface12(9,3,4); + makeface13(9,4,1); +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + f := (2,6,5); + Spread := 50; + pickup pencircle scaled 1pt; + sharpraytrace; +endfig; + +beginfig(5); % phtnonrec + numeric tro; + tro = 2; + V1 := (tro,0,0); + V2 := (0,tro,0); + V3 := (-tro,0,0); + V4 := (0,-tro,0); + V5 := (1,1,1); + V6 := (-1,1,1); + V7 := (-1,-1,1); + V8 := (1,-1,1); + V9 := (1,1,-1); + V10 := (-1,1,-1); + V11 := (-1,-1,-1); + V12 := (1,-1,-1); + V13 := (0,0,tro); + V14 := (0,0,-tro); + makeface1(1,5,13,8); + makeface2(2,6,13,5); + makeface3(3,7,13,6); + makeface4(4,8,13,7); + makeface5(1,5,2,9); + makeface6(2,6,3,10); + makeface7(3,7,4,11); + makeface8(4,8,1,12); + makeface9(1,9,14,12); + makeface10(2,10,14,9); + makeface11(3,11,14,10); + makeface12(4,12,14,11); +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + f := 2*(5,3,1.5); + Spread := 50; + pickup pencircle scaled 1pt; + sharpraytrace; +endfig; + +beginfig(6); % pauphtflex eps + defaultscale := 1; + defaultfont := "ccr10"; + color A, B, C, D, E, F, G; + numeric tro, Adist; + tro = sqrt(3)/2; + Adist = 0.88854; + V1 := (-1.8,0,0); + V2 := (-1.8,0.6,1.2*tro); + V3 := (1,0.6,1.2*tro); + V4 := (1,0,0); + V5 := (1,2.5,0); + V6 := (-1.8,2.5,0); + V7 := (0,0,0); + V8 := (0,0.707,0); + V9 := (0,0.707/4,0.707*tro/2); + V10:= (0.21928,Adist/2,tro*Adist); + V11:= (-0.37392,0.39638,0); + V12:= (-1.2125,Adist,0); + makeface1(1,2,3,4); + makeface2(4,5,6,1); + makeface3(7,8,9); + makeface4(8,9,10); + makeface5(8,10,11); + makeface6(10,11,12); + A = (0,1.3,0); + B = (0,1.3+sqrt(0.75),0); + C = (-0.5,1.3+sqrt(0.75),0); + D = (E+B)/2; + E = (sqrt(0.75),1.3,0); + F = ((1+sqrt(3))/4,1.3+(1+sqrt(3))/4,0); + G = (-1.5,1.3+sqrt(0.75),0); + f := 3*(2,5,2); + Spread := 100; + draw rp(A)--rp(B)--rp(E)--cycle; + draw rp(F)--rp(B)--rp(E)--cycle; + draw rp(A)--rp(B)--rp(C)--cycle; + draw rp(A)--rp(C)--rp(G)--cycle; + draw rp(A)--rp(F) dashed evenly; + pickup pencircle scaled 1pt; + sharpraytrace; + draw rp(V7)--rp(V9); + draw rp(V10)--rp(V9); + draw rp(V12)--rp((-1.2125,0,0)) dashed evenly; + label.urt("Adist", rp((V12+(-1.2125,0,0))/2) ); + label.lft("A", rp(V10) ); + label.bot("B", rp(V8) ); + label.bot("B", rp(B) ); + label.lrt("C", rp(V11) ); + label.lft("D", rp(V9) ); + label.bot("D", rp(D) ); + label.llft("F", rp(V7) ); + label.bot("F", rp(F) ); + label.rt("G", rp(V12) ); + angline(V6, V2, V1, 0.6, btex $\alpha$ etex, rt); + angline(V10, 2*V9, V9, 0.7, btex $\theta$ etex, bot); + draw rp(V9+N(V10-V9)*0.65)--rp(V9+N(V10-V9)*0.8); + draw rp(V9+N(V9)*0.5)--rp(V9+N(V9)*0.8); + label.bot(btex $p$ etex, rp((F+B)/2) ); + label.ulft(btex $q$ etex, rp((D+B)/2) ); + label.lft(btex $r$ etex, rp((D+A)/2) ); + label.llft(btex $s$ etex, rp((A+B)/2) ); + label.llft(btex $t$ etex, rp((A+C)/2) ); + label.bot(btex $t$ etex, rp((G+C)/2) ); + label.bot(btex $u$ etex, rp((C+B)/2) ); + label.top(btex $v$ etex, rp((A+G)/2) ); +endfig; + +beginfig(7); % pauphttoro eps + defaultscale := 1; + defaultfont := "ccr10"; + numeric sinthe, costhe, ux, uz, lx, lz, co; + costhe = (4*sqrt(5)-sqrt(3))/11; + sinthe = sqrt(1-costhe**2); + ux = costhe*sqrt(2)/2; + uz = sinthe/2; + lx = sqrt(4/3)*sinthe; + lz = -sqrt(2/3)*costhe; + co = sqrt(2)*(2*sqrt(5)+5*sqrt(3))/22; + V1 := (ux,0,-uz); + V2 := (lx,0,-lz); + V3 := (0,ux,uz); + V4 := (0,lx,lz); + V5 := (co,co,0); + V6 := (-ux,0,-uz); + V7 := (-lx,0,-lz); + V8 := (-co,co,0); + makeface1(1,2,3); + makeface2(1,2,5); + makeface3(2,3,5); + makeface4(3,4,5); + makeface5(3,4,1); + makeface6(1,4,5); + makeface7(3,6,7); + makeface8(3,7,8); + makeface9(6,7,8); + makeface10(3,8,4); + makeface11(4,6,8); + makeface12(3,4,6); + Spread := 100; +% f := (1,-0.4,3); + f := 2*(2,1,2.8); + draw_invisible( false, false, TableC6, black ); +% cartaxes(0.2,0.2,0.2); + draw rp(V2)--rp(V1)--rp(V4) dashed evenly; + draw rp(V3)--rp(V1)--rp(V5) dashed evenly; + draw rp(V6)--rp(V4) dashed evenly; + draw rp(V6)--rp(V8) dashed evenly; +% pickup pencircle scaled 1pt; +% sharpraytrace; + label.rt("A", rp(V5) ); + label.rt("C", rp(V3+(0,0.05,0)) ); + label.rt("B", rp(V4) ); + label.rt("D", rp(V8) ); + label.lft("E", rp(V2) ); + label.llft("F", rp(V1) ); + label.lft("G", rp(V7) ); + label.lft("H", rp(V6) ); +endfig; + +verbatimtex \end{document} etex + +end; + diff --git a/Master/texmf-dist/doc/metapost/featpost/example/repeated/rigorcubo.mp b/Master/texmf-dist/doc/metapost/featpost/example/repeated/rigorcubo.mp new file mode 100644 index 00000000000..831861fc9b6 --- /dev/null +++ b/Master/texmf-dist/doc/metapost/featpost/example/repeated/rigorcubo.mp @@ -0,0 +1,36 @@ +% rigorcubo.mp +% L. Nobre G. +% 2003 + +%input featpost3Dplus2D; + +beginfig(0); + defaultscale := 3; + defaultfont := "ccr10"; + Spread := 50; + V1 := (1,1,1); + V2 := (-1,1,1); + V3 := (-1,-1,1); + V4 := (1,-1,1); + V5 := (1,1,-1); + V6 := (-1,1,-1); + V7 := (-1,-1,-1); + V8 := (1,-1,-1); + makeface1(1,2,3,4); + makeface2(5,6,7,8); + makeface3(1,2,6,5); + makeface4(2,3,7,6); + makeface5(3,4,8,7); + makeface6(4,1,5,8); + f := (3,5,3); + pickup pencircle scaled 1pt; + sharpraytrace; + label.lft("A", rp(V8) ); + label.top("B", rp(V1) ); + label.top("C", rp(V3) ); + label.lft("D", rp(V4) ); + label.rt("E", rp(V2) ); + label.rt("F", rp(V6) ); +endfig; + +end; diff --git a/Master/texmf-dist/doc/metapost/featpost/example/repeated/rmnbob.mp b/Master/texmf-dist/doc/metapost/featpost/example/repeated/rmnbob.mp new file mode 100644 index 00000000000..54d568c1e49 --- /dev/null +++ b/Master/texmf-dist/doc/metapost/featpost/example/repeated/rmnbob.mp @@ -0,0 +1,45 @@ + +Spread := 70; +f := (5,7,10); + +%input featpost3Dplus2D; + +beginfig(1); + numeric i, r[], stepr, len, Numr, Minn, Maxn; + numeric fws, NumLines, linex; + path aro[], oneline; + color centre, axe, baseone, basetwo; + + stepr := 0.1; + len := 3; + Numr := 5; + Minn := 5; + centre := (0,0,0); + axe := (1,0,0); + fws := 2; + NumLines := 30; + for i=0 upto NumLines: + linex := fws*(i/NumLines-0.5); + oneline := rp((linex,0.5*fws,-0.5*fws)) + --rp((linex,-0.5*fws,-0.5*fws)) + --rp((linex,-0.5*fws,0.5*fws)); + draw oneline withcolor (0.7*background); + endfor; + baseone := centre+0.5*len*axe; + basetwo := centre-0.5*len*axe; + Maxn := Minn+Numr; + for i=Minn upto Maxn: + r[i] := i*stepr; + aro[i] := rigorouscircle(baseone,axe,r[i]); + endfor; + rigorousdisc( 0, true, baseone, r[Maxn], -len*axe ); + drawoptions( dashed evenly ); + rigorousdisc( 0, true, baseone, r[Minn], -len*axe ); + for i=Maxn downto Minn: + filldraw aro[i] withcolor ((0.5+0.3*normaldeviate)*background); + endfor; + drawoptions( ); + draw aro[Maxn]; +endfig; + +end. diff --git a/Master/texmf-dist/doc/metapost/featpost/example/repeated/sal.mp b/Master/texmf-dist/doc/metapost/featpost/example/repeated/sal.mp new file mode 100644 index 00000000000..e2c447a27a9 --- /dev/null +++ b/Master/texmf-dist/doc/metapost/featpost/example/repeated/sal.mp @@ -0,0 +1,104 @@ +% Cesium Cloride Crystal Structure and EBG fields together +% L. Nobre G. +% 2002 + +verbatimtex +\documentclass{article} +\begin{document} +etex + +beginfig(1); + numeric sfr, radfac, ind; + color xv, yv, zv; + path p[]; + f := 3*(5,2,3); + Spread := 50; + sfr := 0.2; + radfac := 2.0; + xv := (sfr,0,0); + yv := (0,sfr,0); + zv := (0,0,sfr); + V1 := (-1,-1,-1); + V2 := (-1,1,-1); + V3 := (1,-1,-1); + V4 := (1,1,-1); + V5 := (-1,-1,1); + V6 := (-1,1,1); + V7 := (1,-1,1); + V8 := (1,1,1); + V9 := (0,0,0); + for ind=1 upto 8: + p[ind] := rigorousfearpath( V[ind], sfr ); + endfor; + p9 := rigorousfearpath( V9, sfr*radfac ); + unfill p1; + draw p1; + draw rp(V1+yv)--rp(V2-yv); + draw rp(V1+xv)--rp(V3-xv); + unfill p2; + draw p2; + unfill p3; + draw p3; + draw rp(V4-yv)--rp(V3+yv); + draw rp(V4-xv)--rp(V2+xv); + unfill p4; + draw p4; + draw rp(V1+zv)--rp(V5-zv); + draw rp(V2+zv)--rp(V6-zv); + unfill p9; + draw p9; + draw rp(V3+zv)--rp(V7-zv); + draw rp(V4+zv)--rp(V8-zv); + unfill p5; + draw p5; + draw rp(V5+yv)--rp(V6-yv); + draw rp(V5+xv)--rp(V7-xv); + unfill p6; + draw p6; + unfill p7; + draw p7; + draw rp(V8-yv)--rp(V7+yv); + draw rp(V8-xv)--rp(V6+xv); + unfill p8; + draw p8; + label( btex Cs${}^{+}$ etex, rp( V8 ) ); + label( btex Cl${}^{-}$ etex, rp( V9 ) ); +endfig; + +beginfig(2); + numeric inc, ind, tep, larg, altr, lene; + path efld, velv, arch, auxi; + picture bfld; + pair vpos, cent; + tep = 1cm; + larg = 4; + altr = 3; + lene = larg*tep; + bfld = btex $\times$ etex; +% bfld := bfld shifted -(center bfld); + efld = origin--(lene,0); + for ind = 0 upto altr: + drawarrow efld shifted (0,ind*tep); + endfor; + auxi = efld shifted (0,tep); + for ind = 1 upto altr: + for inc = 1 step 2 until 2*larg: + label( bfld, (0.5*inc*tep,(ind-0.5)*tep) ); + endfor; + endfor; + vpos = (tep,0.5tep); + label.lft( btex $\vec{B}$ etex, (0.5tep,(altr-0.5)*tep) ); + label.lft( btex $\vec{E}$ etex, origin ); + label.top( btex $\vec{v}$ etex, vpos ); + velv = vpos--((larg-1)*tep,(altr-0.5)*tep); + drawarrow velv; + cent = auxi intersectionpoint velv; + arch = ((fullcircle scaled (altr*tep*0.87)) shifted cent) cutafter velv; + draw arch; + label.rt( btex $\theta$ etex, point 0.5*length arch of arch ); +endfig; + +verbatimtex \end{document} etex + +end; + diff --git a/Master/texmf-dist/doc/metapost/featpost/example/repeated/sfearschem.mp b/Master/texmf-dist/doc/metapost/featpost/example/repeated/sfearschem.mp new file mode 100644 index 00000000000..a9f2ea6a344 --- /dev/null +++ b/Master/texmf-dist/doc/metapost/featpost/example/repeated/sfearschem.mp @@ -0,0 +1,34 @@ +% sfearchem.mp +% L. Nobre G. +% 2003 + +%input featpost3Dplus2D; + +verbatimtex +\documentclass{article} +\usepackage{beton} +\usepackage{concmath} +\usepackage{ccfonts} +\begin{document} +etex + +defaultfont:="cmssu30"; + +beginfig(1); + f := (4,2,1.5); + cartaxes( 1.5,1.5,0.75 ); + drawoptions( withcolor red withpen pencircle scaled 1.3pt ); + draw goodcirclepath( (0,0,0), (0,0,1), 1 ); + drawoptions(); + draw rigorouscircle( (0,0,0), (0,0,1), 1 ); + draw spatialhalfcircle( (0,0,0), (0,0,1), 0.5, true ); + draw spatialhalfcircle( (0,0,0), (0,0,1), 0.5, false ) dashed evenly; + draw rigorousfearpath( (0,0,0), 0.5 ); + draw rp((0,0,0.5)) withpen pencircle scaled 1.3pt; +endfig; + +verbatimtex +\end{document} +etex + +end; diff --git a/Master/texmf-dist/doc/metapost/featpost/example/repeated/signalvertexSD.mp b/Master/texmf-dist/doc/metapost/featpost/example/repeated/signalvertexSD.mp new file mode 100644 index 00000000000..dfc5eb3f501 --- /dev/null +++ b/Master/texmf-dist/doc/metapost/featpost/example/repeated/signalvertexSD.mp @@ -0,0 +1,40 @@ +% signalvertexSD.mp +% L. Nobre G. +% 2003 + +%input featpost3Dplus2D; + +% Draw a torus with NP dots, a section of 3.14*RS^2 +% and a total diameter of 2*(RB+RS). The dots are placed +% on a single closed line that turns around the $z$ axis +% NB times and around the section NS times. + +f := 0.45f; + +%SphericalDistortion := true; Spread := 11; + +beginfig(1); + NP:=2000; + RB:=1; + RS:=0.2; + R3:=0.0; + NB:=8; + NS:=5; + jB:=360*NB/NP; + jS:=360*NS/NP; + for i=1 upto NP: + phi :=i*jS; + theta :=i*jB; + first :=(RB+(RS+R3*sind(4*theta))*cosd(phi))*cosd(theta); + second:=(RB+(RS+R3*sind(4*theta))*cosd(phi))*sind(theta); + third := (RS+R3*sind(4*theta))*sind(phi); + signalvertex( (first,second,third), 1, black ); + endfor; +endfig; + +end; + + + + + diff --git a/Master/texmf-dist/doc/metapost/featpost/example/repeated/spherample.mp b/Master/texmf-dist/doc/metapost/featpost/example/repeated/spherample.mp new file mode 100644 index 00000000000..39352e6ba02 --- /dev/null +++ b/Master/texmf-dist/doc/metapost/featpost/example/repeated/spherample.mp @@ -0,0 +1,49 @@ +% spherample.mp +% L. Nobre G. +% 2002 + +%input featpost3Dplus2D; + +SphericalDistortion := true; + +beginfig(1); + color orig, axxc, ayyc, azzc; + color nalfa, gammacnt, vertex; + numeric altura, grids, radius, xxsize, aux, + yysize, zzsize, i, numc, slope; + path sfear; + + f := (5,4,2); + Spread := 120; + ShiftV := (200,200); + altura = 1; + radius = 0.3; + grids = 1; + numc = 9; + slope = 3; + + for i=1 upto numc: + aux := (i-1-0.5*(numc-1))*grids; + gammacnt := (0,aux,0); + vertex := (aux/slope,aux,altura); + nalfa := vertex - gammacnt; + sfear := rigorousfearpath(gammacnt,radius); + unfill sfear; + draw sfear; + draw spatialhalfcircle(gammacnt,nalfa,radius,true); + endfor; + xxsize = radius; + yysize = 0.5*(numc-1)*grids; + zzsize = altura; + orig = (0,0,0); + axxc = (xxsize,0,0); + ayyc = (0,yysize,0); + azzc = (0,0,zzsize); +% drawarrow rp(orig)..rp(axxc); +% drawarrow rp(orig)..rp(ayyc); +% drawarrow rp(orig)..rp(azzc); +endfig; + +end; + + diff --git a/Master/texmf-dist/doc/metapost/featpost/example/repeated/squareanglines.mp b/Master/texmf-dist/doc/metapost/featpost/example/repeated/squareanglines.mp new file mode 100644 index 00000000000..769f2af8721 --- /dev/null +++ b/Master/texmf-dist/doc/metapost/featpost/example/repeated/squareanglines.mp @@ -0,0 +1,14 @@ +% squareanglines.mp +% L. Nobre G. +% 2002 + +%input featpost3Dplus2D; + +beginfig(1); + cartaxes(1,1,1); + squareangline( red, green, black, 0.4); + squareangline( green, blue, black, 0.6); + squareangline( blue, red, black, 0.8); +endfig; + +end. diff --git a/Master/texmf-dist/doc/metapost/featpost/example/repeated/troncoconedef.mp b/Master/texmf-dist/doc/metapost/featpost/example/repeated/troncoconedef.mp new file mode 100644 index 00000000000..0429ac4533f --- /dev/null +++ b/Master/texmf-dist/doc/metapost/featpost/example/repeated/troncoconedef.mp @@ -0,0 +1,54 @@ +% troncoconedef.mp +% L. Nobre G. +% 2002 + +%input featpost3Dplus2D; + +verbatimtex +\documentclass{article} +\usepackage{beton} +\usepackage{concmath} +\usepackage{ccfonts} +\begin{document} +etex + +f := (5,0,3); + +def twoclicpathesinapen( expr CycleA, CycleB )= + begingroup + numeric TheLengthOfA, TheLengthOfB, TheMargin; + path SubPathA, SubPathB; + TheMargin = 0.02; + TheLengthOfA = ( length CycleA ) - TheMargin; + TheLengthOfB = ( length CycleB ) - TheMargin; + SubPathA = subpath ( 0, TheLengthOfA ) of CycleA; + SubPathB = subpath ( 0, TheLengthOfB ) of CycleB; + ( makepath makepen ( SubPathA--SubPathB--cycle ) ) + endgroup +enddef; + +beginfig(0); + numeric rayo, rayt; + path onec, twoc, botc; + color axec, baso, bast; + rayo = 1; + rayt = 0.7; + axec = red; + baso = black; + bast = (1,1,1); + onec = goodcirclepath( baso, axec, rayo ); + twoc = goodcirclepath( bast, axec, rayt ); + botc = twoclicpathesinapen( onec, twoc ); + fill botc withcolor green; + draw onec; + draw twoc; + draw botc; + dotlabel.bot( btex onec0 etex, point 0 of onec ); + dotlabel.bot( btex twoc0 etex, point 0 of twoc ); +endfig; + +verbatimtex +\end{document} +etex + +end. diff --git a/Master/texmf-dist/doc/metapost/featpost/example/repeated/twistnlc.mp b/Master/texmf-dist/doc/metapost/featpost/example/repeated/twistnlc.mp new file mode 100644 index 00000000000..b3611cfbb14 --- /dev/null +++ b/Master/texmf-dist/doc/metapost/featpost/example/repeated/twistnlc.mp @@ -0,0 +1,54 @@ +% explvis2 +% L. Nobre G. +% 1999 + +%input featpost3Dplus2D; + +beginfig(1); + + f := (2,1,1); + + Spread := 250; + + color gridvec, sizevec, currpos, starpos, bordpos; + numeric i, j, k, counter, theta, phi, thetamin, + thetamax, thetastp, long, base, radius, polar; + sizevec := (4,36,1); + gridvec := (0.14,0.1,0.3); + thetamin := 90; + thetamax := 150; + long := 0.08; + base := 0.02; + thetastp := (thetamax-thetamin)/(X(sizevec)-1); + starpos := ( -X(gridvec)*X(sizevec) , + -X(gridvec)*X(sizevec) , + 0 ); + bordpos := starpos; + npf1 := 4; + F1p1 := bordpos; + F1p2 := (X(bordpos),-Y(bordpos), Z(bordpos)); + F1p3 := (-X(bordpos),-Y(bordpos), Z(bordpos)); + F1p4 := (-X(bordpos),Y(bordpos), Z(bordpos)); + counter := 2; + for i=1 upto X(sizevec): + radius := (i-1)*X(gridvec); + polar := i*floor(Y(sizevec)/X(sizevec)); + for j=1 upto polar: + for k=1 upto Z(sizevec): + phi := 360*(j-1)/polar; + theta := thetamin+(i-1)*thetastp; + currpos := radius*(cosd(phi-90),sind(phi-90),0) + +(k-1)*(0,0,Z(gridvec)); + generatedirface( counter, phi, theta, long, base, currpos ); + counter := incr(counter); + endfor; + endfor; + endfor; + NF := decr(counter); + draw_all_test(false); +% sharpraytrace; +endfig; + +end; + + diff --git a/Master/texmf-dist/doc/metapost/featpost/example/repeated/twistroundbiax.mp b/Master/texmf-dist/doc/metapost/featpost/example/repeated/twistroundbiax.mp new file mode 100644 index 00000000000..59a47907a88 --- /dev/null +++ b/Master/texmf-dist/doc/metapost/featpost/example/repeated/twistroundbiax.mp @@ -0,0 +1,62 @@ +% twistroundbiax.mp +% L. Nobre G. +% 2002 + +%input featpost3Dplus2D; + + + +beginfig(1); + + f := (2,1,1); + + Spread := 250; + + color gridvec, sizevec, currpos, starpos, bordpos; + numeric i, j, k, counter, theta, phi, gamma, thetamin, innercircle, + thetamax, thetastp, long, base, radius, polar, larg; + sizevec := (4,36,1); + gridvec := (0.143,0.1,0.1); + thetamin := 90; + thetamax := 150; + long := 0.08; + larg := 0.02; + base := 0.2; + gamma := -30; + innercircle := 0.5; + thetastp := (thetamax-thetamin)/(X(sizevec)-1); + starpos := ( -X(gridvec)*X(sizevec) , + -X(gridvec)*X(sizevec) , + 0 ); + bordpos := starpos; + npf1 := 4; + F1p1 := bordpos; + F1p2 := (X(bordpos),-Y(bordpos), Z(bordpos)); + F1p3 := (-X(bordpos),-Y(bordpos), Z(bordpos)); + F1p4 := (-X(bordpos),Y(bordpos), Z(bordpos)); + NF := 1; + draw facepath(1); + counter := 0; + for i=1 upto X(sizevec): + radius := (i-innercircle)*X(gridvec); + polar := i*floor(Y(sizevec)/X(sizevec)); + for j=1 upto polar: + for k=1 upto Z(sizevec): + phi := 360*(j-1)/polar; + theta := thetamin+(i-innercircle)*thetastp; + currpos := radius*(cosd(phi-90),sind(phi-90),0) + +(k-1)*(0,0,Z(gridvec)); + counter := incr(counter); +% generateonebiax( counter, phi, theta, long, +% gamma, larg, currpos ); + generatedirline( counter, phi, theta, long, currpos ); + endfor; + endfor; + endfor; + NL := counter; + director_invisible( true, base, false ); +endfig; + +end; + + diff --git a/Master/texmf-dist/doc/metapost/featpost/example/repeated/twocyclestogether.mp b/Master/texmf-dist/doc/metapost/featpost/example/repeated/twocyclestogether.mp new file mode 100644 index 00000000000..ca94e87dc2e --- /dev/null +++ b/Master/texmf-dist/doc/metapost/featpost/example/repeated/twocyclestogether.mp @@ -0,0 +1,113 @@ +% twocyclestogether.mp +% L. Nobre G. +% 2003 + +%input featpost3Dplus2D; + +f := (4.5,-6,5); + +beginfig(1); + numeric len[], ray[]; + color axe[], pos[], fix[], lab[], Ve[]; + color reflabpos, reflabpoi; + picture txt[], dashpatt; + numeric inclang, aberang, sampang; + numeric squside, sqlevel, ul, outermagpos; + numeric innerray, polesep, fracone, fracsam; + numeric labelscale; + path tmpath, aupath, copath; + + pickup pencircle scaled 1.2pt; + dashpatt = evenly scaled 3; + ul = 0.1; + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Change one of these at a time. %%%%%%%% + inclang = 129; + aberang = 19; + outermagpos = 22ul; + polesep = 1.7ul; + len4 = 30ul; +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + sampang = 30; + fracone = 0.33; + fracsam = 0.86; + ray1 = 10ul; + ray2 = 6ul; + ray3 = 8ul; + ray4 = 1.5ul; + ray5 = 4ul; + ray6 = 3ul; + ray7 = 3.5ul; + ray8 = 2ul; + len3 = 7ul; + len5 = 3ul; + len7 = 3.5ul; + len8 = 7ul; + + len1 = (1-fracone)*(outermagpos-ray5-polesep); + pos1 = (-outermagpos,0,0); + rigorousdisc( 0, true, pos1, ray1, len1*(1,0,0) ); + + len2 = fracone*(outermagpos-ray5-polesep); + pos2 = (len1-outermagpos,0,0); + tmpath := goodcirclepath( pos2, (1,0,0), ray1 ); + aupath := goodcirclepath( (-ray5-polesep,0,0), (1,0,0), ray2 ); + copath := twocyclestogether( tmpath, aupath ); + unfill copath; + draw copath; + draw aupath; + + Ve5 := fracsam*ray5*( sind( sampang ), + cosd( sampang )*cosd( inclang -90 ), + cosd( sampang )*sind( inclang -90 ) ); + Ve6 := fracsam*ray5*( -sind( sampang ), + cosd( sampang )*cosd( inclang -90 ), + cosd( sampang )*sind( inclang -90 ) ); + Ve8 := fracsam*ray5*( sind( sampang ), + -cosd( sampang )*cosd( inclang -90 ), + -cosd( sampang )*sind( inclang -90 ) ); + Ve7 := fracsam*ray5*( -sind( sampang ), + -cosd( sampang )*cosd( inclang -90 ), + -cosd( sampang )*sind( inclang -90 ) ); + tmpath := rp(Ve5)--rp(Ve6)--rp(Ve7)--rp(Ve8)--cycle; + unfill tmpath; + draw tmpath; + + axe6 = ( 0, cosd( inclang+aberang ), sind( inclang+aberang ) ); + pos6 = ray1*axe6; + len6 = len4; + axe7 = ( 0, cosd( inclang-aberang ), sind( inclang-aberang ) ); + pos7 = ( ray1 + 0.5len6 )*axe7; + draw rp(pos6)--rp((0,0,0))--rp(pos7) dashed dashpatt; + + pos8 = pos7+len7*axe7; + tmpath := goodcirclepath( pos7, axe7, ray7 ); + aupath := goodcirclepath( pos8, axe7, ray8 ); + copath := twocyclestogether( tmpath, aupath ); + unfill copath; + draw copath; + draw aupath; + + axe8 = axe7; + rigorousdisc( 0, true, pos8, ray8, len8*axe8 ); + + len9 = len2; + pos9 = (ray5+polesep,0,0); + ray9 = ray2; + ray10 = ray1; + tmpath := goodcirclepath( pos9, (1,0,0), ray9 ); + pos10 = pos9+len9*(1,0,0); + aupath := goodcirclepath( pos10, (1,0,0), ray10 ); + copath := twocyclestogether( tmpath, aupath ); + unfill copath; + draw copath; + draw aupath; + + len10 = len1; + rigorousdisc( 0, true, pos10, ray10, len10*(1,0,0) ); + + produce_auto_scale; +endfig; + +end. diff --git a/Master/texmf-dist/doc/metapost/featpost/example/repeated/twoupcones.mp b/Master/texmf-dist/doc/metapost/featpost/example/repeated/twoupcones.mp new file mode 100644 index 00000000000..cc9b697dd37 --- /dev/null +++ b/Master/texmf-dist/doc/metapost/featpost/example/repeated/twoupcones.mp @@ -0,0 +1,51 @@ +% twoupcones.mp +% L. Nobre G. +% 2004 + +%input featpost3Dplus2D; + +verbatimtex +\documentclass{article} +\usepackage{beton,concmath,ccfonts} +\begin{document} +etex + +f := 3*(2,1,0.5); + +beginfig(1); + numeric raya, rayb, heia, heib, rang, marg, u; + color cena, cenb, vera, verb, auxa, auxb, pora, porb, poha, pohb; + u = 0.38; + raya = 1u; + rayb = 2u; + heia = 0.65u; + marg = 0.2u; + rang = 60; + heib = heia*rayb/raya; + cena = (raya*(1+marg),0,0); + cenb = (-rayb*(1+marg),0,0); + auxa = cena + raya*(cosd(rang),sind(rang),0); + auxb = cenb + rayb*(cosd(rang),sind(rang),0); + pora = 0.5[auxa,cena]; + porb = 0.5[auxb,cenb]; + vera = cena+heia*blue; + verb = cenb+heib*blue; + poha = 0.5[cena,vera]; + pohb = 0.5[cenb,verb]; + verygoodcone(true,cenb,blue,rayb,verb); + draw rp(verb)--rp(cenb)--rp(auxb) dashed evenly; + label.urt(btex $h_1$ etex, rp(pohb)); + label.urt(btex $R_1$ etex, rp(porb)); + verygoodcone(true,cena,blue,raya,vera); + draw rp(vera)--rp(cena)--rp(auxa) dashed evenly; + label.urt(btex $h_2$ etex, rp(poha)); + label.urt(btex $R_2$ etex, rp(pora)); +endfig; + +verbatimtex +\end{document} +etex + +end; + + diff --git a/Master/texmf-dist/doc/metapost/featpost/example/standard/anglinerigorouscircle.mp b/Master/texmf-dist/doc/metapost/featpost/example/standard/anglinerigorouscircle.mp new file mode 100644 index 00000000000..57548730161 --- /dev/null +++ b/Master/texmf-dist/doc/metapost/featpost/example/standard/anglinerigorouscircle.mp @@ -0,0 +1,108 @@ +% angline_rigorouscircle.mp +% L. Nobre G. +% 2003 + +%input featpost3Dplus2D; + +% bash: export TEX=latex +% tcsh: setenv TEX latex + +verbatimtex +\documentclass{article} +\usepackage{beton,concmath,ccfonts} +\begin{document} +etex + +beginfig(1); + color orig, axxc, ayyc, azzc; + color field, nalfa, ngamma, alfacnt, gammacnt, nazy, nax; + path alfa, gamma; + numeric nalfad, theta, radius, gammang, xxsize, yysize, zzsize; + numeric xxpos, yypos, zzpos, fieldpos, deltarad, deltapos; + numeric thetarad, thetapos, nalfapos, ngammapos; + numeric etalpharad, etalphapos, alphapos, gammapos; + picture xxlabel, yylabel, zzlabel, fieldlabel, deltalabel; + picture nalfalabel, ngammalabel, etalphalabel, alphalabel; + picture gammalabel, thetalabel; + + f := (3,4,2); + Spread := 100; + xxsize = 0.8; + xxpos = 6; + yysize = 0.8; + yypos = 6; + zzsize = 1.3; + zzpos = 4; + field = (0.7,0,0.3); + fieldpos = 2; + deltarad = 0.45; + deltapos = 3; + nalfad = 1.0; + theta = 25; + thetarad = 0.3; + thetapos = 2; + nalfapos = 7; + gammang = 65; + ngammapos = 7; + etalpharad = 0.4; + etalphapos = 2; + alphapos = 6; + gammapos = 0; + + xxlabel = btex $x_c$ etex; + yylabel = btex $y_c$ etex; + zzlabel = btex $z_c$ etex; + deltalabel = btex $\Delta$ etex; + fieldlabel = btex $\mathbf{B}$ etex; + thetalabel = btex $\theta$ etex; + nalfalabel = btex $\vec{n}_\alpha$ etex; + ngammalabel = btex $\vec{n}_\gamma$ etex; + etalphalabel= btex $\eta_\alpha$ etex; + alphalabel = btex $\alpha$ etex; + gammalabel = btex $\gamma$ etex; + orig = (0,0,0); + axxc = (xxsize,0,0); + ayyc = (0,yysize,0); + azzc = (0,0,zzsize); + nalfa = (0,sind(theta),cosd(theta)); + alfacnt = (0,0,nalfad*cosd(theta)); + radius = nalfad*sind(theta); + alfa = rigorouscircle( alfacnt, (0,0,1), radius ); + gammacnt = cosd(theta)*cosd(theta)*nalfa; + radius := cosd(theta)*sind(theta); + gamma = rigorouscircle( gammacnt, nalfa, radius ); + nazy = radius*sind(gammang)*ncrossprod( nalfa, axxc ); + nax = radius*cosd(gammang)*ncrossprod( ayyc, nalfa ); + ngamma = gammacnt+nax+nazy; + draw alfa dashed evenly; + draw gamma dashed evenly; + drawarrow rp(orig)..rp(axxc); + drawarrow rp(orig)..rp(ayyc); + drawarrow rp(orig)..rp(azzc); + drawarrow rp(orig)..rp(field); + drawarrow rp(orig)..rp(nalfa); + drawarrow rp(orig)..rp(ngamma); + drawarrow subpath (4,3) of alfa; + drawarrow subpath (8,7) of gamma; + anglinen( field, azzc, orig, deltarad, deltalabel, deltapos ); + anglinen( azzc, nalfa, orig, thetarad, thetalabel, thetapos ); + anglinen( ngamma, field, orig, etalpharad, etalphalabel, etalphapos ); + labeln( xxlabel, rp(axxc), xxpos ); + labeln( yylabel, rp(ayyc), yypos ); + labeln( zzlabel, rp(azzc), zzpos ); + labeln( fieldlabel, rp(field), fieldpos ); + labeln( nalfalabel, rp(nalfa), nalfapos ); + labeln( ngammalabel, rp(ngamma), ngammapos ); + labeln( alphalabel, point 3 of alfa, alphapos ); + labeln( gammalabel, point 7 of gamma, gammapos ); + pickup pencircle scaled 1.5; + draw rp(alfacnt); + draw rp(gammacnt); +% produce_auto_scale; +endfig; + +verbatimtex +\end{document} +etex + +end; diff --git a/Master/texmf-dist/doc/metapost/featpost/example/standard/cartaxes.mp b/Master/texmf-dist/doc/metapost/featpost/example/standard/cartaxes.mp new file mode 100644 index 00000000000..af8576e06c2 --- /dev/null +++ b/Master/texmf-dist/doc/metapost/featpost/example/standard/cartaxes.mp @@ -0,0 +1,28 @@ +verbatimtex +\documentclass{article} +\begin{document} + +%input featpost3Dplus2D; +etex +beginfig(1); + cartaxes(1,1,1); +endfig; +f := (5,3.5,1); +beginfig(2); + cartaxes(1,1,1); + color va, vb, vc, vd; + va = (0.29,0.7,1.0); + vb = (X(va),Y(va),0); + vc = N((-Y(va),X(va),0)); + vd = (0,Y(vc),0); + drawarrow rp(black)--rp(va); + draw rp(black)--rp(vb)--rp(va) dashed evenly; + draw rp(vc)--rp(vd) dashed evenly; + drawarrow rp(black)--rp(vc); + squareangline( va, vc, black, 0.15 ); + angline( va, red, black, 0.75, decimal getangle( va, red ), lft ); +endfig; +verbatimtex +\end{document} +etex +end; diff --git a/Master/texmf-dist/doc/metapost/featpost/example/standard/conicurv.mp b/Master/texmf-dist/doc/metapost/featpost/example/standard/conicurv.mp new file mode 100644 index 00000000000..15aea824d14 --- /dev/null +++ b/Master/texmf-dist/doc/metapost/featpost/example/standard/conicurv.mp @@ -0,0 +1,94 @@ +% conicurv.mp +% L. Nobre G. +% Y2K + +%input featpost3Dplus2D; + +verbatimtex +\documentclass{article} +\usepackage{beton} +\usepackage{concmath} +\usepackage{ccfonts} +\begin{document} +etex + +beginfig(1); + f := (10,-5,5.44); + Spread := 30; + numeric shortradius, longradius, theta, width, height; + numeric updiff, refsize, vecsize, anglar, bord, totup; + color rn, fa, fc, pg, centre, speed, refx, refy; + color iplow, iphig, oplow,ophig, anglebase, central, refo; + color eplow, ephig, aplow,aphig, anglebase, central, refo; + theta = 30; + width = 3; + shortradius = 2; + bord = 2; + refsize = 1; + vecsize = 2; + height = 0.3; + anglar = 1.75; + totup = 3; + longradius = shortradius + width*cosd(theta); + updiff = width*sind(theta); + iplow = (0,shortradius,0); + iphig = (0,longradius,updiff); + oplow = (-shortradius,0,0); + ophig = (-longradius,0,updiff); + aplow = -iplow; + aphig = (0,-longradius,updiff); + eplow = -oplow; + ephig = (longradius,0,updiff); + anglebase = (0,longradius,0); + centre = 0.5[iplow,iphig]+(0,0,height); + central = (0,0,Z(centre)); +% refo = (0,0,-shortradius*sind(theta)/cosd(theta)); + refo = (0,0.5*Y(centre),Z(centre)); + refx = refsize*(0,cosd(theta),sind(theta)); + refy = refsize*(0,-sind(theta),cosd(theta)); +% anglinen( iplow, oplow, (0,0,0), shortradius, "", 0 ); +% anglinen( iphig, ophig, (0,0,updiff), longradius, "", 0 ); + angline(iphig,anglebase,iplow,width/anglar,btex $\theta$ etex,rt); + draw rp(central) withpen pencircle scaled 2pt; + draw rp(iplow)--rp(iphig); + draw rp(oplow)--rp(ophig); + draw rp(aplow)--rp(aphig); + draw rp(eplow)--rp(ephig); + draw rp(iphig)--rp(anglebase)--rp(aplow) dashed evenly; + draw rp(oplow)--rp(eplow) dashed evenly; + draw rp(central)--rp(centre) dashed evenly; +% draw rp((0,-bord,-bord))--rp((0,longradius+bord,-bord)) +% --rp((0,longradius+bord,totup))--rp((0,-bord,totup))--cycle +% withpen pencircle scaled 2pt; + draw rp((0,0,-bord))--rp((0,longradius+bord,-bord)) + --rp((0,longradius+bord,totup))--rp((0,0,totup))--cycle; + drawarrow rp(refo)..rp(refo+refy); + drawarrow rp(refo)..rp(refo+refx); + label.llft(btex $y$ etex, rp(refo+refy)); + label.lrt(btex $x$ etex, rp(refo+refx)); + rn = centre+vecsize*refy; + fa = centre+vecsize*refx; + fc = centre+vecsize*(0,1,0); + pg = centre+vecsize*(0,0,-1); + speed = centre+vecsize*(1,0,0); + drawarrow rp(centre)..rp(rn); + drawarrow rp(centre)..rp(fa); + drawarrow rp(centre)..rp(fc); + drawarrow rp(centre)..rp(pg); + drawarrow rp(centre)..rp(speed); + label.rt(btex $\vec{R}_N$ etex, rp(rn)); + label.top(btex $\vec{F}_a$ etex, rp(fa)); + label.urt(btex $\vec{F}_c$ etex, rp(fc)); + label.rt(btex $\vec{P}$ etex, rp(pg)); + label.rt(btex $\vec{v}$ etex, rp(speed)); + draw rp(centre) withpen pencircle scaled 10pt withcolor blue; + pickup pencircle scaled 2pt; + draw rigorouscircle( (0,0,updiff), (0,0,1), longradius ); + draw rigorouscircle( (0,0,0), (0,0,1), shortradius ); +endfig; + +verbatimtex +\end{document} +etex + +end; diff --git a/Master/texmf-dist/doc/metapost/featpost/example/standard/cubicfacecentered.mp b/Master/texmf-dist/doc/metapost/featpost/example/standard/cubicfacecentered.mp new file mode 100644 index 00000000000..ac359c3ddf2 --- /dev/null +++ b/Master/texmf-dist/doc/metapost/featpost/example/standard/cubicfacecentered.mp @@ -0,0 +1,112 @@ +% cubicfacecentered.mp +% L. Nobre G. +% 2003 + +%input featpost3Dplus2D; + +% verbatimtex +% \documentclass{article} +% \usepackage{beton} +% \usepackage{concmath} +% \usepackage{ccfonts} +% \begin{document} +% etex + +beginfig(1); + numeric tro; + pen fina, media, grossa; + color mygray; + tro = 2; + V1 := (tro,0,0); + V2 := (0,tro,0); + V3 := (-tro,0,0); + V4 := (0,-tro,0); + V5 := (1,1,1); + V6 := (-1,1,1); + V7 := (-1,-1,1); + V8 := (1,-1,1); + V9 := (1,1,-1); + V10 := (-1,1,-1); + V11 := (-1,-1,-1); + V12 := (1,-1,-1); + V13 := (0,0,tro); + V14 := (0,0,-tro); + V15 := (tro,0,tro); + V16 := (0,tro,tro); + V17 := (tro,tro,0); + V18 := (tro,0,-tro); + V19 := (tro,-tro,0); + V20 := (0,-tro,tro); + V21 := (-tro,0,tro); + V22 := (-tro,tro,0); + V23 := (0,tro,-tro); + V24 := (-tro,0,-tro); + V25 := (0,-tro,-tro); + V26 := (-tro,-tro,0); + V27 := (-2*tro,-tro,-tro); + V28 := (-2*tro,-tro,tro); + V29 := (-2*tro,tro,tro); + V30 := (-2*tro,tro,-tro); + makeface1(1,5,13,8); + makeface2(2,6,13,5); + makeface3(3,7,13,6); + makeface4(4,8,13,7); + makeface5(1,5,2,9); + makeface6(2,6,3,10); + makeface7(3,7,4,11); + makeface8(4,8,1,12); + makeface9(1,9,14,12); + makeface10(2,10,14,9); + makeface11(3,11,14,10); + makeface12(4,12,14,11); + + makeface13(27,28,29,30); + makeface14(20,21,16,29,28); + makeface15(23,24,25,27,30); + makeface16(16,22,23,30,29); + makeface17(25,27,28,20,26); + makeface18(21,22,24,26); + makeface19(20,21,26); + makeface20(16,21,22); + makeface21(22,23,24); + makeface22(24,25,26); +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% f := 2*(5,3,1.5); +% f := 2*(5,3,4); + f := 2.34*(15,2.4,5.05); + Spread := 50; + fina = pencircle scaled 1pt; + media = pencircle scaled 1.2pt; + grossa= pencircle scaled 3pt; + mygray = 0.3background; +% pickup fina; +% draw rp(V25)--rp(V27)--rp(V28)--rp(V20)-- +% rp(V25)--rp(V23)--rp(V30)--rp(V27); + pickup media; + draw rp(V24)--rp(V25)--rp(V19)--rp(V20)-- + rp(V26)--rp(V25)--rp(V18)--rp(V23)-- + rp(V24)--rp(V26)--rp(V21)--rp(V22)--cycle withcolor mygray; + drawoptions( withpen grossa ); + draw_invisible( false, false, TableC3, black ); + fillfacewithlight( 14 ); + fillfacewithlight( 16 ); + drawoptions(); + pickup media; + draw rp(V15)--rp(V16)--rp(V22)--rp(V23)-- + rp(V17)--rp(V16)--rp(V21)--rp(V20)-- + rp(V15)--rp(V17)--rp(V18)--rp(V19)--cycle withcolor mygray; +% pickup fina; +% draw rp(V28)--rp(V29)--rp(V30); +% draw rp(V20)--rp(V16)--rp(V23); +% draw rp(V16)--rp(V29); + +endfig; + +% verbatimtex \end{document} etex + +end; + + + + + diff --git a/Master/texmf-dist/doc/metapost/featpost/example/standard/cubicfigures.mp b/Master/texmf-dist/doc/metapost/featpost/example/standard/cubicfigures.mp new file mode 100644 index 00000000000..93aebeb28a0 --- /dev/null +++ b/Master/texmf-dist/doc/metapost/featpost/example/standard/cubicfigures.mp @@ -0,0 +1,44 @@ +% cubicfigures.mp +% L. Nobre G. +% 2003 + +%input featpost3Dplus2D; + +f := ( 1.2 , 2.0 , 1.6 ); +Spread := 75; + +V1 := (1,1,1); +V2 := (-1,1,1); +V3 := (-1,-1,1); +V4 := (1,-1,1); +V5 := (1,1,-1); +V6 := (-1,1,-1); +V7 := (-1,-1,-1); +V8 := (1,-1,-1); +makeface1(1,2,3,4);makeface2(5,6,7,8); +makeface3(1,2,6,5);makeface4(2,3,7,6); +makeface5(3,4,8,7);makeface6(4,1,5,8); +makeline1(1,7);makeline2(2,8); +makeline3(3,5);makeline4(4,6); + +beginfig(1); + ParallelProj := true; + SphericalDistortion := false; + pickup pencircle scaled 1pt; + draw_all_test(true); +endfig; + +beginfig(2); + ParallelProj := false; + SphericalDistortion := false; + draw_all_test(true); +endfig; + +beginfig(3); + ParallelProj := false; + SphericalDistortion := true; + PrintStep := 5; + draw_all_test(true); +endfig; + +end; diff --git a/Master/texmf-dist/doc/metapost/featpost/example/standard/cylimple.mp b/Master/texmf-dist/doc/metapost/featpost/example/standard/cylimple.mp new file mode 100644 index 00000000000..bef31891c97 --- /dev/null +++ b/Master/texmf-dist/doc/metapost/featpost/example/standard/cylimple.mp @@ -0,0 +1,50 @@ +% cylimple.mp +% L. Nobre G. +% 2002 + +%input featpost3Dplus2D; + +SphericalDistortion := true; +f := 0.3*(5,4,2); +Spread := 40; +ShiftV := (200,200); + +%SphericalDistortion := false; +%f := 3.3*(5,4,2); +%Spread := 70; +%Shifts := (250,250); + +beginfig(1); + color orig, axxc, ayyc, azzc; + color nalfa, gammacnt, vertex; + numeric altura, grids, radius, xxsize, aux, + yysize, zzsize, i, numc, slope; + + altura = 1; + radius = 0.3; + grids = 1; + numc = 9; + slope = 3; + + for i=1 upto numc: + aux := (i-1-0.5*(numc-1))*grids; + gammacnt := (0,aux,0); + vertex := (aux/slope,aux,altura); + nalfa := vertex - gammacnt; + rigorousdisc( 0, true, gammacnt, radius, nalfa ); + endfor; + xxsize = radius; + yysize = 0.5*(numc-1)*grids; + zzsize = altura; + orig = (0,0,0); + axxc = (xxsize,0,0); + ayyc = (0,yysize,0); + azzc = (0,0,zzsize); +% drawarrow rp(orig)..rp(axxc); +% drawarrow rp(orig)..rp(ayyc); +% drawarrow rp(orig)..rp(azzc); +endfig; + +end; + + diff --git a/Master/texmf-dist/doc/metapost/featpost/example/standard/downloadicon.mp b/Master/texmf-dist/doc/metapost/featpost/example/standard/downloadicon.mp new file mode 100644 index 00000000000..78b9be800e7 --- /dev/null +++ b/Master/texmf-dist/doc/metapost/featpost/example/standard/downloadicon.mp @@ -0,0 +1,66 @@ +% downloadicon.mp +% L. Nobre G. +% 2004 + +%input featpost3Dplus2D; + +f := 0.4[(12,3,2),(2,5,6)]; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Max: 0.8 +Spread := 30; +TDAtiplen := 0.65; +TDAhalftipbase := 0.35; +TDAhalfthick := 0.15; + +beginfig(1); + color tracecol, lockcol, arrowcol; + numeric altura, compri, radius, altfrac, comfrac, radang; + path theside, thefront, thelocka, thelockb, thelock; + color poi[], startarrow, endarrow; + numeric numpl, aux, i; + altura = 1; + compri = 2; + radius = 0.8; + altfrac = 0.2; + comfrac = 0.15; + radang = 37; + numpl = 9; + tracecol = blue; + lockcol = black; + arrowcol = (0.7,0.2,0.1); + startarrow = (0,-radius,2); + endarrow = (0,0,radius); + currentpen := pencircle scaled 2.4mm; + drawoptions( withcolor tracecol ); + rigorousdisc( 0, true, (-0.5compri,0,0), radius, (compri,0,0) ); + poi1 = (0.5compri,-radius,0); + poi2 = (0.5compri,radius,0); + poi3 = (-0.5compri,radius,0); + poi4 = (0.5compri,-radius,-altura); + poi5 = (0.5compri,radius,-altura); + poi6 = (-0.5compri,radius,-altura); + theside = rp(poi1)--rp(poi2)--rp(poi5)--rp(poi4)--cycle; + thefront= rp(poi2)--rp(poi3)--rp(poi6)--rp(poi5)--cycle; + drawoptions( withcolor white ); + fill theside; + fill thefront; + thelocka = rp((comfrac*compri,radius,-altfrac*altura)) + --rp((comfrac*compri,radius,0)); + thelockb = rp((-comfrac*compri,radius,-altfrac*altura)) + --rp((-comfrac*compri,radius,0)); + for i=1 upto numpl: + aux := i*radang/numpl; + poi7 := (comfrac*compri,radius*cosd(aux),radius*sind(aux)); + poi8 := (-comfrac*compri,radius*cosd(aux),radius*sind(aux)); + thelocka := thelocka...rp(poi7); + thelockb := thelockb...rp(poi8); + endfor; + thelock = thelocka--reverse thelockb--cycle; + drawoptions( withcolor lockcol ); + filldraw thelock; + drawoptions( withcolor tracecol ); + draw theside; + draw thefront; + drawoptions( withcolor arrowcol ); + tdarrow( startarrow, endarrow ); +endfig; + +end; diff --git a/Master/texmf-dist/doc/metapost/featpost/example/standard/eemcsblabla.mp b/Master/texmf-dist/doc/metapost/featpost/example/standard/eemcsblabla.mp new file mode 100644 index 00000000000..cb35011cc44 --- /dev/null +++ b/Master/texmf-dist/doc/metapost/featpost/example/standard/eemcsblabla.mp @@ -0,0 +1,292 @@ +% Converted from PostScript(TM) to MetaPost by pstoedit +% MetaPost backend contributed by Scott Pakin <pakin@uiuc.edu> +% pstoedit is Copyright (C) 1993 - 2003 Wolfgang Glunz <wglunz@pstoedit.net> + +% eemcsblabla.mp %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Hacked by L. Nobre G. +% 2004 + +numeric zmax, rmax; +zmax = 1; +rmax = 1; + +def converterfunc( expr Pair ) = + begingroup + save xucf, yucf, astart, rr, xaux, yaux, raux, aaux, zaux; + numeric xucf, yucf, astart, rr, xaux, yaux, raux, aaux, zaux; + xucf = 0.21; + yucf = 0.002; + astart = 120; + rr = 0.0004; + aaux = astart + xucf*( ypart Pair ); + raux = rr*aaux + yucf*( xpart Pair ); + xaux = raux*cosd( aaux ); + yaux = raux*sind( aaux ); + zaux = zmax*(1-raux/rmax); + ( rp( ( xaux, yaux, zaux ) ) ) + endgroup +enddef; +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% end of first featpost part + +% Generate structured PostScript +prologues := 1; + +% Display a given string with its *baseline* at a given location +% and with a given rotation angle +vardef showtext(expr origin)(expr angle)(expr string) = + draw string infont defaultfont scaled defaultscale + rotated angle shifted origin; +enddef; + +defaultscale := 0.16; +beginfig(1); + path PreeditedPath[]; +linecap := butt; +linejoin := mitered; +PreeditedPath1 = hide(z1=(309,-996.562))z1--hide(z2=(309,-984.905))z2..controls hide(z3=(309,-982.215))z3 and hide(z4=(309.097,-979.126))z4..hide(z5=(309.292,-974.344))z5 + --hide(z6=(309.392,-971.754))z6--hide(z7=(304.908,-969.861))z7--hide(z8=(304.211,-970.259))z8 + ..controls hide(z9=(304.609,-978.329))z9 and hide(z10=(305,-984.307))z10..hide(z11=(305,-992.078))z11 + --hide(z12=(305,-995.764))z12--hide(z13=(281.097,-991.58))z13..controls hide(z14=(279.503,-991.281))z14 and hide(z15=(278.706,-991.082))z15..hide(z16=(277.908,-990.683))z16 + --hide(z17=(277.709,-986.001))z17..controls hide(z18=(277.61,-982.812))z18 and hide(z19=(277,-979.624))z19..hide(z20=(277,-977.432))z20 + ..controls hide(z21=(277,-971.255))z21 and hide(z22=(278.088,-967.171))z22..hide(z23=(279.901,-967.071))z23 + --hide(z24=(288.768,-966.274))z24--hide(z25=(288.768,-963.883))z25..controls hide(z26=(282.392,-963.584))z26 and hide(z27=(277.41,-962.886))z27..hide(z28=(273.625,-961.791))z28 + ..controls hide(z29=(273.425,-963.883))z29 and hide(z30=(273,-966.872))z30..hide(z31=(273,-968.665))z31 + ..controls hide(z32=(273,-968.964))z32 and hide(z33=(273,-970.06))z33..hide(z34=(273.1,-972.451))z34 + --hide(z35=(273.199,-984.407))z35..controls hide(z36=(273.625,-985.303))z36 and hide(z37=(273.299,-991.182))z37..hide(z38=(273.299,-992.178))z38 + ..controls hide(z39=(273.299,-995.864))z39 and hide(z40=(273.299,-998.554))z40..hide(z41=(273.1,-1003.64))z41 + --hide(z42=(273,-1008.12))z42--hide(z43=(276.115,-1008.42))z43--hide(z44=(276.314,-1003.04))z44 + ..controls hide(z45=(276.414,-1000.65))z45 and hide(z46=(277.211,-999.55))z46..hide(z47=(279.005,-999.55))z47 + ..controls hide(z48=(280.399,-999.55))z48 and hide(z49=(283.588,-999.949))z49..hide(z50=(286.577,-1000.45))z50 + --hide(z51=(336.79,-1009.11))z51..controls hide(z52=(338.583,-1009.51))z52 and hide(z53=(339.281,-1010.71))z53..hide(z54=(339.979,-1015.09))z54 + --hide(z55=(342,-1015.59))z55--hide(z56=(341.901,-1011.51))z56..controls hide(z57=(342.085,-1008.42))z57 and hide(z58=(341.701,-1002.24))z58..hide(z59=(341.701,-1000.25))z59 + --hide(z60=(342,-978.827))z60--hide(z61=(342,-977.831))z61..controls hide(z62=(342,-976.436))z62 and hide(z63=(341.616,-973.945))z63..hide(z64=(341.801,-970.657))z64 + --hide(z65=(341.701,-967.369))z65--hide(z66=(338.683,-966.971))z66..controls hide(z67=(336.691,-966.772))z67 and hide(z68=(333.702,-966.274))z68..hide(z69=(328.82,-965.377))z69 + --hide(z70=(326.229,-964.879))z70--hide(z71=(326.229,-967.569))z71--hide(z72=(332.207,-969.163))z72 + ..controls hide(z73=(335.794,-970.159))z73 and hide(z74=(336.99,-971.056))z74..hide(z75=(337.488,-973.248))z75 + ..controls hide(z76=(337.886,-975.24))z76 and hide(z77=(338.384,-982.513))z77..hide(z78=(338.384,-987.894))z78 + ..controls hide(z79=(338.384,-991.978))z79 and hide(z80=(338.284,-994.17))z80..hide(z81=(337.687,-1001.04))z81 + --hide(z82=(337.288,-1001.04))z82..controls hide(z83=(335.893,-1001.04))z83 and hide(z84=(335.096,-1000.95))z84..cycle; + %draw PreeditedPath1; +%drawoptions( withcolor black ); + %dotlabels.rt(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84); +PreeditedPath2 = hide(z85=(310,-859.104))z85..controls hide(z86=(310,-857.61))z86 and hide(z87=(309.691,-856))z87..hide(z88=(307.698,-856))z88 + ..controls hide(z89=(305.706,-856))z89 and hide(z90=(306,-857.73))z90..hide(z91=(306,-859.005))z91 + --hide(z92=(306,-918.683))z92..controls hide(z93=(306,-920.078))z93 and hide(z94=(305.706,-922))z94..hide(z95=(307.698,-922))z95 + ..controls hide(z96=(309.691,-922))z96 and hide(z97=(310,-920.09))z97..cycle; + %draw PreeditedPath2; +%drawoptions( withcolor black ); + %dotlabels.rt(85,86,87,88,89,90,91,92,93,94,95,96,97); +PreeditedPath3 = hide(z98=(329,-859.005))z98..controls hide(z99=(329,-857.61))z99 and hide(z100=(329.019,-856))z100..hide(z101=(327.026,-856))z101 + ..controls hide(z102=(325.034,-856))z102 and hide(z103=(325,-857.735))z103..hide(z104=(325,-859.104))z104 + --hide(z105=(325,-918.583))z105..controls hide(z106=(325,-920.078))z106 and hide(z107=(325.034,-922))z107..hide(z108=(327.026,-922))z108 + ..controls hide(z109=(329.019,-922))z109 and hide(z110=(329,-920.09))z110..cycle; + %draw PreeditedPath3; +%drawoptions( withcolor black ); + %dotlabels.rt(98,99,100,101,102,103,104,105,106,107,108,109,110); +PreeditedPath4 = hide(z111=(332.008,-747.24))z111--hide(z112=(333.701,-749.831))z112..controls hide(z113=(335.594,-752.72))z113 and hide(z114=(336.69,-754.912))z114..hide(z115=(336.69,-755.908))z115 + ..controls hide(z116=(336.69,-756.605))z116 and hide(z117=(335.794,-757.203))z117..hide(z118=(334.698,-757.203))z118 + ..controls hide(z119=(333.701,-757.203))z119 and hide(z120=(332.805,-757.004))z120..hide(z121=(330.712,-756.506))z121 + --hide(z122=(301.122,-749.034))z122..controls hide(z123=(299.429,-748.635))z123 and hide(z124=(297.835,-748.337))z124..hide(z125=(297.038,-748.337))z125 + ..controls hide(z126=(295.344,-748.337))z126 and hide(z127=(293.904,-749.333))z127..hide(z128=(293.904,-750.927))z128 + ..controls hide(z129=(293.904,-753.816))z129 and hide(z130=(295.799,-757.602))z130..hide(z131=(300.326,-763.679))z131 + ..controls hide(z132=(304.809,-769.956))z132 and hide(z133=(308.296,-773.443))z133..hide(z134=(315.171,-778.325))z134 + --hide(z135=(301.521,-775.336))z135..controls hide(z136=(299.529,-774.938))z136 and hide(z137=(298.034,-774.639))z137..hide(z138=(297.337,-774.639))z138 + ..controls hide(z139=(295.444,-774.639))z139 and hide(z140=(293.904,-775.635))z140..hide(z141=(293.904,-777.229))z141 + ..controls hide(z142=(293.904,-780.218))z142 and hide(z143=(296.214,-784.801))z143..hide(z144=(300.625,-790.281))z144 + ..controls hide(z145=(304.012,-794.665))z145 and hide(z146=(306.104,-796.657))z146..hide(z147=(314.872,-803.133))z147 + --hide(z148=(301.621,-799.845))z148..controls hide(z149=(300.027,-799.447))z149 and hide(z150=(298.532,-799.248))z150..hide(z151=(297.337,-799.248))z151 + ..controls hide(z152=(295.444,-799.248))z152 and hide(z153=(293.904,-800.144))z153..hide(z154=(293.904,-801.539))z154 + ..controls hide(z155=(293.904,-803.631))z155 and hide(z156=(296.094,-807.417))z156..hide(z157=(301.621,-814.79))z157 + --hide(z158=(303.614,-817.579))z158--hide(z159=(305.606,-816.882))z159--hide(z160=(303.514,-813.694))z160 + ..controls hide(z161=(301.222,-810.007))z161 and hide(z162=(301.023,-809.708))z162..hide(z163=(301.023,-809.011))z163 + ..controls hide(z164=(301.023,-807.915))z164 and hide(z165=(302.02,-807.218))z165..hide(z166=(303.514,-807.218))z166 + ..controls hide(z167=(308.595,-807.218))z167 and hide(z168=(327.823,-811.302))z168..hide(z169=(342.071,-815.387))z169 + --hide(z170=(343.167,-815.088))z170--hide(z171=(341.672,-808.313))z171--hide(z172=(331.51,-806.121))z172 + ..controls hide(z173=(320.451,-803.73))z173 and hide(z174=(314.573,-801.04))z174..hide(z175=(308.595,-795.561))z175 + ..controls hide(z176=(304.012,-791.376))z176 and hide(z177=(301.023,-786.893))z177..hide(z178=(301.023,-784.103))z178 + ..controls hide(z179=(301.023,-783.406))z179 and hide(z180=(301.82,-783.007))z180..hide(z181=(303.115,-783.007))z181 + ..controls hide(z182=(306.602,-783.007))z182 and hide(z183=(317.96,-785.199))z183..hide(z184=(335.396,-789.284))z184 + --hide(z185=(342.071,-790.878))z185--hide(z186=(343.167,-790.38))z186--hide(z187=(341.672,-783.505))z187 + --hide(z188=(331.012,-781.413))z188..controls hide(z189=(322.942,-779.819))z189 and hide(z190=(315.47,-776.431))z190..hide(z191=(310.588,-772.048))z191 + ..controls hide(z192=(304.51,-766.568))z192 and hide(z193=(301.023,-761.586))z193..hide(z194=(301.023,-758.398))z194 + ..controls hide(z195=(301.023,-757.601))z195 and hide(z196=(301.92,-757.103))z196..hide(z197=(303.514,-757.103))z197 + ..controls hide(z198=(305.905,-757.103))z198 and hide(z199=(307.3,-757.402))z199..hide(z200=(315.968,-759.594))z200 + ..controls hide(z201=(322.244,-761.188))z201 and hide(z202=(328.222,-762.881))z202..hide(z203=(331.61,-763.878))z203 + ..controls hide(z204=(334.399,-764.774))z204 and hide(z205=(336.99,-765.173))z205..hide(z206=(339.181,-765.173))z206 + ..controls hide(z207=(341.672,-765.173))z207 and hide(z208=(343,-764.077))z208..hide(z209=(343,-762.184))z209 + ..controls hide(z210=(343,-759.594))z210 and hide(z211=(340.945,-756.007))z211..cycle; + %draw PreeditedPath4; +%drawoptions( withcolor black ); + %dotlabels.rt(111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211); +PreeditedPath5 = hide(z212=(309.392,-705.894))z212--hide(z213=(309.392,-703.602))z213..controls hide(z214=(302.916,-702.805))z214 and hide(z215=(299.23,-702.107))z215..hide(z216=(296.639,-701.211))z216 + ..controls hide(z217=(295.145,-703.602))z217 and hide(z218=(293.904,-707.089))z218..hide(z219=(293.904,-710.775))z219 + ..controls hide(z220=(293.904,-715.259))z220 and hide(z221=(297.633,-722.631))z221..hide(z222=(302.916,-728.21))z222 + ..controls hide(z223=(307.798,-733.69))z223 and hide(z224=(318.259,-738))z224..hide(z225=(328.72,-738))z225 + ..controls hide(z226=(338.285,-738))z226 and hide(z227=(343.096,-733.635))z227..hide(z228=(343.096,-725.321))z228 + ..controls hide(z229=(343.096,-719.941))z229 and hide(z230=(341.186,-715.159))z230..hide(z231=(336.89,-709.679))z231 + --hide(z232=(332.805,-704.698))z232--hide(z233=(330.812,-705.495))z233--hide(z234=(331.809,-706.989))z234 + ..controls hide(z235=(336.591,-714.162))z235 and hide(z236=(338.096,-717.948))z236..hide(z237=(338.096,-721.435))z237 + ..controls hide(z238=(338.096,-727.015))z238 and hide(z239=(334.174,-729.999))z239..hide(z240=(326.428,-729.999))z240 + ..controls hide(z241=(315.668,-729.999))z241 and hide(z242=(305.307,-726.472))z242..hide(z243=(301.521,-721.535))z243 + ..controls hide(z244=(299.927,-719.443))z244 and hide(z245=(298.904,-717.052))z245..hide(z246=(298.904,-713.963))z246 + ..controls hide(z247=(298.904,-709.479))z247 and hide(z248=(300.897,-705.893))z248..cycle; + %draw PreeditedPath5; +%drawoptions( withcolor black ); + %dotlabels.rt(212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248); +PreeditedPath6 = hide(z249=(304.359,-696.969))z249--hide(z250=(306.328,-696.969))z250..controls hide(z251=(306.101,-682.809))z251 and hide(z252=(306,-682.809))z252..hide(z253=(306,-680.083))z253 + ..controls hide(z254=(306,-677.357))z254 and hide(z255=(305.773,-677.357))z255..hide(z256=(306,-662.743))z256 + ..controls hide(z257=(304.563,-662.895))z257 and hide(z258=(303.878,-662.895))z258..hide(z259=(302.92,-662.895))z259 + ..controls hide(z260=(301.936,-662.895))z260 and hide(z261=(301.179,-662.895))z261..hide(z262=(299.513,-662.743))z262 + ..controls hide(z263=(299.892,-671.451))z263 and hide(z264=(299.968,-674.934))z264..hide(z265=(300.271,-688.942))z265 + --hide(z266=(285.656,-675.161))z266..controls hide(z267=(277.857,-667.816))z267 and hide(z268=(273.693,-666))z268..hide(z269=(268.014,-666))z269 + ..controls hide(z270=(259.306,-666))z270 and hide(z271=(254,-671.733))z271..hide(z272=(254,-681.068))z272 + ..controls hide(z273=(254,-686.52))z273 and hide(z274=(255.495,-690.23))z274..hide(z275=(259.23,-693.94))z275 + --hide(z276=(269.528,-695.227))z276--hide(z277=(269.528,-693.031))z277--hide(z278=(266.045,-692.047))z278 + ..controls hide(z279=(261.653,-690.836))z279 and hide(z280=(260,-688.11))z280..hide(z281=(260,-683.037))z281 + ..controls hide(z282=(260,-676.525))z282 and hide(z283=(263.996,-672))z283..hide(z284=(270.285,-672))z284 + ..controls hide(z285=(275.964,-672))z285 and hide(z286=(281.567,-675.278))z286..cycle; + %draw PreeditedPath6; +%drawoptions( withcolor black ); + %dotlabels.rt(249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286); +PreeditedPath7 = hide(z287=(330.015,-635.015))z287..controls hide(z288=(330.912,-637.705))z288 and hide(z289=(331.51,-639.499))z289..hide(z290=(333.004,-644.779))z290 + ..controls hide(z291=(340.576,-645.477))z291 and hide(z292=(347.052,-647.967))z292..hide(z293=(356.616,-653.746))z293 + --hide(z294=(357.712,-652.351))z294--hide(z295=(355.819,-648.266))z295..controls hide(z296=(345.358,-640.196))z296 and hide(z297=(339.082,-636.41))z297..cycle; + %draw PreeditedPath7; +%drawoptions( withcolor black ); + %dotlabels.rt(287,288,289,290,291,292,293,294,295,296,297); +PreeditedPath8 = hide(z298=(270.736,-591))z298--hide(z299=(269.938,-591.477))z299..controls hide(z300=(271.632,-595.861))z300 and hide(z301=(272.429,-599.149))z301..hide(z302=(273.625,-607.02))z302 + --hide(z303=(276.414,-607.02))z303--hide(z304=(276.414,-601.44))z304..controls hide(z305=(276.414,-599.647))z305 and hide(z306=(277.51,-599))z306..hide(z307=(280.499,-599))z307 + --hide(z308=(327.026,-599))z308..controls hide(z309=(333.203,-599))z309 and hide(z310=(335.893,-599.093))z310..hide(z311=(342.867,-599.746))z311 + --hide(z312=(343.465,-598.152))z312--hide(z313=(339.879,-594.167))z313..controls hide(z314=(342.469,-590.182))z314 and hide(z315=(343.196,-586.595))z315..hide(z316=(343.196,-581.315))z316 + ..controls hide(z317=(343.196,-577.43))z317 and hide(z318=(342.584,-574.839))z318..hide(z319=(341.273,-572.747))z319 + --hide(z320=(334.1,-562.784))z320..controls hide(z321=(330.912,-558.4))z321 and hide(z322=(322.643,-555))z322..hide(z323=(315.37,-555))z323 + ..controls hide(z324=(303.812,-555))z324 and hide(z325=(296,-562.436))z325..hide(z326=(296,-572.946))z326 + ..controls hide(z327=(296,-577.629))z327 and hide(z328=(297.606,-582.511))z328..hide(z329=(299.927,-585.101))z329 + --hide(z330=(305.506,-591))z330--hide(z331=(306.602,-587.99))z331..controls hide(z332=(303.713,-585.201))z332 and hide(z333=(302,-581.315))z333..hide(z334=(302,-577.231))z334 + ..controls hide(z335=(302,-568.862))z335 and hide(z336=(308.782,-563))z336..hide(z337=(319.455,-563))z337 + ..controls hide(z338=(330.613,-563))z338 and hide(z339=(338.196,-569.219))z339..hide(z340=(338.196,-578.028))z340 + ..controls hide(z341=(338.196,-583.208))z341 and hide(z342=(335.119,-591.001))z342..hide(z343=(333.004,-591.001))z343 + --hide(z344=(311.584,-591))z344..controls hide(z345=(310.189,-591))z345 and hide(z346=(308.396,-589.843))z346..hide(z347=(306.602,-587.99))z347 + --hide(z348=(305.506,-591))z348--cycle; +PreeditedPath9 = hide(z349=(276.414,-548.138))z349--hide(z350=(276.414,-542.559))z350..controls hide(z351=(276.414,-540.765))z351 and hide(z352=(277.51,-540))z352..hide(z353=(280.499,-540))z353 + --hide(z354=(332.108,-540))z354..controls hide(z355=(338.384,-540))z355 and hide(z356=(339.082,-540.304))z356..hide(z357=(339.281,-543.754))z357 + --hide(z358=(339.58,-548.337))z358--hide(z359=(342.569,-548.337))z359..controls hide(z360=(342.27,-538.374))z360 and hide(z361=(342,-538.374))z361..hide(z362=(342,-535.884))z362 + ..controls hide(z363=(342,-533.393))z363 and hide(z364=(341.701,-533.393))z364..hide(z365=(342,-523.43))z365 + --hide(z366=(339.58,-523.43))z366--hide(z367=(339.281,-528.013))z367..controls hide(z368=(339.082,-531.4))z368 and hide(z369=(338.384,-532))z369..hide(z370=(332.108,-532))z370 + --hide(z371=(270.736,-532))z371--hide(z372=(269.938,-532.596))z372..controls hide(z373=(271.632,-536.98))z373 and hide(z374=(272.429,-540.268))z374..cycle; + %draw PreeditedPath9; +%drawoptions( withcolor black ); + %dotlabels.rt(349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374); +PreeditedPath10 = hide(z375=(291.607,-505.359))z375--hide(z376=(291.607,-501.374))z376--hide(z377=(282.641,-487.027))z377 + ..controls hide(z378=(280.548,-483.739))z378 and hide(z379=(279.751,-483.042))z379..hide(z380=(277.958,-483.042))z380 + ..controls hide(z381=(276.065,-483.042))z381 and hide(z382=(274.57,-484.436))z382..hide(z383=(274.57,-486.13))z383 + ..controls hide(z384=(274.57,-487.624))z384 and hide(z385=(275.666,-489.418))z385..cycle; + %draw PreeditedPath10; +%drawoptions( withcolor black ); + %dotlabels.rt(375,376,377,378,379,380,381,382,383,384,385); +PreeditedPath11 = hide(z386=(334.1,-489))z386--hide(z387=(342.569,-489.668))z387..controls hide(z388=(342.27,-483.192))z388 and hide(z389=(342,-483.192))z389..hide(z390=(342,-481.897))z390 + ..controls hide(z391=(342,-481.399))z391 and hide(z392=(341.621,-478.908))z392..hide(z393=(342,-474.524))z393 + --hide(z394=(339,-474.524))z394--hide(z395=(339.38,-478.41))z395..controls hide(z396=(339.281,-480.801))z396 and hide(z397=(338.484,-481))z397..hide(z398=(333.602,-481))z398 + --hide(z399=(315.37,-481))z399..controls hide(z400=(300.824,-481))z400 and hide(z401=(296,-485.238))z401..hide(z402=(296,-496.941))z402 + ..controls hide(z403=(296,-501.225))z403 and hide(z404=(296.948,-505.21))z404..hide(z405=(298.931,-508.996))z405 + --hide(z406=(302.119,-514.015))z406--hide(z407=(308.595,-514.015))z407--hide(z408=(309.292,-511.686))z408 + --hide(z409=(306.204,-510.391))z409..controls hide(z410=(301.521,-508.299))z410 and hide(z411=(301,-507.302))z411..hide(z412=(301,-502.719))z412 + ..controls hide(z413=(301,-493.354))z413 and hide(z414=(304.635,-489.469))z414..hide(z415=(313.576,-489.17))z415 + --hide(z416=(316.765,-488.999))z416--hide(z417=(329.916,-489))z417..controls hide(z418=(334.001,-491.926))z418 and hide(z419=(337.196,-498.285))z419..hide(z420=(337.196,-502.221))z420 + ..controls hide(z421=(337.196,-506.206))z421 and hide(z422=(333.783,-510))z422..hide(z423=(329.816,-510))z423 + ..controls hide(z424=(326.13,-510))z424 and hide(z425=(322.643,-507.884))z425..hide(z426=(320.75,-504.711))z426 + ..controls hide(z427=(319.255,-502.193))z427 and hide(z428=(317.861,-496.654))z428..hide(z429=(316.765,-488.999))z429 + --hide(z430=(313.576,-489.17))z430--hide(z431=(315.37,-499.033))z431..controls hide(z432=(317.861,-512.583))z432 and hide(z433=(322.543,-518))z433..hide(z434=(331.211,-518))z434 + ..controls hide(z435=(338.982,-518))z435 and hide(z436=(343.196,-513.415))z436..hide(z437=(343.196,-505.708))z437 + ..controls hide(z438=(343.196,-503.915))z438 and hide(z439=(342.998,-502.221))z439..cycle; + %draw PreeditedPath11; +%drawoptions( withcolor black ); + %dotlabels.rt(386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439); +PreeditedPath12 = hide(z440=(321,-443.539))z440--hide(z441=(314.174,-440.55))z441--hide(z442=(314,-441.048))z442 + --hide(z443=(314,-467.251))z443--hide(z444=(320.351,-469.941))z444--cycle; + %draw PreeditedPath12; +%drawoptions( withcolor black ); + %dotlabels.rt(440,441,442,443,444); +PreeditedPath13 = hide(z445=(270.736,-424))z445--hide(z446=(269.938,-424.41))z446..controls hide(z447=(271.632,-428.794))z447 and hide(z448=(272.429,-432.082))z448..hide(z449=(273.625,-439.953))z449 + --hide(z450=(276.414,-439.953))z450--hide(z451=(276.414,-434.374))z451..controls hide(z452=(276.414,-432.58))z452 and hide(z453=(277.51,-432))z453..hide(z454=(280.499,-432))z454 + --hide(z455=(327.026,-432))z455..controls hide(z456=(333.203,-432))z456 and hide(z457=(335.893,-432.085))z457..hide(z458=(342.867,-432.68))z458 + --hide(z459=(343.465,-431.086))z459--hide(z460=(339.879,-427.101))z460..controls hide(z461=(342.469,-423.115))z461 and hide(z462=(343.196,-419.529))z462..hide(z463=(343.196,-414.249))z463 + ..controls hide(z464=(343.196,-410.363))z464 and hide(z465=(342.584,-407.773))z465..hide(z466=(341.273,-405.68))z466 + --hide(z467=(334.1,-395.718))z467..controls hide(z468=(330.912,-391.334))z468 and hide(z469=(322.643,-388))z469..hide(z470=(315.37,-388))z470 + ..controls hide(z471=(303.812,-388))z471 and hide(z472=(296,-395.409))z472..hide(z473=(296,-405.88))z473 + ..controls hide(z474=(296,-410.562))z474 and hide(z475=(297.606,-415.444))z475..hide(z476=(299.927,-418.034))z476 + --hide(z477=(305.506,-424))z477--hide(z478=(306.602,-420.924))z478..controls hide(z479=(303.713,-418.134))z479 and hide(z480=(302,-414.249))z480..hide(z481=(302,-410.164))z481 + ..controls hide(z482=(302,-401.795))z482 and hide(z483=(308.782,-396))z483..hide(z484=(319.455,-396))z484 + ..controls hide(z485=(330.613,-396))z485 and hide(z486=(338.196,-402.191))z486..hide(z487=(338.196,-410.961))z487 + ..controls hide(z488=(338.196,-416.142))z488 and hide(z489=(335.119,-424.001))z489..hide(z490=(333.004,-424.001))z490 + --hide(z491=(311.584,-424))z491..controls hide(z492=(310.189,-424))z492 and hide(z493=(308.396,-422.817))z493..hide(z494=(306.602,-420.924))z494 + --hide(z495=(305.506,-424))z495--cycle; +PreeditedPath14 = hide(z496=(276.414,-381.072))z496--hide(z497=(276.414,-375.492))z497..controls hide(z498=(276.414,-373.699))z498 and hide(z499=(277.51,-373))z499..hide(z500=(280.499,-373))z500 + --hide(z501=(332.108,-373))z501..controls hide(z502=(338.384,-373))z502 and hide(z503=(339.082,-373.298))z503..hide(z504=(339.281,-376.688))z504 + --hide(z505=(339.58,-381.271))z505--hide(z506=(342.569,-381.271))z506..controls hide(z507=(342.27,-371.308))z507 and hide(z508=(342,-371.308))z508..hide(z509=(342,-368.817))z509 + ..controls hide(z510=(342,-366.326))z510 and hide(z511=(341.701,-366.326))z511..hide(z512=(342,-356.363))z512 + --hide(z513=(339.58,-356.363))z513--hide(z514=(339.281,-360.946))z514..controls hide(z515=(339.082,-364.334))z515 and hide(z516=(338.384,-365))z516..hide(z517=(332.108,-365))z517 + --hide(z518=(270.736,-365))z518--hide(z519=(269.938,-365.529))z519..controls hide(z520=(271.632,-369.913))z520 and hide(z521=(272.429,-373.201))z521..cycle; + %draw PreeditedPath14; +%drawoptions( withcolor black ); + %dotlabels.rt(496,497,498,499,500,501,502,503,504,505,506,507,508,509,510,511,512,513,514,515,516,517,518,519,520,521); +PreeditedPath15 = hide(z522=(291.607,-338.289))z522--hide(z523=(291.607,-334.304))z523--hide(z524=(282.641,-319.957))z524 + ..controls hide(z525=(280.548,-316.669))z525 and hide(z526=(279.751,-315.972))z526..hide(z527=(277.958,-315.972))z527 + ..controls hide(z528=(276.065,-315.972))z528 and hide(z529=(274.57,-317.366))z529..hide(z530=(274.57,-319.06))z530 + ..controls hide(z531=(274.57,-320.554))z531 and hide(z532=(275.666,-322.348))z532..cycle; + %draw PreeditedPath15; +%drawoptions( withcolor black ); + %dotlabels.rt(522,523,524,525,526,527,528,529,530,531,532); +PreeditedPath16 = hide(z533=(334.1,-322))z533--hide(z534=(342.569,-322.598))z534..controls hide(z535=(342.27,-316.122))z535 and hide(z536=(342,-316.122))z536..hide(z537=(342,-314.827))z537 + ..controls hide(z538=(342,-314.329))z538 and hide(z539=(341.621,-311.838))z539..hide(z540=(342,-307.454))z540 + --hide(z541=(339,-307.454))z541--hide(z542=(339.38,-311.34))z542..controls hide(z543=(339.281,-313.731))z543 and hide(z544=(338.484,-314))z544..hide(z545=(333.602,-314))z545 + --hide(z546=(315.37,-314))z546..controls hide(z547=(300.824,-314))z547 and hide(z548=(296,-318.219))z548..hide(z549=(296,-329.871))z549 + ..controls hide(z550=(296,-334.155))z550 and hide(z551=(296.948,-338.14))z551..hide(z552=(298.931,-341.926))z552 + --hide(z553=(302.119,-347.015))z553--hide(z554=(308.595,-347.015))z554--hide(z555=(309.292,-344.616))z555 + --hide(z556=(306.204,-343.321))z556..controls hide(z557=(301.521,-341.229))z557 and hide(z558=(301,-340.232))z558..hide(z559=(301,-335.649))z559 + ..controls hide(z560=(301,-326.284))z560 and hide(z561=(304.635,-322.399))z561..hide(z562=(313.576,-322.1))z562 + --hide(z563=(316.765,-321.999))z563--hide(z564=(329.916,-322))z564..controls hide(z565=(334.001,-324.911))z565 and hide(z566=(337.196,-331.235))z566..hide(z567=(337.196,-335.151))z567 + ..controls hide(z568=(337.196,-339.136))z568 and hide(z569=(333.783,-343))z569..hide(z570=(329.816,-343))z570 + ..controls hide(z571=(326.13,-343))z571 and hide(z572=(322.643,-340.856))z572..hide(z573=(320.75,-337.641))z573 + ..controls hide(z574=(319.255,-335.135))z574 and hide(z575=(317.861,-329.619))z575..hide(z576=(316.765,-321.999))z576 + --hide(z577=(313.576,-322.1))z577--hide(z578=(315.37,-331.963))z578..controls hide(z579=(317.861,-345.513))z579 and hide(z580=(322.543,-351))z580..hide(z581=(331.211,-351))z581 + ..controls hide(z582=(338.982,-351))z582 and hide(z583=(343.196,-346.389))z583..hide(z584=(343.196,-338.638))z584 + ..controls hide(z585=(343.196,-336.845))z585 and hide(z586=(342.998,-335.151))z586..cycle; + %draw PreeditedPath16; +%drawoptions( withcolor black ); + %dotlabels.rt(533,534,535,536,537,538,539,540,541,542,543,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,569,570,571,572,573,574,575,576,577,578,579,580,581,582,583,584,585,586); +PreeditedPath17 = hide(z587=(331.211,-292.211))z587..controls hide(z588=(331.211,-295.2))z588 and hide(z589=(334,-297.89))z589..hide(z590=(336.99,-297.89))z590 + ..controls hide(z591=(339.979,-297.89))z591 and hide(z592=(342,-295.2))z592..hide(z593=(342,-292.311))z593 + ..controls hide(z594=(342,-289.123))z594 and hide(z595=(339.668,-286.333))z595..hide(z596=(336.99,-286.333))z596 + ..controls hide(z597=(334,-286.333))z597 and hide(z598=(331.211,-289.122))z598..cycle; + %draw PreeditedPath17; +%drawoptions( withcolor black ); + %dotlabels.rt(587,588,589,590,591,592,593,594,595,596,597,598); + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +%% second featpost part +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + verygoodcone(true, black, blue, rmax, (0,0,zmax) ); + numeric k; + drawoptions( withcolor blue ); + for k = 1 upto 17: + fill closedpathinspace( PreeditedPath[k], converterfunc ); + endfor; + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% That's it! + +endfig; +end + + + + + + + + + + diff --git a/Master/texmf-dist/doc/metapost/featpost/example/standard/embroncordada.mp b/Master/texmf-dist/doc/metapost/featpost/example/standard/embroncordada.mp new file mode 100644 index 00000000000..ccc08d09d80 --- /dev/null +++ b/Master/texmf-dist/doc/metapost/featpost/example/standard/embroncordada.mp @@ -0,0 +1,57 @@ +% embroncordada.mp +% L. Nobre G. +% 2004 + +%input featpost3Dplus2D; + +% bash: export TEX=latex +% tcsh: setenv TEX latex + +verbatimtex +\documentclass{article} +%\usepackage{pandora} +\usepackage{palatino} +\begin{document} +etex + +beginfig(1); + picture embroncordada; + numeric u, v; + path pa; + u = 1mm; + v = 1.1mm; + z1 = (105u,250v); + z2 = (105u,220v); + z3 = (125u,200v); + z4 = (85u,180v); + z5 = (25u,150v); + z6 = (105u,120v); + z7 = (185u,150v); + z8 = (110u,170v); + z9 = (45u,150v); + z10= (100u,105v); + z11= (170u,150v); + z12= (90u,195v); + z13= (35u,150v); + z14= (120u,135v); + z15= (80u,100v); + z16= (115u,75v); + z17= (105u,50v); + pa = z1{down}..z2..z3..z4..z5..z6..z7..z8..z9..z10.. + z11..z12..z13..z14..z15..z16..{down}z17; + ropepattern( pa, 8u, 35 ); + embroncordada = thelabel( btex + \begin{tabular}{c} + \textsf{EMBRON} \\ + \textsf{CORDADA} + \end{tabular} + etex scaled 8, (105u,150v) ); + draw embroncordada; +% dotlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17); +endfig; + +verbatimtex +\end{document} +etex + +end; diff --git a/Master/texmf-dist/doc/metapost/featpost/example/standard/fakehole.mp b/Master/texmf-dist/doc/metapost/featpost/example/standard/fakehole.mp new file mode 100644 index 00000000000..c1d28ea33c1 --- /dev/null +++ b/Master/texmf-dist/doc/metapost/featpost/example/standard/fakehole.mp @@ -0,0 +1,59 @@ +% fakehole.mp +% L. Nobre G. +% IYP (2005) + +%input featpost3Dplus2D; + +Spread := 23; +f := (13,6,4.5); +ShadowOn := true; +LightSource := 10*(4,-1.7,2); +beginfig(1); + numeric bigray, smaray, posray, posang, disang, aresiz, dislen; + numeric numl, numr, holang, i; + color pos, disaxe, holaxe; + aresiz := 13; + bigray := 2; + smaray := 0.25; + posray := 4; + posang := -10; + disang := 15; + dislen := 0.4; + holang := 115; + numl := 45; + disaxe := dislen*(cosd(disang),sind(disang),0); + pos := posray*(cosd(posang),sind(posang),0); + holaxe := (cosd(disang+90)*cosd(holang), + sind(disang+90)*cosd(holang), + sind(holang)); + HoriZon := -bigray; + setthestage( 0.5*numl, aresiz ); + rigorousdisc( smaray, true, pos, bigray, disaxe ); + numr := floor(bigray/smaray); + for i=2-numr step 3 until -3: + fakehole( pos+i*smaray*holaxe, disaxe, smaray ); + fakehole( pos-i*smaray*holaxe, disaxe, smaray ); + endfor; +endfig; + +ShadowOn := false; +Spread := 25; +ShiftV := 105.00mm*(0.5,1); +beginfig(2); + numeric len, ray; + len = 10; + ray = 0.9; + f := (5,2*ray,1+1.5*ray); + viewcentr := (0,2.5*ray,1+0.5*ray); + drawoptions( withpen pencircle scaled 2.3pt ); + kindofcube(false,true,black,0,0,0,1,len*ray,2); + numeric i; + for i=2 step 2 until len-1: + fakehole( (0,i*ray,1), red, ray ); + endfor; +endfig; + +end. + + + diff --git a/Master/texmf-dist/doc/metapost/featpost/example/standard/featpostlogo.mp b/Master/texmf-dist/doc/metapost/featpost/example/standard/featpostlogo.mp new file mode 100644 index 00000000000..9e68e9899e6 --- /dev/null +++ b/Master/texmf-dist/doc/metapost/featpost/example/standard/featpostlogo.mp @@ -0,0 +1,29 @@ +% featpostlogo.mp +% L. Nobre G. +% 2002 + +%input featpost3Dplus2D; + +verbatimtex +\documentclass{article} +\newfont{\normald}{logod10 scaled 5000} +\pagestyle{empty} +\begin{document} +etex + +input boxes; + +beginfig(1); + picture logo; + defaultdx := 3mm; + defaultdy := 2mm; + logo = thelabel.urt( btex {\normald FEATPOST} etex, origin ); + boxit.thelogo( logo ); + drawboxed( thelogo ); +endfig; + +verbatimtex +\end{document} +etex + +end; diff --git a/Master/texmf-dist/doc/metapost/featpost/example/standard/ffcbob.mp b/Master/texmf-dist/doc/metapost/featpost/example/standard/ffcbob.mp new file mode 100644 index 00000000000..3e4eff5a828 --- /dev/null +++ b/Master/texmf-dist/doc/metapost/featpost/example/standard/ffcbob.mp @@ -0,0 +1,84 @@ +% ffcbob.mp +% L. Nobre G. +% 2003 + +%input featpost3Dplus2D; + +f := 2*(15,0,2); +Spread := 20; + +beginfig(1); + numeric phi, theta, back, numbacks, minnum, maxnum; + phi = 30; + theta = 80; + back = 7; + numbacks = 30; + minnum = 3; + maxnum = 15; + numeric upl[], dol[], pos[], len[], rai[] rao[]; + upl1=1; dol1=17;pos1=-5.0; len1=2.0; rai1=1.5; rao1=6.5; + upl2=2; dol2=16;pos2=-3.0; len2=0.8; rai2=1.5; rao2=6.3; + upl3=3; dol3=15;pos3=-2.2; len3=0.4; rai3=1.5; rao3=4.8; + upl4=4; dol4=14;pos4=-1.8; len4=0.4; rai4=1.5; rao4=4.4; + upl5=5; dol5=13;pos5=-1.4; len5=0.4; rai5=1.5; rao5=4.2; + upl6=6; dol6=11;pos6=-1.0; len6=0.2; rai6=1.5; rao6=3.2; + upl7=7; dol7=12;pos7=-1.0; len7=0.2; rai7=4.0; rao7=4.6; + upl8=8; dol8=10;pos8=-0.8; len8=0.6; rai8=1.5; rao8=3.2; + upl9=9; dol9=7; pos9=-0.2; len9=0.4; rai9=1.5; rao9=3.2; + upl10=10;dol10=9;pos10=-0.2;len10=0.2;rai10=4.0;rao10=4.4; + upl11=11;dol11=8;pos11=0.0; len11=0.2;rai11=4.0;rao11=4.6; + upl12=12;dol12=6;pos12=0.2; len12=0.8;rai12=1.5;rao12=4.8; + upl13=13;dol13=5;pos13=1.0; len13=0.4;rai13=1.5;rao13=4.4; + upl14=14;dol14=3;pos14=1.4; len14=0.2;rai14=1.5;rao14=4.4; + upl15=15;dol15=4;pos15=1.4; len15=0.2;rai15=4.8;rao15=6.3; + upl16=16;dol16=2;pos16=1.6; len16=0.6;rai16=1.5;rao16=6.3; + upl17=17;dol17=1;pos17=2.2; len17=2.0;rai17=1.5;rao17=6.5; + color axe; + axe = (cosd(phi)*cosd(theta),sind(phi)*cosd(theta),sind(theta)); + numeric i; + for i=0 upto numbacks: + draw rp(back*(1,2*i/numbacks-1,-1))-- + rp(back*(-1,2*i/numbacks-1,-1))-- + rp(back*(-1,2*i/numbacks-1,1)) withcolor 0.7background; + endfor; + numeric crux; + crux = cdotprod( f, axe ); + numeric j, k; + if crux <= pos[minnum+1]: + for i=minnum upto maxnum: + j := maxnum; + forever: + exitunless dol[j] <> i; + j := decr( j ); + endfor; +% rigorousdisc(rai[j],true,axe*pos[j],rao[j],axe*len[j]); + rigorousdisc(0,true,axe*pos[j],rao[j],axe*len[j]); + endfor; + elseif crux > pos[maxnum]: + for i=minnum upto maxnum: +% rigorousdisc(rai[i],true,axe*pos[i],rao[i],axe*len[i]); + rigorousdisc(0,true,axe*pos[i],rao[i],axe*len[i]); + endfor; + else: + k := minnum+2; + forever: + exitif crux <= pos[k]; + k := incr( k ); + endfor; + for i=minnum upto k-1: +% rigorousdisc(rai[i],true,axe*pos[i],rao[i],axe*len[i]); + rigorousdisc(0,true,axe*pos[i],rao[i],axe*len[i]); + endfor; + for i=k upto maxnum: + j := maxnum; + forever: + exitunless dol[j] <> i; + j := decr( j ); + endfor; +% rigorousdisc(rai[j],true,axe*pos[j],rao[j],axe*len[j]); + rigorousdisc(0,true,axe*pos[j],rao[j],axe*len[j]); + endfor; + fi; +endfig; + +end. diff --git a/Master/texmf-dist/doc/metapost/featpost/example/standard/fieldlinesnorma.mp b/Master/texmf-dist/doc/metapost/featpost/example/standard/fieldlinesnorma.mp new file mode 100644 index 00000000000..ca3e1edb9b6 --- /dev/null +++ b/Master/texmf-dist/doc/metapost/featpost/example/standard/fieldlinesnorma.mp @@ -0,0 +1,104 @@ +% fieldlinesnorma.mp +% L. Nobre G. +% 2003 + +%input featpost3Dplus2D; + +Spread := 25; +f := (10,-2,7); + +color posa, posb, perpd; +numeric kfac; +posa = -5*green; +posb = 5*green; +perpd = (1,0,1); +kfac = -10; + +def vecfunc( expr posit )= + begingroup + save modula, modulb, field; + color field; + numeric modula, modulb; + modula = conorm( posit-posa ); + modulb = conorm( posit-posb ); + field = ( posit-posa )/(modula**3)+kfac*( posit-posb )/(modulb**3); + ( N(field) ) + endgroup +enddef; + +def potfunc( expr posit )= + begingroup + save field; + color field; + field = vecfunc( posit ); + ( ncrossprod( field, perpd ) ) + endgroup +enddef; + +beginfig(1); + numeric i, lena, lenb, numa, numb, sa, sb, diffstep, ray; + color stp; + path oneline; + pen grossa, fina; + grossa = pencircle scaled 3pt; + fina = pencircle scaled 2pt; + lena = 85; + lenb = 20; + numa = 30; + numb = 18; + diffstep = 0.1; + ray = 0.5; + sa = 75; + sb = 90; + for i=sa step numa until (360+sa): + stp := posa+( ray*cosd(i), ray*sind(i), 0 ); + oneline := fieldlinepath( lena, stp, diffstep, vecfunc ); + draw oneline withpen grossa; +% draw oneline withpen fina withcolor background; + endfor; + for i=sb step numb until (360+sb): + stp := posb+( ray*cosd(i), ray*sind(i), 0 ); + oneline := fieldlinepath( lenb, stp, -diffstep, vecfunc ); + draw oneline withpen grossa; +% draw oneline withpen fina withcolor background; + endfor; + draw rp(posa) withpen grossa; + draw rp(posb) withpen grossa; +endfig; + +Spread := 17; +f:= (10,-6,7); + +beginfig(2); + numeric i, lena, lenb, numa, numb, sa, sb, diffstep, ang; + color stp; + path oneline; + pen grossa, fina; + grossa = pencircle scaled 3pt; + fina = pencircle scaled 2pt; + lena = 85; + lenb = 125; + numa = 0.03; + numb = 0.30; + diffstep = 0.2; + ang = -90; + sa = 1.5; + sb = 4.5; + for i=sa step numa until (1.5+sa): + stp := posa+i*cosd(ang)*green+i*sind(ang)*ncrossprod(perpd,green); + oneline := fieldlinepath( lena, stp, diffstep, potfunc ); + draw oneline withpen grossa; +% draw oneline withpen fina withcolor background; + endfor; + ang := 180; + for i=sb step numb until (3.7+sb): + stp := posb+i*cosd(ang)*green+i*sind(ang)*ncrossprod(perpd,green); + oneline := fieldlinepath( lenb, stp, diffstep, potfunc ); + draw oneline withpen grossa; +% draw oneline withpen fina withcolor background; + endfor; + draw rp(posa) withpen grossa; + draw rp(posb) withpen grossa; +endfig; + +end. diff --git a/Master/texmf-dist/doc/metapost/featpost/example/standard/fis1prex.mp b/Master/texmf-dist/doc/metapost/featpost/example/standard/fis1prex.mp new file mode 100644 index 00000000000..cff9d672d88 --- /dev/null +++ b/Master/texmf-dist/doc/metapost/featpost/example/standard/fis1prex.mp @@ -0,0 +1,131 @@ +% fis1prex.mp +% L. Nobre G. +% 2003 + +%input featpost3Dplus2D; + +verbatimtex +\documentclass{article} +\usepackage{beton} +\usepackage{concmath} +\usepackage{ccfonts} +\begin{document} +etex + +beginfig(1); + numeric largtecto, molasfrac, altutecto, compcorda, espetecto; + numeric largmolas, largnum, cordafrac, espesfrac, largmolfr; + numeric u, alpha, i, numturns, alphafrac, alpharadi, rcf, rcd; + pen mainp, auxip; + path leftspr, rightsp, corda, boxtecto, traco, linhalpha, rcp; + pair esqutecto, diretecto, esquemola, direimola, espessvec; + largnum = 100; + u = 1mm; + molasfrac = 0.8; + espesfrac = 0.1; + cordafrac = 0.3; + alphafrac = 0.3; + largmolfr = 0.12; + rcf = 0.1; + numturns = 11; + alpha = 120; + mainp = pencircle scaled 0.4u; + auxip = pencircle scaled 0.2u; + largtecto = largnum*u; + rcd = rcf*largtecto; + largmolas = largmolfr*molasfrac*largtecto; + compcorda = cordafrac*largtecto; + espetecto = espesfrac*largtecto; + altutecto = 0.5*largtecto*molasfrac*cosd(alpha/2)/sind(alpha/2); + alpharadi = 2*alphafrac*altutecto; + esqutecto = (-largtecto/2,altutecto); + diretecto = (largtecto/2,altutecto); + esquemola = (-largtecto*molasfrac/2,altutecto); + direimola = (largtecto*molasfrac/2,altutecto); + espessvec = (0,espetecto); + boxtecto = esqutecto-- + diretecto-- + (diretecto+espessvec)-- + (esqutecto+espessvec)--cycle; + traco = (origin--(dir(45))) scaled 6in; + for i=-largnum upto largnum: + draw traco shifted (2*i*u,0) withpen auxip; + endfor; + clip currentpicture to boxtecto; + pickup mainp; + draw esqutecto--diretecto; + leftspr = springpath(direimola,origin,numturns,largmolas,0.55); + rightsp = springpath(origin,esquemola,numturns,largmolas,0.55); + draw leftspr; + draw rightsp; + rcp = randomcirc( rcd, 0.1*rcd, 180 ) shifted (0,-compcorda); + draw rcp; + draw origin--(0,-compcorda) cutafter rcp; + linhalpha = fullcircle scaled alpharadi; + linhalpha := linhalpha cutafter rightsp; + linhalpha := linhalpha cutbefore leftspr; + draw linhalpha withpen auxip; + label(btex m etex scaled 3, (0,-compcorda) ); + label.urt(btex $\alpha$ etex scaled 3, (0,alpharadi/2) ); +endfig; + +beginfig(2); + numeric u, basesize, baseheight, alphang, thetang, sfearsize; + numeric armsize, marginraise, totalraise, axeray, cardansize; + color basepos, tdorigin, oneaxe, otheraxe, rotaxbascenter, axedir; + color gluaxbascenter, rotrajcenter, cardanpos, refpoint, anotheraxe; + color armdir, armbasonepos, armbastwopos, sfearpos; + path glueaxebase, rotataxebase, rotrajector, axepath, sfearpath; + numeric armray; + u = 0.0125mm; + basesize = 30u; + baseheight = 3u; + alphang = 20; + thetang = -18; + armsize = 25u; + marginraise = 6u; + axeray = 3u; + cardansize = 3u; + sfearsize = 4u; + armray = 1.5u; + totalraise = armsize*sind(alphang)+marginraise+cardansize*cosd(alphang); + basepos = (0,0,-0.5baseheight); + f := -2*(-2basesize,-basesize,-5baseheight); + kindofcube(false, false, basepos, 0, 0, 0, 2basesize, 2basesize, baseheight ); + tdorigin = (0,0,0); + oneaxe = (0,axeray/cosd(alphang),0); + otheraxe = (1,0,0); + anotheraxe = (0,cosd(alphang),-sind(alphang)); + gluaxbascenter = tdorigin - (0,totalraise*sind(alphang),0); + glueaxebase = ellipticpath( gluaxbascenter, oneaxe, axeray*otheraxe ); + axedir = (0,sind(alphang),cosd(alphang)); + rotrajcenter = (0,0,totalraise); + rotaxbascenter = rotrajcenter-axedir*cardansize; + refpoint = rotrajcenter+axedir*cardansize; + rotataxebase = rigorouscircle( rotaxbascenter, axedir, axeray ); + rotrajector = rigorouscircle( rotrajcenter, axedir, armsize ); + axepath = twocyclestogether( glueaxebase, rotataxebase ); + fill axepath withcolor background; + draw axepath; + draw rotataxebase; + drawarrow subpath (3,10.5) of rotrajector dashed evenly; +% dotlabel.top( btex 1 etex, point 1 of rotrajector ); +% dotlabel.top( btex 5 etex, point 5 of rotrajector ); +% dotlabel.top( btex 3 etex, point 3 of rotrajector ); + kindofcube(false,false,rotrajcenter,90,90-alphang,thetang,2cardansize,2cardansize,2cardansize); + draw rp(refpoint); + armdir := otheraxe*cosd(thetang)+anotheraxe*sind(thetang); + armbasonepos = rotrajcenter + cardansize*armdir; + armbastwopos = rotrajcenter + (armsize-sfearsize)*armdir; % NOT RIGOROUS + sfearpos = rotrajcenter + armsize*armdir; + rigorousdisc( 0, true, armbasonepos, armray, armbastwopos-armbasonepos ); + sfearpath = rigorousfearpath( sfearpos, sfearsize ); + fill sfearpath withcolor background; + draw sfearpath; +endfig; + +verbatimtex +\end{document} +etex + +end; diff --git a/Master/texmf-dist/doc/metapost/featpost/example/standard/fis3prex.mp b/Master/texmf-dist/doc/metapost/featpost/example/standard/fis3prex.mp new file mode 100644 index 00000000000..0fbc862c3b2 --- /dev/null +++ b/Master/texmf-dist/doc/metapost/featpost/example/standard/fis3prex.mp @@ -0,0 +1,481 @@ +% fis3prex.mp +% L. Nobre G. +% 2004 + +%input featpost3Dplus2D; + +verbatimtex +\documentclass{article} +\usepackage{beton} +\usepackage{concmath} +\usepackage{ccfonts} +\begin{document} +etex + +def platecap( expr Xpos, Shade, Angle, Oray, Iray, NumPoints ) = + begingroup + path perim, op, ip; + numeric i; + color axey, axmz, tp; + axey = cosd( Angle )*green + sind( Angle )*blue; + axmz = -cosd( Angle )*blue + sind( Angle )*green; + tp = Xpos*red; + op = rp( tp+Oray*axey ) + for i=1 upto NumPoints: + ..rp(tp+Oray*(cosd(i*180/NumPoints)*axey+sind(i*180/NumPoints)*axmz)) + endfor; + ip = rp( tp+Iray*axey ) + for i=1 upto NumPoints: + ..rp(tp+Iray*(cosd(i*180/NumPoints)*axey+sind(i*180/NumPoints)*axmz)) + endfor; + perim = op--reverse ip--cycle; + fill perim withcolor Shade; + draw perim + endgroup +enddef; + +beginfig(1); + f := ( 4, 1, 2 ); + numeric i, j, xsiz, ysiz, gstep, angl, vlen, fact, xa, xb, yb; + color vdir, bpos, ap, bp, cp, dp; + path base; + xsiz = 2; + ysiz = 3; + gstep = 0.23; + angl = 33; + vlen = 0.45; + fact = 1.3; + vdir = vlen*( 0, cosd(angl), sind(angl) ); + xa = 0.5*gstep; + xb = (xsiz+0.5)*gstep; + yb = (ysiz+0.5)*gstep; + ap = (-xa,-xa,0); + bp = (-xa,yb,0); + cp = (xb,yb,0); + dp = (xb,-xa,0); + for i=0 upto xsiz: + for j=0 upto ysiz: + bpos := gstep*(i,j,0); + draw rp(bpos-fact*vdir)--rp(bpos); + drawarrow rp(bpos-fact*vdir)--rp(bpos-vdir); + endfor; + endfor; + base = rp(ap)--rp(bp)--rp(cp)--rp(dp)--cycle; + fill base withcolor 0.7background; + draw base; + for i=0 upto xsiz: + for j=0 upto ysiz: + bpos := gstep*(i,j,0); + draw rp(bpos+fact*vdir)--rp(bpos); + drawarrow rp(bpos)--rp(bpos+vdir); + endfor; + endfor; + draw rp(black)--rp( (0,0,vlen) ) dashed evenly; + angline( fact*vdir, (0,0,vlen), black, 0.7*vlen, btex 57$^\circ$ etex, urt ); + label.top( btex $\vec{B}$ etex, rp(vdir) ); +endfig; + +beginfig(2); + f := ( 4, 3, 2 ); + numeric i, numplates, xdelta, iangle, ang, oray, iray, numpois; + numeric aang, imray, omray, mmray, axray, numouts; + color shade, shadea, shadeb, p[]; + path fucir, outerarrow, theknob; + numplates = 11; + numouts = 2; + xdelta = 0.1; + iangle = 53; + oray = 0.5; + iray = 0.07; + imray = 0.52; + omray = 0.67; + mmray = 0.64; + axray = 0.04; + numpois = 10; + shadea = 0.8background; + shadeb = 0.6background; + fucir = rigorouscircle( (-(numplates-1)*xdelta,0,0), red, imray ); + outerarrow = subpath (1.7,2.3) of fucir; + p1 = ( -(numplates-1)*xdelta, imray, 0 ); + p2 = ( -(numplates-1)*xdelta, omray, 0 ); + p3 = ( -(numplates-2)*xdelta, imray, 0 ); + p4 = ( -(numplates-2)*xdelta, omray, 0 ); + p5 = ( -(numplates-4)*xdelta, mmray, 0 ); + p6 = ( -(numplates-2)*xdelta, mmray, 0 ); + p7 = ( -(numplates+1)*xdelta, mmray, 0 ); + p8 = ( -(numplates-1)*xdelta, mmray, 0 ); + p9 = ( -xdelta, cosd( 0.5*iangle )*0.5*oray, sind( 0.5*iangle )*0.5*oray ); + p0 = ( 0, cosd( 0.5*iangle )*0.5*oray, -sind( 0.5*iangle )*0.5*oray ); + for i=1-numplates upto 0: + if odd(i): + shade := shadea; + ang := iangle; + else: + shade := shadeb; + ang := 0; + fi; + platecap( i*xdelta, shade, ang, oray, iray, numpois ); + background := shadea; + rigorousdisc( 0, true, (i*xdelta,0,0), axray, xdelta*red ); + background := shadeb; + rigorousdisc( 0, true, (i*xdelta,-oray,0), axray, xdelta*red ); + background := background; + endfor; + for i=1 upto numouts: + background := shadea; + rigorousdisc( 0, true, (i*xdelta,0,0), axray, xdelta*red ); +% background := shadeb; +% rigorousdisc( 0, true, (i*xdelta,-oray,0), axray, xdelta*red ); + endfor; + theknob = rigorousfearpath( ((numouts+1)*xdelta,0,0), 2*axray ); + fill theknob; + draw theknob; + background := background; + draw rp(p1)--rp(p2); + draw rp(p3)--rp(p4); + drawarrow rp(p5)--rp(p6); + drawarrow rp(p7)--rp(p8); + drawarrow outerarrow; + label.ulft( btex $d$ etex, rp(p7) ); + label( btex $A$ etex, rp(p9) ); + label( btex $A$ etex, rp(p0) ); +endfig; + +beginfig(3); + f := ( 3, 2, 1 ); + numeric oray, iray; + path opath, ipath; + color lRpos, Rpos, Ppos, zpos, rpos, spos; + oray = 0.5; + iray = 0.2oray; + opath = rigorouscircle( black, blue, oray ); + ipath = rigorouscircle( black, blue, 0.2oray ); + fill opath withcolor 0.7background; + fill ipath withcolor background; + draw opath; + draw ipath; + lRpos = ( oray, 0, 0 ); + Rpos = 0.5lRpos; + Ppos = ( 0, 0, 2oray ); + zpos = 0.5Ppos; + rpos = ( 0, iray, 0 ); + spos = -Rpos; + drawarrow rp(black)--rp(lRpos); + drawarrow rp(black)--rp(Ppos); + drawarrow rp(black)--rp(rpos); + dotlabel.lft( btex $P$ etex, rp(Ppos) ); + label.rt( btex $z$ etex, rp(zpos) ); + label.ulft( btex $R$ etex, rp(Rpos) ); + label.lrt( btex $r$ etex, rp(rpos) ); + label( btex $\sigma$ etex, rp(spos) ); +endfig; + +beginfig(4); + f := ( 3, 4, 2 ); + numeric raya, rayb, rayc, lena, lenb; + color baseac, baseav, basebc, basebv, rayabbeg, rayabend, lambdapos; + raya = 0.017; + rayb = 0.1; + rayc = 0.2; + lena = 1.4; + lenb = 0.6; + baseac = 0.5*lena*red; + baseav = -lena*red; + basebc = 0.5*lenb*red; + basebv = -lenb*red; + rayabbeg = ( 0.5*lenb, raya, 0 ); + rayabend = ( 0.5*lenb, rayc, 0 ); + lambdapos = ( 0, rayc, 0 ); + rigorousdisc( 0, true, basebc, rayc, basebv ); + rigorousdisc( 0, true, baseac, raya, baseav ); + rigorousdisc( 0, false, basebc, rayc, basebv ); + drawarrow rp( rayabbeg )--rp( rayabend ); + label.bot( btex $R$ etex, rp( 0.5[rayabbeg,rayabend] ) ); + label( btex $\lambda_t$ etex, rp ( lambdapos ) ); + label.lrt( btex $\lambda_f$ etex, rp( 0.3[baseac,basebc] ) ); +endfig; + +beginfig(5); + f := ( 5, 5, 3 ); + numeric i, numpoints, ray, aux, blen, bang, fa, fb, fc, fd; + path wirea, wireb, wirec, wired, wirepath; + color wa[], wb[], btip, xpos; + pen bigpen, smallpen; + numpoints = 36; + ray = 0.5; + blen = 0.8; + fa = -1.1; + fb = -0.8; + fc = -fb; + fd = -fa; + bang = -45; + btip = blen*(0,cosd( bang ), sind( bang ) ); + for i=1 upto numpoints: + aux := i*180/numpoints; + wa[i] = ray*(red*cosd(aux)+green*sind(aux)); +% drawarrow rp( wa[i] )--rp( wa[i]+btip ); + wb[i] = ray*(-red*cosd(aux)-blue*sind(aux)); +% drawarrow rp( wb[i] )--rp( wb[i]+btip ); + endfor; + wirepath = for i=1 upto numpoints: + rp( wa[i] )-- endfor for i=1 upto numpoints: + rp( wb[i] )-- endfor cycle; + bigpen = pencircle scaled 3pt; + smallpen = pencircle scaled 2.2pt; + draw wirepath withpen bigpen; + wirea = rp( wb[numpoints] ) for i=1 upto numpoints: + --rp( wa[i] ) endfor; + wireb = rp( wa[numpoints] ) for i=1 upto numpoints: + --rp( wb[i] ) endfor; + wirec = rp( wb[numpoints-1] )--wirea--rp( wb[1] ); +% wired = rp( wa[numpoints-1] )--wireb--rp( wa[1] ); + draw wireb withpen smallpen withcolor background; +% cartaxes( 2ray, 2ray, 1.2ray ); + draw rp( 2*ray*red )--rp( -2*ray*red ) dashed evenly; + draw rp( black )--rp( -ray*blue ); + draw rp( black )--rp( ray*green ); + for i=-1 upto 1: + xpos := (i*ray,0,0); + drawarrow rp( xpos+fa*btip )--rp( xpos+fb*btip ); + drawarrow rp( xpos+fb*btip )--rp( xpos+fc*btip ); + draw rp( xpos+fc*btip )--rp( xpos+fd*btip ); + endfor; + squareangline( -ray*blue, ray*green, black, 0.1*ray); + draw wirea withpen bigpen; + draw wirec withpen smallpen withcolor background; + label.urt( btex $\vec{B}$ etex, rp( btip ) ); +endfig; + +beginfig(6); + path baset, sphere; + color va, vb, vc, qpos; + va = (0,0,0); + vb = (0.5,0.5*sqrt(3),0); + vc = (-0.5,0.5*sqrt(3),0); + baset = rp( va )--rp( vb )--rp( vc )--cycle; + draw baset; + qpos = (0,0.333*sqrt(3),0.333*sqrt(1-0.333*sqrt(3)) ); + sphere = rigorousfearpath( qpos, 0.1 ); + fill sphere withcolor background; + draw sphere; + label( btex +$q$ etex, rp( qpos ) ); +endfig; + +beginfig(7); + Spread := 50; + f := (4,6,3.5); + path fiodecima, fioabaixo, malhacub, rama, ramb, ramc; + path malhatet, ramd, rame; + pen grossa, nuclear, negat; + color p[]; + numeric altura, margem, largneg, largpos, afast, lengax, lscal; + pair topo, base, decima, abaixo, centerfont, centerneg, centerpos; + pair a, b, c, d, tx, ty, tz; + altura = 2cm; + margem = 3mm; + largneg = 9mm; + largpos = 18mm; + afast = 5cm; + lengax = 0.7; + lscal = 2; + grossa = pencircle scaled 2.7pt; + nuclear = pencircle scaled 2.1pt; + negat = pencircle scaled 1.8pt; + p1 = (1,1,-1); + p2 = (-1,1,-1); + p3 = (-1,-1,-1); + p4 = (1,-1,-1); + p5 = (1,1,1); + p6 = (-1,1,1); + p7 = (-1,-1,1); + p8 = (1,-1,1); + p0 = (0,0,1); + p9 = (0,0,-1); + z1 = rp(p1); + z2 = rp(p2); + z3 = rp(p3); + z4 = rp(p4); + z5 = rp(p5); + z6 = rp(p6); + z7 = rp(p7); + z8 = rp(p8); + z0 = rp(p0); + z9 = rp(p9); + tx = rp( p1 - (lengax,0,0) ); + ty = rp( p1 - (0,lengax,0) ); + tz = rp( p1 + (0,0,lengax) ); + topo = (xpart z0, altura + ypart z0); + base = (xpart z9, -altura + ypart z9); + decima = (afast + xpart topo, ypart topo); + abaixo = (afast + xpart base, ypart base); + centerfont = 0.5*(decima+abaixo); + centerpos = (xpart centerfont, 0.5*margem + ypart centerfont); + centerneg = (xpart centerfont, -0.5*margem + ypart centerfont); + fiodecima = z0--topo--decima--centerpos; + fioabaixo = z9--base--abaixo--centerneg; + a = ( -0.5*largpos + xpart centerfont, ypart centerpos); + b = ( 0.5*largpos + xpart centerfont, ypart centerpos); + c = ( -0.5*largneg + xpart centerfont, ypart centerneg); + d = ( 0.5*largneg + xpart centerfont, ypart centerneg); + malhacub = z1--z2--z3--z4--z1--z5--z6--z7--z8--z5; + malhatet = z2--z7--z4--z5--cycle; + rama = z2--z6; + ramb = z3--z7; + ramc = z4--z8; + ramd = z5--z7; + rame = z2--z4; + drawoptions( dashed evenly ); + draw malhacub; + draw rama; + draw ramb; + draw ramc; + drawoptions( withpen grossa ); + draw malhatet; + draw ramd; + draw rame; +% drawoptions( withpen nuclear withcolor background ); +% draw malhatet; +% draw ramd; +% draw rame; + drawoptions(); + draw fiodecima; + draw fioabaixo; + draw a--b; + drawarrow z1--tx withpen negat; + drawarrow z1--ty withpen negat; + drawarrow z1--tz withpen negat; + label.lrt(btex $x$ etex scaled lscal, tx); + label.llft(btex $y$ etex scaled lscal, ty); + label.lft(btex $z$ etex scaled lscal, tz); + linecap := butt; + draw c--d withpen negat; +endfig; + +beginfig(8); + Spread := 50; + f := (6,6,3.5); + numeric squareside, sray, cdiameter, cray, distmargin, linemargin, eloing; + squareside = 1; + cdiameter = squareside/0.88623; + cray = cdiameter/2.0; + sray = squareside/2.0; + distmargin = 0.5; + linemargin = 0.15; + eloing = 0.4; + pen pena, penb, penc; + pena = pencircle scaled 1.3mm; + penb = pencircle scaled 0.95mm; + penc = pencircle scaled 0.4mm; + color tracecol, outcol, incol; + tracecol = 0.5white; + outcol = black; + incol = 0.876white; + color va, vb, vc, vd, cen, bs, bc, fs, fc, ds, dc; + va = (0,-sray,-sray); + vb = (0,sray,-sray); + vc = (0,sray,sray); + vd = (0,-sray,sray); + cen = (-distmargin,0,0); + bs = (0,-sray-linemargin,0); + bc = bs+cen; + fs = (0,sray+eloing,0); + ds = (0,sray+eloing-linemargin,0); + fc = fs+cen; + dc = ds+cen; + path rigcirc, carrpath, square, circ, sline, cline, dline; + square = rp(va)--rp(vb)--rp(vc)--rp(vd)--cycle; + circ = goodcirclepath( cen, red, cray ); + rigcirc = rigorouscircle( cen, red, cray+linemargin ); + carrpath = subpath (1,2) of rigcirc; + sline = rp(bs)--rp(fs); + cline = rp(bc)--rp(fc); + dline = rp(ds)--rp(dc); + + draw cline withpen penc withcolor tracecol; + draw circ withpen pena withcolor outcol; + draw circ withpen penb withcolor incol; + draw sline withpen penc withcolor tracecol; + draw square withpen pena withcolor outcol; + draw square withpen penb withcolor incol; + drawdblarrow dline withpen penc withcolor tracecol; + + pair begsarr, endsarr; + begsarr = rp((0,-sray-linemargin,linemargin)); + endsarr = rp((0,-sray-linemargin,sray)); + drawarrow begsarr--endsarr withpen penc withcolor tracecol; + drawarrow carrpath withpen penc withcolor tracecol; + + label.lft( btex $I$ etex, rp((0,-sray-linemargin,sray-linemargin)) ); + label.top( btex $+$ etex, point 1.5 of rigcirc ); + label.top( btex $d$ etex, rp(dc) ); +endfig; + +beginfig(9); + Spread := 50; + f := (6,6,3.5); + numeric squareside, sray, cdiameter, cray, distmargin, linemargin, eloing; + squareside = 1; + cdiameter = squareside/0.88623; + cray = cdiameter/2.0; + sray = squareside/2.0; + distmargin = 0.5; + linemargin = 0.15; + eloing = 0.4; + pen pena, penb, penc; + pena = pencircle scaled 1.3mm; + penb = pencircle scaled 0.95mm; + penc = pencircle scaled 0.4mm; + color tracecol, outcol, incol; + tracecol = 0.5white; + outcol = black; + incol = 0.876white; + color va, vb, vc, vd, cen, bs, bc, fs, fc, ds, dc, os, oc, ncc; + va = (0,-sray,-sray); + vb = (0,sray,-sray); + vc = (0,sray,sray); + vd = (0,-sray,sray); + cen = (-distmargin,0,0); + bs = (0,-sray-linemargin,0); + bc = bs+cen; + fs = (0,sray+eloing,0); + ds = (0,sray+eloing-linemargin,0); + fc = fs+cen; + dc = ds+cen; + os = (linemargin,sray,0); + oc = (-distmargin-cdiameter-linemargin,sray,0); + ncc = (-distmargin-cray,sray,0); + path rigcirc, carrpath, square, circ, sline, cline, dline, oline; + square = rp(va)--rp(vb)--rp(vc)--rp(vd)--cycle; + circ = goodcirclepath( ncc, green, cray ); + rigcirc = rigorouscircle( ncc, green, cray+linemargin ); + carrpath = subpath (3,4) of rigcirc; + sline = rp(bs)--rp(fs); + cline = rp(bc)--rp(fc); + dline = rp(ds)--rp(dc); + oline = rp(os)--rp(oc); + + draw oline withpen penc withcolor tracecol; + draw cline withpen penc withcolor tracecol; + draw circ withpen pena withcolor outcol; + draw circ withpen penb withcolor incol; + draw sline withpen penc withcolor tracecol; + draw square withpen pena withcolor outcol; + draw square withpen penb withcolor incol; + drawdblarrow dline withpen penc withcolor tracecol; + + pair begsarr, endsarr; + begsarr = rp((0,-sray-linemargin,linemargin)); + endsarr = rp((0,-sray-linemargin,sray)); + drawarrow begsarr--endsarr withpen penc withcolor tracecol; + drawarrow carrpath withpen penc withcolor tracecol; + + label.lft( btex $I$ etex, rp((0,-sray-linemargin,sray-linemargin)) ); + label.top( btex $+$ etex, point 3.5 of rigcirc ); + label.bot( btex $d$ etex, rp(dc) ); +endfig; + +verbatimtex +\end{document} +etex + +end; diff --git a/Master/texmf-dist/doc/metapost/featpost/example/standard/geombasic.mp b/Master/texmf-dist/doc/metapost/featpost/example/standard/geombasic.mp new file mode 100644 index 00000000000..168f1cc9fc5 --- /dev/null +++ b/Master/texmf-dist/doc/metapost/featpost/example/standard/geombasic.mp @@ -0,0 +1,82 @@ +% geombasic.mp +% L. Nobre G. +% 2003 + +%input featpost3Dplus2D; + +verbatimtex +\documentclass{article} +\usepackage{beton} +\usepackage{concmath} +\usepackage{ccfonts} +\begin{document} +etex + +% Kind of graph that physicists do a lot. Play with the angles +% and h a little to see what happens. Change the point of view f. +% Change the position of symbols using the last argument of angline. + +beginfig(1); + + f := (3,5,2); + + Spread := 155; + + ShiftV := origin; + + gamma := 30; + theta := 15; + phi := 40; + h := 1.2; + + p := 0.75; + ppp := 0.8; + + mythick := 0.9pt; + + color c[], n[], H; + c0 := (0,0,0); + n0 := (cosd(gamma),0,sind(gamma)); + n1 := (cosd(gamma+theta),0,sind(gamma+theta)); + n2 := (cosd(gamma)*cosd(phi),cosd(gamma)*sind(phi),sind(gamma)); + n3 := (cosd(gamma+theta)*cosd(phi), + cosd(gamma+theta)*sind(phi),sind(gamma+theta)); + n4 := (cosd(phi),sind(phi),0); + H := h*(-sind(gamma),0,cosd(gamma)); + c1 := (0,0,Z(p*n1)); + c2 := (0,0,Z(p*n2)); + c3 := (1,0,0); + c4 := (0,0,1); + c5 := (X(H),0,0); + pickup pencircle scaled 1.25pt; + drawarrow rp(c0)..rp(n0); + drawarrow rp(c0)..rp(n3); + drawarrow rp(c0)..rp(H); + label.urt(btex $\vec{n}_0$ etex,rp(n0)); + label.urt(btex $\vec{n}$ etex,rp(n3)); + label.lft(btex $\vec{H}$ etex,rp(H)); + pickup pencircle scaled mythick; + cartaxes(1,1,1); +% draw rp(c0)--rp(p*n1) dashed evenly scaled 2; +% draw rp(c0)--rp(p*n2) dashed evenly scaled 2; + draw rp(c0)--rp(c5)--rp(H) dashed evenly scaled 1.5; +% draw rp(c1)..rp(p*n1) dashed evenly scaled 2; + draw rp(c1)..rp(p*n3) dashed evenly scaled 1.5; +% draw rp(c2)..rp(p*n0) dashed evenly scaled 2; +% draw rp(c2)..rp(p*n2) dashed evenly scaled 2; + draw rp(c0)..rp(n4) dashed evenly scaled 1.5; + angline(c3,n0,c0,ppp,btex $\gamma$ etex,lft); +% angline(n0,n1,c0,p,btex $\theta$ etex,rt); +% angline(p*n0,p*n2,c2,X(p*n0),btex $\phi$ etex,lrt); +% angline(p*n1,p*n3,c1,X(p*n1),btex $\phi$ etex,ulft); +% angline(n2,n3,c0,p,btex $\theta $ etex,urt); + angline(c4,H,c0,ppp,btex $\gamma$ etex,top); + angline(n4,n3,c0,p,btex $\gamma+\theta$ etex,lft); + angline(n4,c3,c0,p,btex $\phi$ etex,llft); +endfig; + +verbatimtex +\end{document} +etex + +end. diff --git a/Master/texmf-dist/doc/metapost/featpost/example/standard/geomfiguei.mp b/Master/texmf-dist/doc/metapost/featpost/example/standard/geomfiguei.mp new file mode 100644 index 00000000000..81abd780492 --- /dev/null +++ b/Master/texmf-dist/doc/metapost/featpost/example/standard/geomfiguei.mp @@ -0,0 +1,71 @@ +% geomfiguei.mp +% L. Nobre G. +% 2002 + +%input featpost3Dplus2D; + +verbatimtex +\documentclass{article} +\usepackage{beton} +\usepackage{concmath} +\usepackage{ccfonts} +\begin{document} +etex + +beginfig(1); + + f := 3*(1.2,1.7,0.8); + + Spread := 125; + + color origr, nzero, nothr, ndxyl, vmagf, mfxzp, mfxyp, mfxxp; + numeric alphan, gamman, thetan, phiang, mfsize, axxc, ayyc, azzc; + numeric phiarmlen, alphafac; + axxc = 0.99; + ayyc = 0.87; % make this 1.28 when in twist-bend geometry + azzc = 0.82; + alphan = 170; % make this 90 to get the twist-bend geometry + gamman = 25; + thetan = 10; + phiang = 30; + mfsize = 1.25; + phiarmlen = 0.75; + alphafac = 1.4; + origr = (0,0,0); + nzero = (cosd(gamman),0,sind(gamman)); + ndxyl = phiarmlen*(cosd(phiang),sind(phiang),0); + nothr = (cosd(phiang)*cosd(gamman+thetan), + sind(phiang)*cosd(gamman+thetan),sind(gamman+thetan)); + vmagf = mfsize*(cosd(alphan)*sind(gamman),sind(alphan), + -cosd(alphan)*cosd(gamman)); + mfxzp = (X(vmagf),0,Z(vmagf)); + mfxyp = (X(vmagf),Y(vmagf),0); + mfxxp = (X(vmagf),0,0); + cartaxes( axxc, ayyc, azzc ); + draw rp(origr)--rp(ndxyl) dashed evenly; + draw rp(origr)--rp(mfxzp)--rp(vmagf) dashed evenly; + draw rp(origr)--rp(mfxyp)--rp(vmagf) dashed evenly; + draw rp(origr)--rp(alphafac*mfxyp) dashed evenly; + draw rp(mfxzp)--rp(mfxxp)--rp(origr) dashed evenly; + draw rp(mfxyp)--rp(mfxxp) dashed evenly; + draw rp((0,0,Z(nothr)))--rp(nothr) dashed evenly; + angline(nzero,(1,0,0),origr,0.65,btex $\gamma$ etex,lft); + angline(ndxyl,(1,0,0),origr,0.5,btex $\phi$ etex,llft); + angline(ndxyl,nothr,origr,0.5,btex $\gamma+\theta$ etex,lft); + angline(vmagf,(0,0,1),origr,0.5,btex $\beta$ etex,top); % twist-bend + angline(mfxyp,(1,0,0),origr,0.8,btex $\alpha$ etex,bot); + pickup pencircle scaled 1.15pt; + drawarrow rp(origr)..rp(nzero); + drawarrow rp(origr)..rp(nothr); + drawarrow rp(origr)..rp(vmagf); + label.ulft(btex $\vec{n}_0$ etex,rp(nzero)); + label.ulft(btex $\vec{n}$ etex,rp(nothr)); + label.urt(btex $\vec{H}$ etex,rp(vmagf)); +endfig; + +verbatimtex +\end{document} +etex + +end; + diff --git a/Master/texmf-dist/doc/metapost/featpost/example/standard/geommine.mp b/Master/texmf-dist/doc/metapost/featpost/example/standard/geommine.mp new file mode 100644 index 00000000000..939fc35ed94 --- /dev/null +++ b/Master/texmf-dist/doc/metapost/featpost/example/standard/geommine.mp @@ -0,0 +1,104 @@ +% geommine.mp +% L. Nobre G. +% 2002 + +%input featpost3Dplus2D; + +verbatimtex +\documentclass{article} +\usepackage{beton} +\usepackage{concmath} +\usepackage{ccfonts} +\usepackage{bbold} +\begin{document} +etex + +beginfig(1); + + beta := 15; + alpha := 40; + psi := 26; + theta := 32; + phi := -33; + h := 1.35; + v := 0.4; + xlen := 1.2; + ylen := 0.65; + phirad := 0.67; + + f := (3,5,3); + Spread := 100; + + color c[], n[], H, h[], Vel, xloc, yloc, vx, vy; + c0 := (0,0,0); + cartaxes(xlen,ylen,1.0); + n0 := (cosd(beta),0,sind(beta)); + n3 := (0,sind(phi),0); + n2 := n0 + n3; + n5 := n3 + cosd(phi)*n0; + n4 := cosd(theta)*n5; + Fx:=sind(alpha)*cosd(beta)-cosd(alpha)*cosd(psi)*sind(beta); + Fy:=cosd(alpha)*sind(psi); + Fz:=sind(alpha)*sind(beta)+cosd(alpha)*cosd(psi)*cosd(beta); + nx:=cosd(theta)*cosd(phi)*cosd(beta)-sind(theta)*sind(beta); + ny:=cosd(theta)*sind(phi); + nz:=cosd(theta)*cosd(phi)*sind(beta)+sind(theta)*cosd(beta); + n1 := (nx,ny,nz); + xloc := xlen*n1; + yloc := ylen*(-greenpart n1,redpart n1,0); + H := h*(Fx,Fy,Fz); + Vel := v*(Fx,Fy,Fz); + vx := v*sind(phi)*n1; + vy := v*cosd(phi)*N(yloc); + h4 := h*sind(phi)*n1; + h5 := h*cosd(phi)*N(yloc); + h2 := (-h*sind(beta)*cosd(alpha)*cosd(psi), + 0, + h*cosd(beta)*cosd(alpha)*cosd(psi)); + h3 := (0,h*cosd(alpha)*sind(psi),0); + h1 := h2 + h3; + draw rp(n0)--rp(n2)--rp(n3)--rp(c0); + draw rp(c0)--rp(n4)--rp(n1); + draw rp(n5)--rp(n4); + draw rp(c0)--rp(h2)--rp(h1)--rp(h3)--cycle; + draw rp(c0)--rp(h1)--rp(H); +% draw rp(h4)--rp(H)--rp(h5); + label.llft(btex $\vec{n}_0$ etex,rp(n0)); + label.urt(btex $\vec{n}$ etex,rp(n1)); + label.llft(btex $\vec{H}$ etex,rp(H)); +% label.urt(btex $\vec{v}$ etex,rp(Vel)); +% label.bot(btex $\mathbb{x}$ etex,rp(xloc)); +% label.bot(btex $\mathbb{y}$ etex,rp(yloc)); +% label.lrt(btex $\vec{v}_\mathbb{x}$ etex,rp(vx)); +% label.urt(btex $\vec{v}_\mathbb{y}$ etex,rp(vy)); +% label.lft(btex $\vec{H}_\mathbb{x}$ etex,rp(h4)); +% label.urt(btex $\vec{H}_\mathbb{y}$ etex,rp(h5)); +% pickup pencircle scaled 1pt; + angline(n0,n5,c0,phirad,btex $\phi$ etex,lft); +% angline((0,1,0),yloc,c0,phirad,btex $\phi$ etex,rt); + angline(h2,h1,c0,0.5,btex $\psi$ etex,urt); + angline(H,h1,c0,0.9,btex $\alpha$ etex,top); + angline(n5,n1,c0,0.6,btex $\theta$ etex,ulft); + angline((0,0,1),h2,c0,0.5,btex $\beta$ etex,top); + angline((1,0,0),n0,c0,0.6,btex $\beta$ etex,rt); +% drawarrow rp(c0)..rp(xloc); +% drawarrow rp(c0)..rp(yloc); + pickup pencircle scaled 1.3pt; + drawarrow rp(c0)..rp(n0); + drawarrow rp(c0)..rp(n1); + drawarrow rp(c0)..rp(H); +% drawarrow rp(c0)..rp(Vel); +% drawarrow rp(c0)..rp(vx); +% drawarrow rp(c0)..rp(vy); +% drawarrow rp(c0)..rp(h4); +% drawarrow rp(c0)..rp(h5); +endfig; + +verbatimtex \end{document} etex + +end; + + + + + diff --git a/Master/texmf-dist/doc/metapost/featpost/example/standard/globe.mp b/Master/texmf-dist/doc/metapost/featpost/example/standard/globe.mp new file mode 100644 index 00000000000..22d0cf2bee1 --- /dev/null +++ b/Master/texmf-dist/doc/metapost/featpost/example/standard/globe.mp @@ -0,0 +1,32 @@ +% globe.mp +% L. Nobre G. +% 2003 + +%input featpost3Dplus2D; + +beginfig(1); + color gammacnt; + numeric newradius, radius, aux, i, numc, foc, lc; + path conepath, latpath; + pen thickp; + + f := (2,3,4); + viewcentr := 1.5*(1,1,1); + Spread := 200; + Shifts := 300; + radius = 1; + numc = 9; + thickp = pencircle scaled 1mm; + + pickup thickp; + tropicalglobe( numc, black, radius, blue ); + for i=1 upto numc: % longitudes + aux := (i-1)*180/numc; + gammacnt := (cosd(aux),sind(aux),0); + draw spatialhalfcircle(black,gammacnt,radius,true); + endfor; +endfig; + +end; + + diff --git a/Master/texmf-dist/doc/metapost/featpost/example/standard/halfcirclesfear.mp b/Master/texmf-dist/doc/metapost/featpost/example/standard/halfcirclesfear.mp new file mode 100644 index 00000000000..7074987e166 --- /dev/null +++ b/Master/texmf-dist/doc/metapost/featpost/example/standard/halfcirclesfear.mp @@ -0,0 +1,43 @@ +% halfcirclesfear +% L. Nobre G. +% 2001 + +%input featpost3Dplus2D; + +% input la3Dmacros; + +verbatimtex +\documentclass{article} +\usepackage{beton} +\usepackage{concmath} +\usepackage{ccfonts} +\begin{document} +etex + +beginfig(1); + color centre, axpin, axpon, axpun; + numeric size, radii; + f := (4,1.5,3.5); + size = 0.5; + radii = 1; + centre = (0,0,0); + axpin = (0,0,1); + axpon = (0,1,0); + axpun = (1,0,0); + cartaxes( 1.2,1.2,0.8 ); + pickup pencircle scaled 2; + draw rigorouscircle( centre, axpin, radii ) withcolor red; + draw goodcirclepath( centre, axpin, radii ); + draw spatialhalfcircle( centre, axpon, size, true ); + draw spatialhalfcircle( centre, axpon, size, false ) dashed evenly; + draw spatialhalfcircle( centre, axpun, size, true ); + draw spatialhalfcircle( centre, axpun, size, false ) dashed evenly; + draw rigorousfearpath( centre, size ); +endfig; + + +verbatimtex +\end{document} +etex + +end; diff --git a/Master/texmf-dist/doc/metapost/featpost/example/standard/hexagonaltrimesh.mp b/Master/texmf-dist/doc/metapost/featpost/example/standard/hexagonaltrimesh.mp new file mode 100644 index 00000000000..316ca97482e --- /dev/null +++ b/Master/texmf-dist/doc/metapost/featpost/example/standard/hexagonaltrimesh.mp @@ -0,0 +1,25 @@ +% hexagonaltrimesh.mp +% L. Nobre G. +% 2003 + +%input featpost3Dplus2D; + +def zsurface( expr xc, yc ) = + cosd(xc*57)*cosd(yc*57)+4*mexp(-(xc**2+yc**2)*6.4) +enddef; + +f := 7*(4,1,5); +Spread := 35; +LightSource := 10*(4,-3,4); +SubColor := 0.4background; + +beginfig(1); + numeric np, ssize; + path chair; + np = 40; + ssize = 15; + + hexagonaltrimesh( true,np,ssize,zsurface); +endfig; + +end; diff --git a/Master/texmf-dist/doc/metapost/featpost/example/standard/hiddensurface.mp b/Master/texmf-dist/doc/metapost/featpost/example/standard/hiddensurface.mp new file mode 100644 index 00000000000..b0d64e95612 --- /dev/null +++ b/Master/texmf-dist/doc/metapost/featpost/example/standard/hiddensurface.mp @@ -0,0 +1,153 @@ +% hiddensurface.mp +% L. Nobre G. +% 2004 + +%input featpost3Dplus2D; + +% The big nice trick to draw 3D hidden line surfaces + +verbatimtex +\documentclass{article} +\usepackage{beton} +\usepackage{concmath} +\usepackage{ccfonts} +\begin{document} +etex + +numeric toplevel; +toplevel = 2.2; + +def zsurface( expr xc, yc ) = + begingroup + numeric zout; + zout = yc**4 -xc*yc*(1-yc**2); + if zout > toplevel: + zout := toplevel; + fi; + ( zout ) + endgroup +enddef; + +def zline( expr yc ) = + begingroup + numeric zout; + zout = 4*yc*yc*yc/(1-3*yc*yc); %% I don't get it... + if zout > 3: + zout := 3; + fi; + ( zout ) + endgroup +enddef; + +f := (6,1,2); +Spread := 67; + +beginfig(1); + numeric i, j, nx, ny, lowx, higx, lowy, higy, refz; + numeric posx, posy, posz, facz, lowl, higl, pensize; + color gridx[], pos, begcont, endcont, begconf, endconf; + path facex, descontjump; + pensize = 3pt; + nx = 20; + ny = 50; + lowy = -2.5; + higy = 1; + lowx = 1.5; + higx = 3; + refz = -2.5; + facz = 5; + for i=0 upto nx: + for j=0 upto ny: + posx := lowx + i*( higx - lowx )/nx; + posy := lowy + j*( higy - lowy )/ny; + posz := zsurface( posx, posy ); + posx := bracket(lowx,posx,higx); + posy := bracket(lowy,posy,higy); + posz := posz/facz; + gridx[j] := ( posx, posy, posz ); + endfor; + pos := ( posx, -1, refz/facz ); + facex := rp( pos )--rp( gridx0 ); + for j=1 upto ny: + facex := facex--rp( gridx[j] ); + endfor; + facex:=facex--rp((posx,1,refz/facz))--cycle; + unfill facex; + draw facex; + endfor; + lowl = -2.0; +% higl = -0.7; + higl = -1.0; + for j=0 upto ny: + posy := lowl + j*( higl - lowl )/ny; + posx := zline( posy ); + posz := zsurface( posx, posy ); + posx := bracket(lowx,posx,higx); + posy := bracket(lowy,posy,higy); + posz := posz/facz; + gridx[j] := ( posx, posy, posz ); + endfor; + facex := rp( gridx0 ); + for j=1 upto ny: + facex := facex--rp( gridx[j] ); + endfor; + draw facex withcolor red; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + lowl := -1.4; + higl := -0.8; + for j=0 upto ny: + posy := lowl + j*( higl - lowl )/ny; + posx := -2*posy; + posz := zsurface( posx, posy ); + posx := bracket(lowx,posx,higx); + posy := bracket(lowy,posy,higy); + posz := posz/facz; + gridx[j] := ( posx, posy, posz ); + endfor; + facex := rp( gridx0 ); + for j=1 upto ny: + facex := facex--rp( gridx[j] ); + endfor; + draw facex withcolor green; + lowl := -1.0; + higl := 0.5; + for j=0 upto 1: + posy := lowl + j*( higl - lowl ); + posx := 2; + posz := zsurface( posx, posy ); + posx := bracket(lowx,posx,higx); + posy := bracket(lowy,posy,higy); + posz := posz/facz; + gridx[j] := ( posx, posy, posz ); + endfor; +% facex := rp( gridx0 ); +% for j=1 upto ny: +% facex := facex--rp( gridx[j] ); +% endfor; +% draw facex withcolor blue; + pickup pencircle scaled pensize; + draw rp(gridx0) withcolor red; + draw rp(gridx1) withcolor red; + posx := 2.83; + posy := -1.933; + posz := zsurface( posx, posy ); + posx := bracket(lowx,posx,higx); + posy := bracket(lowy,posy,higy); + posz := posz/facz; + draw rp((posx,posy,posz)) withcolor blue; + posy := 0.517; + posy := bracket(lowy,posy,higy); + draw rp((posx,posy,posz)) withcolor blue; + begconf = (1.15,-1,refz/facz); + endconf = (1.15, 1,refz/facz); + begcont = ( 1,-1,1.15*toplevel/facz); + endcont = (-1,-1,1.15*toplevel/facz); + pickup pencircle scaled 0.5pensize; + drawarrow rp(begconf)--rp(endconf); + drawarrow rp(begcont)--rp(endcont); + label.ulft( btex $\Lambda$ etex, rp(0.5*(begcont+endcont)) ); + label.bot( btex $\Upsilon$ etex, rp(0.5*(begconf+endconf)) ); +endfig; + +verbatimtex \end{document} etex + +end; diff --git a/Master/texmf-dist/doc/metapost/featpost/example/standard/hiddensurfaces.mp b/Master/texmf-dist/doc/metapost/featpost/example/standard/hiddensurfaces.mp new file mode 100644 index 00000000000..df698f038bf --- /dev/null +++ b/Master/texmf-dist/doc/metapost/featpost/example/standard/hiddensurfaces.mp @@ -0,0 +1,65 @@ +% hiddensurfaces.mp +% L. Nobre G. +% 2003 + +%input featpost3Dplus2D; + +def zsurface( expr xc, yc ) = + begingroup + numeric zout; + zout = yc**4-xc*yc*(1-yc**2); + if zout > 1.5: + zout := 1.5; + fi; + ( zout ) + endgroup +enddef; + +f := (2.5,2,1.25); +Spread := 127; + +beginfig(1); + numeric i, j, nx, ny, lowx, higx, lowy, higy, refz + posx, posy, posz, facz, counter; + color poi[][]; + nx = 30; + ny = 30; + lowy = -2.5; + higy = 1; + lowx = 1.5; + higx = 3; + refz = 0; + facz = 5; + counter = 0; + for i=0 upto nx: + for j=0 upto ny: + posx := lowx + i*( higx - lowx )/nx; + posy := lowy + j*( higy - lowy )/ny; + posz := zsurface( posx, posy ); + posx := bracket(lowx,posx,higx); + posy := bracket(lowy,posy,higy); + posz := posz/facz + refz; + poi[i][j] := ( posx, posy, posz ); + endfor; + endfor; + for i=1 upto nx: + for j=1 upto ny: + counter := incr(counter); + npf[counter] := 3; + F[counter]p1 := poi[i-1][j-1]; + F[counter]p2 := poi[i][j-1]; + F[counter]p3 := poi[i][j]; + counter := incr(counter); + npf[counter] := 3; + F[counter]p1 := poi[i-1][j-1]; + F[counter]p2 := poi[i-1][j]; + F[counter]p3 := poi[i][j]; + endfor; + endfor; + NF := counter; + drawarrow rp((-1,-1,refz))--rp((1,-1,refz)); + drawarrow rp((-1,-1,refz))--rp((-1,1,refz)); + fill_faces( withcolor blue ); +endfig; + +end; diff --git a/Master/texmf-dist/doc/metapost/featpost/example/standard/inductionbob.mp b/Master/texmf-dist/doc/metapost/featpost/example/standard/inductionbob.mp new file mode 100644 index 00000000000..19b47c44105 --- /dev/null +++ b/Master/texmf-dist/doc/metapost/featpost/example/standard/inductionbob.mp @@ -0,0 +1,116 @@ +% inductionbob.mp +% L. Nobre G. +% 2003 + +%input featpost3Dplus2D; + +verbatimtex +\documentclass{article} +\usepackage{beton,concmath,ccfonts} +\begin{document} +etex + +numeric altura; +altura = 0.35; + +f := (4,6,1); +Spread := 200; +LightSource := f+blue; +ShadowOn := false; + +def spirala( expr TheVal ) = + begingroup + numeric par[], cred, cgre, cblu, param[]; + par1 = 4.5; + par2 = 0.3; + par3 = 0.2*par1; + param1 = par1*360*TheVal; + cred = -par2*sind( param1 ); + cgre = ( TheVal - 1.0 )*par3; + cblu = par2*cosd( param1 ); + ( (cred,cgre,cblu+altura) ) + endgroup +enddef; + +def spiralb( expr TheVal ) = + begingroup + numeric par[], cred, cgre, cblu, param[]; + par1 = 4.0; + par2 = 0.3; + par3 = 0.2*par1; + param1 = par1*360*TheVal; + cred = par2*sind( param1 ); + cgre = TheVal*par3; + cblu = -par2*cosd( param1 ); + ( (cred,cgre,cblu+altura) ) + endgroup +enddef; + +def innerloop( expr TheVal ) = + begingroup + numeric par[], cred, cgre, cblu, param[]; + par1 = 8; + par2 = 0.2; + param1 = par1+(360-2*par1)*TheVal; + cred = par2*cosd( param1 ); + cgre = 0; + cblu = par2*sind( param1 ); + ( (cred,cgre,cblu+altura) ) + endgroup +enddef; + +beginfig(1); + numeric xouterdev, xinnerdev, scalecir, scalelab; + color startp, begp, endp, finisp, ap, bp, cp, dp, ep, fp, gp; + pair startz, begz, endz, finisz, az, bz, cz, dz, ez, fz, gz; + path innerpath, outerpath, primarcir, secondcir; + pen mypen; + scalecir = 3cm; + scalelab = 4; + xouterdev = 1.4; + xinnerdev = 1.0; + mypen = pencircle scaled 4pt; + startp = spirala( 0 ); + finisp = spiralb( 1 ); + begp = innerloop( 0 ); + endp = innerloop( 1 ); + ap = ( xouterdev, Y(startp), Z(startp) ); + bp = ( xouterdev, Y(startp), Z(finisp) ); + dp = ( xouterdev, Y(finisp), Z(finisp) ); + cp = 0.5[bp,dp]; + ep = ( xinnerdev, Y(begp), Z(begp) ); + fp = ( xinnerdev, Y(endp), Z(endp) ); + gp = 0.5[ep,fp]; + startz = rp( startp ); + finisz = rp( finisp ); + begz = rp( begp ); + endz = rp( endp ); + az = rp( ap ); + bz = rp( bp ); + cz = rp( cp ); + dz = rp( dp ); + ez = rp( ep ); + fz = rp( fp ); + gz = rp( gp ); + emptyline( false, 1, black, 0.7background, 700, 0.8, 2, spirala ); + outerpath = startz--az--bz--dz--finisz; + primarcir = fullcircle scaled scalecir shifted cz; + emptyline( false, 0.8, black, 0.4*(red+background), 150, 0.8, 2, innerloop ); + innerpath = begz--ez--fz--endz; + secondcir = fullcircle scaled scalecir shifted gz; + draw innerpath withpen mypen; + unfill secondcir; + draw secondcir withpen mypen; + label( btex $V_S$ etex scaled scalelab, gz); + emptyline( true, 1, black, 0.7background, 700, 0.8, 2, spiralb ); + draw outerpath withpen mypen; + unfill primarcir; + draw primarcir withpen mypen; + label( btex $V_P$ etex scaled scalelab, cz ); +endfig; + +verbatimtex +\end{document} +etex + +end; diff --git a/Master/texmf-dist/doc/metapost/featpost/example/standard/joinedemptylines.mp b/Master/texmf-dist/doc/metapost/featpost/example/standard/joinedemptylines.mp new file mode 100644 index 00000000000..a4a629d8afb --- /dev/null +++ b/Master/texmf-dist/doc/metapost/featpost/example/standard/joinedemptylines.mp @@ -0,0 +1,47 @@ +% joinedemptylines.mp +% L. Nobre G. +% 2001 + +%input featpost3Dplus2D; + +numeric altura; +altura = 1; + +f := (2,3,1.8+altura); +Spread := 125; +LightSource := 0.7*(4,-1,4); +ShadowOn := true; + +def helixone( expr TheVal ) = + begingroup + numeric par[], cred, cblu, param; + par1 = 3*360; + par2 = 0.3; + par3 = 0.8; + param = par1*TheVal; + cred = par2*cosd( param ); + cblu = par2*sind( param ); + ( (cred,cblu,par3*(-1+TheVal)+altura) ) + endgroup +enddef; + +def helixtwo( expr TheVal ) = + begingroup + numeric par[], cred, cblu, param; + par1 = 3*360; + par2 = 0.1; + par3 = 0.8/3; + param = par1*TheVal; + cred = par2*cosd( param ); + cblu = par2*sind( param ); + ( (cred+0.2,cblu,par3*TheVal+altura) ) + endgroup +enddef; + +beginfig(1); + emptyline( false, 0.91, black, 0.5background, 360, 0.88, 2, helixone ); + emptyline( true, 0.91, black, 0.5background, 120, 0.88, 2, helixtwo ); + drawarrow rp((0.5,0,altura))--rp((0.32,0,altura)); +endfig; + +end; diff --git a/Master/texmf-dist/doc/metapost/featpost/example/standard/kindofcube.mp b/Master/texmf-dist/doc/metapost/featpost/example/standard/kindofcube.mp new file mode 100644 index 00000000000..c2e6a99f5a9 --- /dev/null +++ b/Master/texmf-dist/doc/metapost/featpost/example/standard/kindofcube.mp @@ -0,0 +1,81 @@ +% kindofcube.mp +% L. Nobre G. +% 2003 + +%input featpost3Dplus2D; + +verbatimtex +\documentclass{article} +\usepackage{beton,concmath,ccfonts} +\begin{document} +etex + +Spread := 30; +f := 5.4*(1.5,0.5,1); + +beginfig(1); + numeric gridstep, sidenumber, i, j, coord, aa, ab, ac; + color pa; + gridstep = 0.9; + sidenumber = 10; + coord = 0.5*sidenumber*gridstep; + for i=0 upto sidenumber: + for j=0 upto sidenumber: + pa := (-coord+j*gridstep,-coord+i*gridstep,0); + aa := uniformdeviate(360); + ab := uniformdeviate(180); + ac := uniformdeviate(90); + kindofcube( false, false, pa, aa, ab, ac, 0.4, 0.4, 0.9 ); + endfor; + endfor; +endfig; + +beginfig(2); + f := (4,1.0,0.5); + Spread := 120; + numeric lena, lenb, lenc, aa, ab, ac, angray, micr; + pair zeror; + color axa, axb, axc, returnedcorner, dummyc, auxx, auxy; + lena=0.3; + lenb=0.6; + lenc=0.9; + aa=130; + ab=20; + ac=70; + angray=0.7; + micr=0.01; + zeror=rp(black); + cartaxes(1,1,1); + axa = ( cosd(aa), sind(aa), 0 ); + axb = axa*cosd(ab)+blue*sind(ab); + auxx= ( cosd(aa+90), sind(aa+90), 0); + auxy = ncrossprod( axb, auxx ); + axc = auxx*cosd(ac)+auxy*sind(ac); + draw zeror--rp(axa); + draw zeror--rp(axb); + draw zeror--rp(-axa); + draw zeror--rp(axc); + draw zeror--rp(auxx); + label.rt( btex $a$ etex, rp(axa) ); + label.rt( btex $b$ etex, rp(axb) ); + label.lft( btex $c$ etex, rp(auxx) ); + label.lft( btex $d$ etex, rp(axc) ); + label.bot( btex $o$ etex, zeror ); + angline( axa,red,black,angray,btex $\alpha_1$ etex,bot ); + angline( axb,axa,black,angray,btex $\alpha_2$ etex,rt ); + angline( axc,auxx,black,angray,btex $\alpha_3$ etex,lft ); + squareangline( -axa,auxx,black,0.2); + kindofcube( true, true, black, aa, ab, ac, lena, lenb, lenc ); + draw zeror--rp(blue) dashed evenly; + dotlabel.bot( btex $l_1$ etex, rp(lena*axb) ); + dotlabel.rt( btex $l_2$ etex, rp(lenb*axc) ); + dotlabel.top( btex $l_3$ etex, rp(lenc*ncrossprod(axb,axc) ) ); +endfig; + +verbatimtex +\end{document} +etex + +end. + + diff --git a/Master/texmf-dist/doc/metapost/featpost/example/standard/labelconstruct.mp b/Master/texmf-dist/doc/metapost/featpost/example/standard/labelconstruct.mp new file mode 100644 index 00000000000..45213320942 --- /dev/null +++ b/Master/texmf-dist/doc/metapost/featpost/example/standard/labelconstruct.mp @@ -0,0 +1,30 @@ +% labelconstruct.mp +% L. Nobre G. +% 2004 + +%input featpost3Dplus2D; + +% bash: export TEX=latex +% tcsh: setenv TEX latex + +f := 1.1*(2,1,0.5); +ParallelProj := true; + +verbatimtex +\documentclass{article} +\usepackage{beton,concmath,ccfonts} +\begin{document} +etex + +beginfig(1); + kindofcube(false,true,(0,-0.5,0),90,0,0,1.2,0.1,0.4); + kindofcube(false,true,(0,0,0),0,0,0,0.5,0.1,0.8); + labelinspace(false,(0.45,0.1,0.65),(-0.4,0,0),(0,0,0.1), + btex \framebox{\textsc{Label}} etex); +endfig; + +verbatimtex +\end{document} +etex + +end; diff --git a/Master/texmf-dist/doc/metapost/featpost/example/standard/labelinspace.mp b/Master/texmf-dist/doc/metapost/featpost/example/standard/labelinspace.mp new file mode 100644 index 00000000000..da51f50633f --- /dev/null +++ b/Master/texmf-dist/doc/metapost/featpost/example/standard/labelinspace.mp @@ -0,0 +1,33 @@ +% labelinspace.mp +% L. Nobre G. +% 2003 + +%input featpost3Dplus2D; + +% bash: export TEX=latex +% tcsh: setenv TEX latex + +f := (2,3,0.5); +ParallelProj := true; + +verbatimtex +\documentclass{article} +\usepackage{beton,concmath,ccfonts} +\begin{document} +etex + +beginfig(1); + cartaxes( 1, 1.3, 1 ); + labelinspace( false, black, 0.8*blue, 0.7*red, + btex \framebox{$\frac{\sqrt{5}-1}{2}$} etex); + labelinspace( false, 0.8*blue, -0.8*blue, 0.6*green, + btex \framebox{$\phi$} etex); + labelinspace( true, 0.7*red, 0.6*green, -0.7*red, + btex \framebox{$\frac{1+\sqrt{5}}{2}$} etex); +endfig; + +verbatimtex +\end{document} +etex + +end; diff --git a/Master/texmf-dist/doc/metapost/featpost/example/standard/magneticflux.mp b/Master/texmf-dist/doc/metapost/featpost/example/standard/magneticflux.mp new file mode 100644 index 00000000000..c5f62220794 --- /dev/null +++ b/Master/texmf-dist/doc/metapost/featpost/example/standard/magneticflux.mp @@ -0,0 +1,105 @@ +% magneticflux.mp +% L. Nobre G. +% IYP (2005) + +%input featpost3Dplus2D; + +verbatimtex +\documentclass{article} +\usepackage{palatino,mathpazo} +\begin{document} +etex + +TDAtiplen := 0.1; % tdarrow +TDAhalftipbase := 0.04; % Three-Dimensional +TDAhalfthick := 0.02; % Arrow +ForePen := pencircle scaled 10pt; +BackPen := pencircle scaled 6pt; + +numeric ranga; +ranga = 30+uniformdeviate(120); + +def ellip( expr TheVal ) = + ( (cosd(360*TheVal),sind(360*TheVal)/sind(ranga),0) ) +enddef; + +beginfig(2); + f := ( 4, 1, 2 ); + Spread := 90; + pen blackpen, whitepen; + numeric majoraxe, i, j, gridstepn, gridstep, gridstart, halen, rang; + numeric ellfocus, totdist, marginl; + path espira, partes, covere; + color avec, midvec; + halen = 1; + marginl = 0.14; + rang = 45+30*floor(uniformdeviate(3.9)); + show rang; + avec = (0,cosd(rang),sind(rang))*halen; + blackpen = pencircle scaled 5pt; + whitepen = pencircle scaled 3pt; + majoraxe = 1.2 + uniformdeviate(0.8); + ellfocus = majoraxe +-+ 1; + gridstepn= 15; + gridstep = 2*majoraxe/(gridstepn-1); + gridstart= 0.5*gridstepn*gridstep; + espira = ellipticpath( black, -red, -green*majoraxe ); + draw espira withpen blackpen; + undraw espira withpen whitepen; + for j=-1 step gridstep until 1: + for i=-gridstart step gridstep until gridstart: + midvec := (j,i,0); + totdist := conorm(midvec-(0,-ellfocus,0))+conorm(midvec-(0,ellfocus,0)); + if 2*majoraxe-marginl > totdist: + tdarrow( midvec, midvec+avec ); +% draw rp(midvec) withpen whitepen; + fi; + endfor; + endfor; + partes = subpath (10.3,25.6) of espira; + covere = subpath (10,26) of espira; + draw partes withpen blackpen; + undraw covere withpen whitepen; +endfig; + +beginfig(1); + f := ( 4, 1.9, 1.22 ); + Spread := 90; + numeric nodc, lsc; + nodc = 10; + lsc = 2.4; + closedline( true, 200, 0.5, 1.75 )( ellip ); + numeric i, j, circlesize, polar, phi; + color currpos, ini, fin, avec; + string comm; + avec = (0,cosd(ranga),sind(ranga)); + circlesize = 1.86/nodc; + for i=0.93 step -circlesize until 0.4*circlesize: + polar := floor(6.28318*i/circlesize); + for j=1 upto polar: + phi := 360*j/polar; + currpos := i*(cosd(phi),sind(phi)/sind(ranga),0); + comm:="tdarrow(" + & cstr( currpos ) + & "," + & cstr( currpos + avec ) + & ");"; + getready( comm, currpos ); + endfor; + endfor; + doitnow; + pickup pencircle scaled 2pt; + drawarrow rp((0,1.07/sind(ranga),0))--rp((0,2.47,0)); + drawarrow rp((1.07,0,0))--rp((1.67,0,0)); + angline((0,2.37,0),(0,0.93/sind(ranga),0)+avec,(0,0.93/sind(ranga),0), + 0.3, btex $\alpha$ etex scaled lsc, urt); + label.bot( btex $x$ etex scaled lsc, rp((1.67,0,0)) ); + label.bot( btex $y$ etex scaled lsc, rp((0,2.47,0)) ); +endfig; + + +verbatimtex +\end{document} +etex + +end. diff --git a/Master/texmf-dist/doc/metapost/featpost/example/standard/nembiaxi.mp b/Master/texmf-dist/doc/metapost/featpost/example/standard/nembiaxi.mp new file mode 100644 index 00000000000..99bfbc7b87b --- /dev/null +++ b/Master/texmf-dist/doc/metapost/featpost/example/standard/nembiaxi.mp @@ -0,0 +1,64 @@ +% nembiaxi.mp +% L. Nobre G. +% 2002 + +%input featpost3Dplus2D; + + + +beginfig(1); + f := 1.3*(4,5,3); + Spread := 70; + + numeric hstep, hmax, hsdev, basestep, basemax, basesdev; + numeric i, j, k, angsdev, cylength, cyradius, basen, hn; + numeric vcx, vcy, vcz, hcurr, xcurr, ycurr, hbase, aone; + numeric atwo, zcurr, counter; + color lenvec, currpos, xnoise, tmpcol; + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Nb + cylength := 0.45; + cyradius := 0.1; + basen := 5; + hn := 3; + basestep := cylength*1.65; + hstep := cylength; + basesdev := basestep*0.1; + hsdev := hstep*0.1; + hbase := -0.8; + angsdev := 12; + + basemax := basen*basestep; + hmax := hn*hstep; + counter := 0; + for i=1 upto basen: + for j=1 upto basen: + hcurr := hbase; + forever: + exitunless hcurr < hmax+hbase; + hcurr := hcurr + hstep; + zcurr := hcurr + hsdev*normaldeviate; + xcurr := i*basestep + basesdev*normaldeviate; + ycurr := j*basestep + basesdev*normaldeviate; + aone := uniformdeviate( 10 )-5; + atwo := angsdev*normaldeviate; + vcz := cosd( atwo ); + vcy := sind( atwo )*sind( aone ); + vcx := sind( atwo )*cosd( aone ); + currpos := ( xcurr, ycurr, zcurr ); + xnoise := ( sind( angsdev*normaldeviate ), 0, 0 ); + xnoise := green + xnoise; + tmpcol := ncrossprod( ( vcx, vcy, vcz ), xnoise ); + lenvec := cylength*tmpcol; +% rigorousdisc( 0, true, currpos-0.5*lenvec, cyradius, lenvec); + counter := incr( counter ); + generateonebiax( counter, aone, atwo, cylength, + 90, 0.35*cylength, currpos ); + endfor; + endfor; + endfor; + NL := counter; + director_invisible( false, 7, true ); +endfig; + +end; diff --git a/Master/texmf-dist/doc/metapost/featpost/example/standard/nemsaddl.mp b/Master/texmf-dist/doc/metapost/featpost/example/standard/nemsaddl.mp new file mode 100644 index 00000000000..ccc7d9852a1 --- /dev/null +++ b/Master/texmf-dist/doc/metapost/featpost/example/standard/nemsaddl.mp @@ -0,0 +1,86 @@ +% nemsaddl.mp and nemsplay.mp and nemtwist.mp and nembends.mp +% L. Nobre G. +% 2002 + +%input featpost3Dplus2D; + + + +beginfig(1); + f := 2*(5,3,4); + Spread := 70; + + numeric hstep, hmax, hsdev, basestep, basemax, basesdev; + numeric i, j, k, angsdev, cylength, cyradius, basen, hn; + numeric vcx, vcy, vcz, hcurr, xcurr, ycurr, hbase, aone; + numeric atwo, zcurr, angstep; + color lenvec, currpos; + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% splay, sddle and twist + angstep := 10; + cylength := 0.6; + cyradius := 0.1; + basen := 3; + hn := 1; + basestep := cyradius*4.2; + hstep := cylength*1.4; + basesdev := cyradius*0.003; + hsdev := hstep*0.005; + hbase := -0.8; + angsdev := 3; +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% bend +% angstep := 15; +% cylength := 0.6; +% cyradius := 0.1; +% basen := 3; +% hn := 1; +% basestep := cylength*1.6; +% hstep := cyradius*3.4; +% basesdev := basestep*0.01; +% hsdev := hstep*0.005; +% hbase := -0.8; +% angsdev := 3; +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + basemax := basen*basestep; + hmax := hn*hstep; + for i=-basen upto basen: + for j=-basen upto basen: + hcurr := hbase; + forever: + exitunless hcurr < hmax+hbase; + hcurr := hcurr + hstep; + zcurr := hcurr + hsdev*normaldeviate; + xcurr := i*basestep + basesdev*normaldeviate; + ycurr := j*basestep + basesdev*normaldeviate; + aone := angle((xcurr,ycurr))+angsdev*normaldeviate; +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% atwo := ( i ++ j )*angstep + angsdev*normaldeviate; +% vcz := cosd( atwo ); +% vcy := sind( atwo )*sind( aone ); % pure-splay +% vcx := sind( atwo )*cosd( aone ); % pure-splay +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% atwo := ( i ++ j )*angstep + angsdev*normaldeviate; +% vcz := cosd( atwo ); +% vcy := sind( atwo )*sind( aone ); % saddle-splay +% vcx := -sind( atwo )*cosd( aone ); % saddle-splay +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + atwo := ( i ++ j )*angstep + angsdev*normaldeviate; + vcz := cosd( atwo ); + vcy := sind( atwo )*sind( aone+90 );% pure-twist + vcx := sind( atwo )*cosd( aone+90 );% pure-twist +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% atwo := j *angstep + angsdev*normaldeviate; +% vcz := sind( atwo ); +% vcy := cosd( atwo ); % pure-bend +% vcx := 0; % pure-bend +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + currpos := ( xcurr, ycurr, zcurr ); + lenvec := cylength*( vcx, vcy, vcz ); + rigorousdisc( 0, true, currpos-0.5*lenvec, cyradius, lenvec); + endfor; + endfor; + endfor; +endfig; + +end; diff --git a/Master/texmf-dist/doc/metapost/featpost/example/standard/nsmetica.mp b/Master/texmf-dist/doc/metapost/featpost/example/standard/nsmetica.mp new file mode 100644 index 00000000000..d13a33e1cc3 --- /dev/null +++ b/Master/texmf-dist/doc/metapost/featpost/example/standard/nsmetica.mp @@ -0,0 +1,60 @@ +% nsmetica.mp +% L. Nobre G. +% 2002 + +%input featpost3Dplus2D; + + + +beginfig(1); + f := 2*(5,3,2); + Spread := 70; + NF := 0; + + numeric hstep, hmax, hsdev, basestep, basemax, basesdev; + numeric i, j, k, angsdev, cylength, cyradius, basen, hn; + numeric vcx, vcy, vcz, hcurr, xcurr, ycurr, hbase, aone; + numeric atwo, zcurr, counter; + color lenvec, currpos; + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Sma + cylength := 0.45; + cyradius := 0.1; + basen := 11; + hn := 3; + basestep := cyradius*2.4; + hstep := cylength*2.1; + basesdev := cyradius*0.3; + hsdev := hstep*0.04; + hbase := -0.8; + angsdev := 7; + + basemax := basen*basestep; + hmax := hn*hstep; + hcurr := hbase; + counter := 0; + for k=1 upto hn: + hcurr := hcurr + hstep; + for i=1 upto basen: + for j=1 upto basen: + zcurr := hcurr + hsdev*normaldeviate; + xcurr := (i-1)*basestep + uniformdeviate( basestep ); + ycurr := (j-1)*basestep + uniformdeviate( basestep ); + aone := uniformdeviate( 360 ); + atwo := angsdev*normaldeviate; + vcz := cosd( atwo ); + vcy := sind( atwo )*sind( aone ); + vcx := sind( atwo )*cosd( aone ); + currpos := ( xcurr, ycurr, zcurr ); + lenvec := cylength*( vcx, vcy, vcz ); + counter := incr( counter ); + generatedirline( counter, aone, 90-atwo, cylength, currpos ); +% rigorousdisc( 0, true, currpos-0.5*lenvec, cyradius, lenvec); + endfor; + endfor; + endfor; + NL := counter; + director_invisible( true, 5, false ); +endfig; + +end; diff --git a/Master/texmf-dist/doc/metapost/featpost/example/standard/parafuso.mp b/Master/texmf-dist/doc/metapost/featpost/example/standard/parafuso.mp new file mode 100644 index 00000000000..74e8cda3e77 --- /dev/null +++ b/Master/texmf-dist/doc/metapost/featpost/example/standard/parafuso.mp @@ -0,0 +1,100 @@ +% parafuso.mp +% L. Nobre G. +% 2005 + +%input featpost3Dplus2D; + +def theline( expr TheVal ) = + begingroup + numeric par[], cred, cgre, cblu, param; + par0 = 0; + par1 = 6*360; + par2 = 0.3; + par3 = 850; + param = par0+TheVal*(par1-par0); + cred = -par2*cosd( param ); + cblu = par2*sind( param ); + cgre = param/par3; + ( (cred,cgre,cblu) ) + endgroup +enddef; + +def loxodrome( expr TheVal ) = + begingroup + numeric cred, cgre, cblu, alpha, theta, ratio, radio; + ratio = 22; + radio = 2; + theta = ratio*180*TheVal; + alpha = 170*TheVal-85; + cred = radio*cosd(theta)*cosd(alpha); + cgre = radio*sind(theta)*cosd(alpha); + cblu = radio*sind(alpha); + ( (cred,cgre,cblu) ) + endgroup +enddef; + +f := (2,4,1.8); +Spread := 77; +ShadowOn := false; + +beginfig(1); + numeric axsize, zaxpos, zaxlen; + color xbeg, xend, ybeg, yend, zbeg, zend; + axsize = 0.85; + zaxpos = 0.55; + zaxlen = 2.1; + pickup pencircle scaled 1.5pt; + xbeg = (axsize,0,0); + xend = (-axsize,0,0); + ybeg = (0,0,-axsize); + yend = (0,0,axsize); + zbeg = (zaxpos,-zaxpos,0); + zend = (zaxpos,zaxlen,0); + drawarrow rp( xbeg )--rp( xend ); + drawarrow rp( ybeg )--rp( yend ); +% defaultfont := "putr8r"; + defaultscale := 1.95; + label.rt( "A", rp( xend ) ); + label.lft( "B", rp( yend ) ); + emptyline( false, 1, black, 0.5background, 1000, 0.82, 2, theline ); + drawarrow rp( zbeg )--rp( zend ); + label.bot( "C", rp( zend ) ); +endfig; + +beginfig(2); + numeric axsize, zaxpos, zaxlen; + color xbeg, xend, ybeg, yend, zbeg, zend; + axsize = 0.85; + zaxpos = 0.55; + zaxlen = 2.1; + pickup pencircle scaled 1.5pt; + xbeg = (axsize,0,0); + xend = (-axsize,0,0); + ybeg = (0,0,-axsize); + yend = (0,0,axsize); + zbeg = (zaxpos,-zaxpos,0); + zend = (zaxpos,zaxlen,0); + drawarrow rp( xbeg )--rp( xend ); + drawarrow rp( ybeg )--rp( yend ); +% defaultfont := "putr8r"; + defaultscale := 0.65; + label.rt( "X", rp( xend ) ); + label.lft( "Y", rp( yend ) ); + closedline( false, 70, 0.5, 0.95, theline ); + drawarrow rp( zbeg )--rp( zend ); + label.bot( "Z", rp( zend ) ); + doitnow; +endfig; + +f := (2,4,2.8); +beginfig(3); + NCL := 0; + Nobjects := 0; + closedline( false, 270, 0.5, 0.85, loxodrome ); + doitnow; +endfig; + +end; + + + diff --git a/Master/texmf-dist/doc/metapost/featpost/example/standard/pathofstraightline.mp b/Master/texmf-dist/doc/metapost/featpost/example/standard/pathofstraightline.mp new file mode 100644 index 00000000000..06711c223f3 --- /dev/null +++ b/Master/texmf-dist/doc/metapost/featpost/example/standard/pathofstraightline.mp @@ -0,0 +1,29 @@ +% pathofstraightline.mp +% L. Nobre G. +% 2003 + +%input featpost3Dplus2D; + +SphericalDistortion := true; +Spread := 100; +f := 0.4*(1.5,0.5,1); + +beginfig(1); + numeric gridstep, sidenumber, i, coord; + color pa, pb, pc, pd; + gridstep = 0.1; + sidenumber = 10; + coord = 0.5*sidenumber*gridstep; + for i=0 upto sidenumber: + pa := (-coord,-coord+i*gridstep,0); + pb := (coord,-coord+i*gridstep,0); + pc := (-coord+i*gridstep,-coord,0); + pd := (-coord+i*gridstep,coord,0); + draw pathofstraightline( pa, pb ); + draw pathofstraightline( pc, pd ); + endfor; +endfig; + +end. + +
\ No newline at end of file diff --git a/Master/texmf-dist/doc/metapost/featpost/example/standard/photoreverse.mp b/Master/texmf-dist/doc/metapost/featpost/example/standard/photoreverse.mp new file mode 100644 index 00000000000..542fd1f3508 --- /dev/null +++ b/Master/texmf-dist/doc/metapost/featpost/example/standard/photoreverse.mp @@ -0,0 +1,242 @@ +% photoreverse.mp +% L. Nobre G. +% 2004 + +%input featpost3Dplus2D; + +% bash: export TEX=latex +% tcsh: setenv TEX latex + +% Converted from PostScript(TM) to MetaPost by pstoedit +% MetaPost backend contributed by Scott Pakin <pakin@uiuc.edu> +% pstoedit is Copyright (C) 1993 - 2003 Wolfgang Glunz <wglunz@pstoedit.net> + +% MetaPost source tuned by PstoeditMpostPreeditor (lex scanner) +% and edited by L. Nobre G. <nobre@lince.cii.fc.ul.pt> + +% Generate structured PostScript +prologues := 1; + +% Display a given string with its *baseline* at a given location +% and with a given rotation angle +vardef showtext(expr origin)(expr angle)(expr string) = + draw string infont defaultfont scaled defaultscale + rotated angle shifted origin; +enddef; + +beginfig(1); + path PreeditedPath[]; + linecap := butt; + linejoin := mitered; + PreeditedPath1 = hide(z1=(267.637,309.195))z1..controls hide(z2=(265.005,308.373))z2 and hide(z3=(262.069,307.351))z3..hide(z4=(261.056,306.906))z4 + ..controls hide(z5=(260.051,306.463))z5 and hide(z6=(257.254,305.728))z6..hide(z7=(254.841,305.272))z7 + ..controls hide(z8=(250.692,304.488))z8 and hide(z9=(204.457,292.788))z9..hide(z10=(182.447,286.951))z10 + ..controls hide(z11=(176.816,285.458))z11 and hide(z12=(168.096,283.167))z12..hide(z13=(163.069,281.859))z13 + ..controls hide(z14=(151.222,278.777))z14 and hide(z15=(141.515,276.205))z15..hide(z16=(134.184,274.205))z16 + ..controls hide(z17=(130.967,273.328))z17 and hide(z18=(125.044,271.795))z18..hide(z19=(121.022,270.8))z19 + ..controls hide(z20=(112.027,268.574))z20 and hide(z21=(85.2788,261.351))z21..hide(z22=(82.2654,260.334))z22 + ..controls hide(z23=(81.0576,259.926))z23 and hide(z24=(74.8799,258.292))z24..hide(z25=(68.5181,256.697))z25 + ..controls hide(z26=(53.8198,253.011))z26 and hide(z27=(54.844,253.994))z27..hide(z28=(56.676,245.334))z28 + ..controls hide(z29=(57.3293,242.246))z29 and hide(z30=(56.3792,241.622))z30..hide(z31=(47.3118,239.178))z31 + ..controls hide(z32=(35.9773,236.124))z32 and hide(z33=(35.1968,235.536))z33..hide(z34=(38.4636,232.521))z34 + ..controls hide(z35=(40.325,230.802))z35 and hide(z36=(46.4053,219.375))z36..hide(z37=(48.1816,214.256))z37 + ..controls hide(z38=(50.9392,206.31))z38 and hide(z39=(75.4822,148.371))z39..hide(z40=(81.2634,136.159))z40 + ..controls hide(z41=(83.6174,131.186))z41 and hide(z42=(85.5562,126.827))z42..hide(z43=(85.5562,126.506))z43 + ..controls hide(z44=(85.5562,124.811))z44 and hide(z45=(87.6768,124.222))z45..hide(z46=(90.6018,125.105))z46 + ..controls hide(z47=(94.1848,126.187))z47 and hide(z48=(94.4399,127.076))z48..hide(z49=(91.2598,127.398))z49 + ..controls hide(z50=(86.803,127.85))z50 and hide(z51=(81.7302,144.202))z51..hide(z52=(66.9248,205.847))z52 + ..controls hide(z53=(57.2651,246.065))z53 and hide(z54=(57.3979,243.248))z54..hide(z55=(65.0811,244.906))z55 + ..controls hide(z56=(67.3086,245.386))z56 and hide(z57=(71.2236,246.393))z57..hide(z58=(73.8562,247.162))z58 + ..controls hide(z59=(76.4578,247.923))z59 and hide(z60=(81.7537,249.412))z60..hide(z61=(85.5562,250.453))z61 + ..controls hide(z62=(89.3586,251.494))z62 and hide(z63=(93.6614,252.702))z63..hide(z64=(95.0623,253.122))z64 + ..controls hide(z65=(96.4841,253.549))z65 and hide(z66=(99.0842,254.15))z66..hide(z67=(100.912,254.475))z67 + ..controls hide(z68=(102.711,254.795))z68 and hide(z69=(106.689,255.777))z69..hide(z70=(109.687,256.642))z70 + ..controls hide(z71=(115.705,258.378))z71 and hide(z72=(115.391,258.29))z72..hide(z73=(129.431,262.147))z73 + ..controls hide(z74=(134.842,263.633))z74 and hide(z75=(139.964,265.139))z75..hide(z76=(140.765,265.48))z76 + ..controls hide(z77=(141.57,265.822))z77 and hide(z78=(145.519,266.957))z78..hide(z79=(149.541,268.003))z79 + ..controls hide(z80=(153.562,269.049))z80 and hide(z81=(158.005,270.236))z81..hide(z82=(159.412,270.641))z82 + ..controls hide(z83=(164.668,272.153))z83 and hide(z84=(171.332,273.79))z84..hide(z85=(180.984,275.938))z85 + ..controls hide(z86=(185.445,276.931))z86 and hide(z87=(190.982,278.282))z87..hide(z88=(193.416,278.972))z88 + ..controls hide(z89=(195.835,279.657))z89 and hide(z90=(203.214,281.625))z90..hide(z91=(209.869,283.359))z91 + ..controls hide(z92=(216.523,285.094))z92 and hide(z93=(224.23,287.209))z93..hide(z94=(227.053,288.076))z94 + ..controls hide(z95=(229.905,288.952))z95 and hide(z96=(233.467,289.972))z96..hide(z97=(235.097,290.379))z97 + ..controls hide(z98=(236.722,290.785))z98 and hide(z99=(239.484,291.549))z99..hide(z100=(241.312,292.098))z100 + ..controls hide(z101=(243.136,292.645))z101 and hide(z102=(247.309,293.664))z102..hide(z103=(250.672,294.384))z103 + ..controls hide(z104=(255.718,295.463))z104 and hide(z105=(258.712,296.887))z105..hide(z106=(255.937,296.887))z106 + ..controls hide(z107=(255.547,296.887))z107 and hide(z108=(255.206,297.399))z108..hide(z109=(255.206,297.984))z109 + ..controls hide(z110=(255.206,298.587))z110 and hide(z111=(255.864,299.081))z111..hide(z112=(256.669,299.081))z112 + ..controls hide(z113=(257.546,299.081))z113 and hide(z114=(258.131,298.613))z114..hide(z115=(258.131,297.911))z115 + ..controls hide(z116=(258.131,296.975))z116 and hide(z117=(258.643,296.837))z117..hide(z118=(260.69,297.219))z118 + ..controls hide(z119=(265.886,298.191))z119 and hide(z120=(265.944,297.765))z120..hide(z121=(265.075,264.932))z121 + ..controls hide(z122=(264.736,252.135))z122 and hide(z123=(264.811,245.7))z123..hide(z124=(265.297,245.7))z124 + ..controls hide(z125=(266.883,245.7))z125 and hide(z126=(267.399,252.793))z126..hide(z127=(267.917,281.75))z127 + ..controls hide(z128=(268.149,294.694))z128 and hide(z129=(268.149,294.694))z129..hide(z130=(265.364,299.227))z130 + ..controls hide(z131=(262.174,304.419))z131 and hide(z132=(261.87,306.04))z132..hide(z133=(263.981,306.6))z133 + ..controls hide(z134=(268.294,307.744))z134 and hide(z135=(275.854,303.103))z135..hide(z136=(280.281,296.595))z136 + ..controls hide(z137=(283.962,291.184))z137 and hide(z138=(284.721,290.268))z138..hide(z139=(289.063,286.003))z139 + ..controls hide(z140=(291.403,283.705))z140 and hide(z141=(292.5,282.033))z141..hide(z142=(292.5,280.763))z142 + ..controls hide(z143=(292.5,279.62))z143 and hide(z144=(293.377,278.063))z144..hide(z145=(294.767,276.741))z145 + ..controls hide(z146=(296.017,275.551))z146 and hide(z147=(298.525,272.208))z147..hide(z148=(300.361,269.283))z148 + ..controls hide(z149=(302.197,266.358))z149 and hide(z150=(303.934,263.981))z150..hide(z151=(304.236,263.981))z151 + ..controls hide(z152=(304.545,263.981))z152 and hide(z153=(305.201,262.957))z153..hide(z154=(305.736,261.641))z154 + ..controls hide(z155=(306.263,260.343))z155 and hide(z156=(308.249,257.363))z156..hide(z157=(310.196,254.95))z157 + ..controls hide(z158=(312.143,252.537))z158 and hide(z159=(313.706,250.225))z159..hide(z160=(313.706,249.758))z160 + ..controls hide(z161=(313.706,249.294))z161 and hide(z162=(314.657,248))z162..hide(z163=(315.827,246.87))z163 + ..controls hide(z164=(316.997,245.74))z164 and hide(z165=(318.128,243.888))z165..hide(z166=(318.35,242.738))z166 + ..controls hide(z167=(318.613,241.372))z167 and hide(z168=(319.52,240.264))z168..hide(z169=(320.982,239.521))z169 + ..controls hide(z170=(322.225,238.889))z170 and hide(z171=(323.698,237.449))z171..hide(z172=(324.309,236.267))z172 + ..controls hide(z173=(324.914,235.097))z173 and hide(z174=(325.652,234.031))z174..hide(z175=(325.955,233.89))z175 + ..controls hide(z176=(326.254,233.75))z176 and hide(z177=(327.334,231.989))z177..hide(z178=(328.331,230.015))z178 + ..controls hide(z179=(329.365,227.967))z179 and hide(z180=(331.096,225.887))z180..hide(z181=(332.316,225.225))z181 + ..controls hide(z182=(333.504,224.581))z182 and hide(z183=(335.098,222.921))z183..hide(z184=(335.863,221.532))z184 + ..controls hide(z185=(336.635,220.13))z185 and hide(z186=(338.471,217.547))z186..hide(z187=(339.995,215.719))z187 + ..controls hide(z188=(341.518,213.89))z188 and hide(z189=(343.403,211.128))z189..hide(z190=(344.236,209.503))z190 + ..controls hide(z191=(345.069,207.878))z191 and hide(z192=(347.734,204.531))z192..hide(z193=(350.232,201.971))z193 + ..controls hide(z194=(352.945,199.192))z194 and hide(z195=(354.903,196.494))z195..hide(z196=(355.168,195.17))z196 + ..controls hide(z197=(355.411,193.957))z197 and hide(z198=(356.943,191.441))z198..hide(z199=(358.596,189.54))z199 + ..controls hide(z200=(361.841,185.811))z200 and hide(z201=(364.128,182.683))z201..hide(z202=(365.551,180.034))z202 + ..controls hide(z203=(366.846,177.621))z203 and hide(z204=(365.23,174.037))z204..hide(z205=(362.846,174.037))z205 + ..controls hide(z206=(361.091,174.037))z206 and hide(z207=(358.527,172.096))z207..hide(z208=(359.273,171.332))z208 + ..controls hide(z209=(359.507,171.093))z209 and hide(z210=(360.799,171.399))z210..hide(z211=(362.115,172.005))z211 + ..controls hide(z212=(368.257,174.837))z212 and hide(z213=(375.377,173.789))z213..hide(z214=(371.109,170.681))z214 + ..controls hide(z215=(370.133,169.97))z215 and hide(z216=(369.915,169.138))z216..hide(z217=(370.268,167.456))z217 + ..controls hide(z218=(370.58,165.969))z218 and hide(z219=(370.316,164.385))z219..hide(z220=(369.501,162.849))z220 + ..controls hide(z221=(368.801,161.533))z221 and hide(z222=(368.321,159.646))z222..hide(z223=(368.404,158.535))z223 + ..controls hide(z224=(368.485,157.438))z224 and hide(z225=(368.095,156.301))z225..hide(z226=(367.526,155.976))z226 + ..controls hide(z227=(366.853,155.591))z227 and hide(z228=(366.377,153.635))z228..hide(z229=(366.137,150.272))z229 + ..controls hide(z230=(365.933,147.42))z230 and hide(z231=(365.431,143.858))z231..hide(z232=(365.003,142.228))z232 + ..controls hide(z233=(364.584,140.633))z233 and hide(z234=(363.853,137.475))z234..hide(z235=(363.395,135.281))z235 + ..controls hide(z236=(362.936,133.087))z236 and hide(z237=(362.088,130.162))z237..hide(z238=(361.53,128.846))z238 + ..controls hide(z239=(360.967,127.519))z239 and hide(z240=(360.506,125.117))z240..hide(z241=(360.506,123.508))z241 + ..controls hide(z242=(360.506,121.899))z242 and hide(z243=(360.111,119.859))z243..hide(z244=(359.629,118.974))z244 + ..controls hide(z245=(359.15,118.097))z245 and hide(z246=(358.834,116.269))z246..hide(z247=(358.934,114.952))z247 + ..controls hide(z248=(359.034,113.636))z248 and hide(z249=(358.602,111.825))z249..hide(z250=(357.983,110.967))z250 + ..controls hide(z251=(357.35,110.088))z251 and hide(z252=(356.85,108.298))z252..hide(z253=(356.85,106.909))z253 + ..controls hide(z254=(356.85,105.519))z254 and hide(z255=(356.382,103.567))z255..hide(z256=(355.79,102.485))z256 + ..controls hide(z257=(355.209,101.424))z257 and hide(z258=(354.401,97.4023))z258..hide(z259=(354.005,93.5999))z259 + ..controls hide(z260=(352.968,83.6548))z260 and hide(z261=(352.529,81.2454))z261..hide(z262=(351.429,79.4868))z262 + ..controls hide(z263=(350.069,77.3098))z263 and hide(z264=(348.615,69.103))z264..hide(z265=(349.163,66.6899))z265 + ..controls hide(z266=(349.581,64.8442))z266 and hide(z267=(349.391,64.6501))z267..hide(z268=(346.247,63.7119))z268 + ..controls hide(z269=(341.811,62.3882))z269 and hide(z270=(340.625,63.3262))z270..hide(z271=(340.914,67.9331))z271 + ..controls hide(z272=(341.263,73.5166))z272 and hide(z273=(339.121,72.5398))z273..hide(z274=(338.347,66.7629))z274 + ..controls hide(z275=(337.642,61.498))z275 and hide(z276=(335.318,60.0554))z276..hide(z277=(334.459,64.3499))z277 + ..controls hide(z278=(334.225,65.5198))z278 and hide(z279=(333.412,67.0278))z279..hide(z280=(332.646,67.7136))z280 + ..controls hide(z281=(331.914,68.3679))z281 and hide(z282=(331.256,69.5457))z282..hide(z283=(331.256,70.2))z283 + ..controls hide(z284=(331.256,70.8691))z284 and hide(z285=(330.353,72.7593))z285..hide(z286=(329.3,74.2949))z286 + ..controls hide(z287=(325.789,79.4136))z287 and hide(z288=(320.082,90.9722))z288..hide(z289=(318.72,95.7205))z289 + ..controls hide(z290=(317.42,100.254))z290 and hide(z291=(314.317,105.3))z291..hide(z292=(312.829,105.3))z292 + ..controls hide(z293=(308.461,105.3))z293 and hide(z294=(294.694,129.504))z294..hide(z295=(294.694,137.182))z295 + ..controls hide(z296=(294.694,141.643))z296 and hide(z297=(291.904,145.559))z297..hide(z298=(290.891,142.521))z298 + ..controls hide(z299=(290.542,141.474))z299 and hide(z300=(287.381,143.252))z300..hide(z301=(287.381,144.495))z301 + ..controls hide(z302=(287.381,144.918))z302 and hide(z303=(286.723,145.888))z303..hide(z304=(285.992,146.542))z304 + ..controls hide(z305=(285.21,147.242))z305 and hide(z306=(284.219,148.809))z306..hide(z307=(283.725,150.125))z307 + ..controls hide(z308=(283.246,151.402))z308 and hide(z309=(282.133,154.294))z309..hide(z310=(281.275,156.487))z310 + ..controls hide(z311=(280.406,158.711))z311 and hide(z312=(278.15,162.52))z312..hide(z313=(276.229,165.006))z313 + ..controls hide(z314=(274.309,167.493))z314 and hide(z315=(272.756,170.223))z315..hide(z316=(272.756,171.112))z316 + ..controls hide(z317=(272.756,172))z317 and hide(z318=(271.953,173.672))z318..hide(z319=(270.965,174.842))z319 + ..controls hide(z320=(269.404,176.689))z320 and hide(z321=(269.276,177.255))z321..hide(z322=(269.969,179.229))z322 + ..controls hide(z323=(270.893,181.862))z323 and hide(z324=(269.866,185.685))z324..hide(z325=(267.573,188.15))z325 + ..controls hide(z326=(266.139,189.692))z326 and hide(z327=(265.841,220.618))z327..hide(z328=(267.229,223.909))z328 + ..controls hide(z329=(267.537,224.64))z329 and hide(z330=(267.426,225.664))z330..hide(z331=(266.979,226.212))z331 + ..controls hide(z332=(266.536,226.755))z332 and hide(z333=(265.939,230.782))z333..hide(z334=(265.65,235.17))z334 + ..controls hide(z335=(264.577,251.473))z335 and hide(z336=(263.579,226.029))z336..hide(z337=(264.07,194.878))z337 + ..controls hide(z338=(264.101,192.884))z338 and hide(z339=(263.729,188.479))z339..hide(z340=(263.25,185.189))z340 + ..controls hide(z341=(262.42,179.485))z341 and hide(z342=(262.452,179.086))z342..hide(z343=(263.835,177.876))z343 + ..controls hide(z344=(264.65,177.164))z344 and hide(z345=(266.512,174.33))z345..hide(z346=(268.04,171.478))z346 + ..controls hide(z347=(269.567,168.626))z347 and hide(z348=(271.381,165.501))z348..hide(z349=(272.135,164.421))z349 + ..controls hide(z350=(272.9,163.324))z350 and hide(z351=(273.487,162.293))z351..hide(z352=(273.487,162.045))z352 + ..controls hide(z353=(273.487,161.804))z353 and hide(z354=(275.511,158.242))z354..hide(z355=(277.976,154.147))z355 + ..controls hide(z356=(282.728,146.25))z356 and hide(z357=(284.237,143.655))z357..hide(z358=(287.245,138.206))z358 + ..controls hide(z359=(289.99,133.234))z359 and hide(z360=(299.06,117.685))z360..hide(z361=(301.023,114.587))z361 + ..controls hide(z362=(301.95,113.124))z362 and hide(z363=(302.737,111.747))z363..hide(z364=(302.737,111.589))z364 + ..controls hide(z365=(302.737,111.183))z365 and hide(z366=(314.213,91.2598))z366..hide(z367=(321.733,78.6091))z367 + ..controls hide(z368=(325.081,72.9785))z368 and hide(z369=(329.837,64.9495))z369..hide(z370=(332.304,60.7668))z370 + ..controls hide(z371=(338.083,50.968))z371 and hide(z372=(337.658,51.1626))z372..hide(z373=(346.101,54.4392))z373 + ..controls hide(z374=(354.37,57.6489))z374 and hide(z375=(353.838,56.9644))z375..hide(z376=(355.457,66.4705))z376 + ..controls hide(z377=(356.179,70.7117))z377 and hide(z378=(357.29,77.0364))z378..hide(z379=(357.91,80.4373))z379 + ..controls hide(z380=(358.537,83.8743))z380 and hide(z381=(359.518,89.2683))z381..hide(z382=(360.104,92.5029))z382 + ..controls hide(z383=(360.686,95.7136))z383 and hide(z384=(362.512,105.446))z384..hide(z385=(364.153,114.075))z385 + ..controls hide(z386=(367.6,132.21))z386 and hide(z387=(370.829,149.516))z387..hide(z388=(373.021,161.606))z388 + ..controls hide(z389=(373.857,166.213))z389 and hide(z390=(374.711,170.875))z390..hide(z391=(374.912,171.917))z391 + ..controls hide(z392=(375.191,173.367))z392 and hide(z393=(374.51,174.842))z393..hide(z394=(372.046,178.132))z394 + ..controls hide(z395=(364.981,187.565))z395 and hide(z396=(360.559,193.664))z396..hide(z397=(357.253,198.534))z397 + ..controls hide(z398=(355.351,201.336))z398 and hide(z399=(351.495,206.797))z399..hide(z400=(348.733,210.6))z400 + ..controls hide(z401=(345.967,214.408))z401 and hide(z402=(340.482,222.007))z402..hide(z403=(336.594,227.419))z403 + ..controls hide(z404=(332.706,232.83))z404 and hide(z405=(327.32,240.264))z405..hide(z406=(324.675,243.872))z406 + ..controls hide(z407=(321.994,247.528))z407 and hide(z408=(318.404,252.436))z408..hide(z409=(316.598,254.914))z409 + ..controls hide(z410=(307.005,268.076))z410 and hide(z411=(302.032,274.894))z411..hide(z412=(295.05,284.456))z412 + ..controls hide(z413=(290.779,290.306))z413 and hide(z414=(285.377,297.845))z414..hide(z415=(283.001,301.275))z415 + ..controls hide(z416=(275.704,311.805))z416 and hide(z417=(275.811,311.75))z417..cycle; + PreeditedPath2 = hide(z418=(254.987,177.913))z418..controls hide(z419=(254.744,177.67))z419 and hide(z420=(253.305,177.229))z420..hide(z421=(251.769,176.926))z421 + ..controls hide(z422=(250.239,176.624))z422 and hide(z423=(246.065,175.346))z423..hide(z424=(242.482,174.084))z424 + ..controls hide(z425=(235.17,171.507))z425 and hide(z426=(231.263,171.562))z426..hide(z427=(228.296,174.285))z427 + ..controls hide(z428=(226.59,175.85))z428 and hide(z429=(225.265,175.207))z429..hide(z430=(225.222,172.794))z430 + ..controls hide(z431=(225.181,170.533))z431 and hide(z432=(221.496,168.977))z432..hide(z433=(216.377,169.058))z433 + ..controls hide(z434=(212.647,169.117))z434 and hide(z435=(210.978,168.823))z435..hide(z436=(209.978,167.931))z436 + ..controls hide(z437=(209.247,167.279))z437 and hide(z438=(208.138,166.725))z438..hide(z439=(207.565,166.725))z439 + ..controls hide(z440=(206.982,166.725))z440 and hide(z441=(205.847,166.11))z441..hide(z442=(205.042,165.359))z442 + ..controls hide(z443=(202.136,162.644))z443 and hide(z444=(198.973,161.521))z444..hide(z445=(194.147,161.49))z445 + ..controls hide(z446=(190.929,161.469))z446 and hide(z447=(188.598,161.014))z447..hide(z448=(186.688,160.034))z448 + ..controls hide(z449=(185.149,159.244))z449 and hide(z450=(181.789,157.939))z450..hide(z451=(179.156,157.109))z451 + ..controls hide(z452=(176.524,156.279))z452 and hide(z453=(173.783,155.284))z453..hide(z454=(173.014,154.879))z454 + ..controls hide(z455=(172.251,154.477))z455 and hide(z456=(169.942,153.653))z456..hide(z457=(167.895,153.051))z457 + ..controls hide(z458=(165.847,152.448))z458 and hide(z459=(163.522,151.492))z459..hide(z460=(162.74,150.93))z460 + ..controls hide(z461=(161.973,150.38))z461 and hide(z462=(160.18,149.906))z462..hide(z463=(158.864,149.906))z463 + ..controls hide(z464=(157.548,149.906))z464 and hide(z465=(155.467,149.416))z465..hide(z466=(154.367,148.846))z466 + ..controls hide(z467=(153.27,148.278))z467 and hide(z468=(152.149,147.955))z468..hide(z469=(151.954,148.151))z469 + ..controls hide(z470=(151.753,148.351))z470 and hide(z471=(150.016,147.838))z471..hide(z472=(148.115,147.018))z472 + ..controls hide(z473=(146.213,146.197))z473 and hide(z474=(143.748,145.515))z474..hide(z475=(142.667,145.51))z475 + ..controls hide(z476=(128.554,145.452))z476 and hide(z477=(126.589,144.869))z477..hide(z478=(124.219,140.034))z478 + ..controls hide(z479=(123.528,138.624))z479 and hide(z480=(122.192,137.646))z480..hide(z481=(119.925,136.89))z481 + ..controls hide(z482=(118.097,136.281))z482 and hide(z483=(115.887,135.452))z483..hide(z484=(114.952,135.025))z484 + ..controls hide(z485=(114.015,134.597))z485 and hide(z486=(112.283,134.322))z486..hide(z487=(111.04,134.404))z487 + ..controls hide(z488=(109.836,134.483))z488 and hide(z489=(107.75,133.91))z489..hide(z490=(106.506,133.16))z490 + ..controls hide(z491=(105.256,132.406))z491 and hide(z492=(103.033,131.403))z492..hide(z493=(101.644,130.967))z493 + ..controls hide(z494=(100.254,130.53))z494 and hide(z495=(98.2485,129.46))z495..hide(z496=(97.2561,128.627))z496 + ..controls hide(z497=(95.428,127.091))z497 and hide(z498=(95.428,127.091))z498..hide(z499=(98.426,127.436))z499 + ..controls hide(z500=(101.129,127.747))z500 and hide(z501=(115.684,132.079))z501..hide(z502=(128.334,136.337))z502 + ..controls hide(z503=(131.163,137.289))z503 and hide(z504=(139.669,139.925))z504..hide(z505=(147.347,142.228))z505 + ..controls hide(z506=(155.025,144.531))z506 and hide(z507=(164.185,147.312))z507..hide(z508=(167.822,148.444))z508 + ..controls hide(z509=(171.478,149.581))z509 and hide(z510=(176.841,151.206))z510..hide(z511=(179.887,152.1))z511 + ..controls hide(z512=(182.911,152.987))z512 and hide(z513=(191.441,155.611))z513..hide(z514=(198.9,157.95))z514 + ..controls hide(z515=(206.359,160.288))z515 and hide(z516=(215.873,163.225))z516..hide(z517=(220.106,164.495))z517 + ..controls hide(z518=(224.347,165.767))z518 and hide(z519=(230.894,167.764))z519..hide(z520=(234.731,168.955))z520 + ..controls hide(z521=(238.534,170.136))z521 and hide(z522=(244.657,171.975))z522..hide(z523=(248.259,173.019))z523 + ..controls hide(z524=(255.864,175.222))z524 and hide(z525=(259.346,176.934))z525..hide(z526=(257.985,177.8))z526 + ..controls hide(z527=(256.888,178.498))z527 and hide(z528=(255.62,178.546))z528..cycle; + dotlabels.rt(371,375,416,44,26); + draw PreeditedPath1 withcolor green; + draw PreeditedPath2 withcolor red; + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% FEATPOST specific %% + PhotoMarks := 5; + PhotoPair1 := z26; PhotoPoint1 := (7.0,-0.6,5.6); + PhotoPair2 := z44; PhotoPoint2 := (7.0,0,0); + PhotoPair3 := z371; PhotoPoint3:= (0,6.4,0); + PhotoPair4 := z375; PhotoPoint4:= (-0.6,6.4,0); + PhotoPair5 := z416; PhotoPoint5:= (-0.6,-0.6,5.6); + color pp[]; + pp1 = (7.0,-0.6,7.0); + pp5 = (-0.6,-0.6,7.0); + pp2 = (8.4,0,0); + pp3 = (8.4,6.4,0); + path pt[]; + f := (15,20,15); %%%%%%%%%%%%%%%%%%%%%%% + viewcentr := black; %% + Spread := 30; %% Parameters + ShiftV := (250,100); %% +% SphericalDistortion := true; %%%%%%%%%%%%%%%%%%%%%%% + + pt1 = rp(PhotoPoint1)--rp(pp1)--rp(pp5)--rp(PhotoPoint5); + pt2 = rp(PhotoPoint2)--rp(pp2)--rp(pp3)--rp(PhotoPoint3); + draw pt1 withpen pencircle scaled 3pt withcolor blue; + draw pt2 withpen pencircle scaled 3pt withcolor blue; + + photoreverse(400,5.5,2.5); %% Changes parameters + + pt3 = rp(PhotoPoint1)--rp(pp1)--rp(pp5)--rp(PhotoPoint5); + pt4 = rp(PhotoPoint2)--rp(pp2)--rp(pp3)--rp(PhotoPoint3); + draw pt3 withpen pencircle scaled 1pt; + draw pt4 withpen pencircle scaled 1pt; +endfig; +end diff --git a/Master/texmf-dist/doc/metapost/featpost/example/standard/polyhedr.mp b/Master/texmf-dist/doc/metapost/featpost/example/standard/polyhedr.mp new file mode 100644 index 00000000000..b0509b75f05 --- /dev/null +++ b/Master/texmf-dist/doc/metapost/featpost/example/standard/polyhedr.mp @@ -0,0 +1,191 @@ +% polyhedr.mp +% L. Nobre G. +% 2004 + +%input featpost3Dplus2D; + +verbatimtex +\documentclass{article} +\usepackage{newcent} +\pagestyle{empty} +\begin{document} +etex + +% This exemplifies hidden line removal. + +f := (2,5,3); + +beginfig(1); + Print_Step := 1; + faceraytrace( 0.4, red ); + lineraytrace( 0.4, black ); +% pickup pencircle scaled 2pt; +% draw_all_test( false ); +% pickup pencircle scaled 1pt; +% sharpraytrace; +endfig; + +f := 2*(2,5,3.5); +Print_step := 10; +Spread := 156; +LightSource := 2.5*(4,-3,17); + +beginfig(2); +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Definition of the 3D-figure + V1 := (1.4,0,0); + V2 := (1,1,0); + V3 := (0,1.4,0); + V4 := (-1,1,0); + V5 := (-1.4,0,0); + V6 := (-1,-1,0); + V7 := (0, -1.4,0); + V8 := (1,-1,0); + V9 := (1.4,0,1); + V10:= (1,1,1); + V11:= (0,1.4,1); + V12:= (-1,1,1); + V13:= (-1.4,0,1); + V14:= (-1,-1,1); + V15:= (0,-1.4,1); + V16:= (1,-1,1); + + V17:= (1.4,0,-1); + V18:= (1,1,-1); + V19:= (0,1.4,-1); + V20:= (-1,1,-1); + V21:= (-1.4,0,-1); + V22:= (-1,-1,-1); + V23:= (0,-1.4,-1); + V24:= (1,-1,-1); + + V25:= (0.7,0,0); + V26:= (0,0.7,0); + V27:= (0.7,-0.7,0.7); + V28:= (0.7,0,0.7); + V29:= (0,0.7,0.7); + V30:= (-0.7,0.7,0.7); + V31:= (0.35,0.35,1.05); + V32:= (0,-0.7,1.4); + V34:= (0,0,1.4); + V33:= (-0.7,0,1.4); + NL := 1; + npl1 := 9; + L1p1 := V17; + L1p2 := V18; + L1p3 := V19; + L1p4 := V20; + L1p5 := V21; + L1p6 := V22; + L1p7 := V23; + L1p8 := V24; + L1p9 := V17; + NF := 8; + npf1 := 4; + F1p1 := V1; + F1p2 := V2; + F1p3 := V10; + F1p4 := V9; + npf2 := 4; + F2p1 := V2; + F2p2 := V3; + F2p3 := V11; + F2p4 := V10; + npf3 := 4; + F3p1 := V3; + F3p2 := V4; + F3p3 := V12; + F3p4 := V11; + npf4 := 4; + F4p1 := V4; + F4p2 := V5; + F4p3 := V13; + F4p4 := V12; + npf5 := 4; + F5p1 := V5; + F5p2 := V6; + F5p3 := V14; + F5p4 := V13; + npf6 := 4; + F6p1 := V6; + F6p2 := V7; + F6p3 := V15; + F6p4 := V14; + npf7 := 4; + F7p1 := V7; + F7p2 := V8; + F7p3 := V16; + F7p4 := V15; + npf8 := 4; + F8p1 := V8; + F8p2 := V1; + F8p3 := V9; + F8p4 := V16; + makeface9(25,26,29,31,28); + makeface10(25,27,28); + makeface11(26,29,30); + makeface12(27,28,31,34,32); + makeface13(31,29,30,33,34); + makeface14(32,33,34); + makeface15(25,26,30,33,32,27); +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% draw_all_test(true); + ShadowOn := true; + fill_faces(); + draw_invisible( true, true, TableC3, TableC0 ); +% lineraytrace(0.3, black); +% faceraytrace(0.4, green); % This my take very long. +% sharpraytrace; + +endfig; + +f := 2*(-2,-0.5,2.5); +Spread := 56; +LightSource := 1.5*(-4,5,2.7); + +beginfig(3); + numeric i, aux; + pair anglepar; + V1 := ( 0.7, 0, 0 ); + V2 := ( 0, 0.7, 0 ); + V3 := ( 0.7,-0.7, 0.7 ); + V4 := ( 0.7, 0, 0.7 ); + V5 := ( 0, 0.7, 0.7 ); + V6 := (-0.7, 0.7, 0.7 ); + V7 := ( 0.35,0.35,1.05); + V8 := ( 0, -0.7, 1.4 ); + V9 := ( 0, 0, 1.4 ); + V10:= (-0.7, 0, 1.4 ); + anglepar = getanglepair( (1,1,1) ); + for i=11 upto 20: + V[i]:=eulerrotation( -45, 0, 0, V[i-10] ); + V[i]:=eulerrotation( 0, 90-ypart anglepar, 0, V[i] ); + endfor; + aux = Z( V11 ); + for i=25 upto 34: + V[i]:=( X(V[i-14]),Y(V[i-14]),1.35*(Z(V[i-14])-aux)); + endfor; + makeface1(25,26,29,31,28); + makeface2(25,27,28); + makeface3(26,29,30); + makeface4(32,33,34); + makeface5(25,26,30,34,32,27); + makeface6(27,28,31,33,32); + makeface7(31,29,30,34,33); + for i=1 upto 7: + FC[i] := 4; + FCD[i]:= true; + endfor; + ShadowOn := true; + setthearena( 10, 5 ); + fill_faces(); + draw_invisible( false, false, TableC4, TableC0 ); +% for i=25 upto 34: +% label.top( decimal(i), rp(V[i]) ); +% endfor; +endfig; + +verbatimtex \end{document} etex + +end; + diff --git a/Master/texmf-dist/doc/metapost/featpost/example/standard/positivecharge.mp b/Master/texmf-dist/doc/metapost/featpost/example/standard/positivecharge.mp new file mode 100644 index 00000000000..b0fccbc11a3 --- /dev/null +++ b/Master/texmf-dist/doc/metapost/featpost/example/standard/positivecharge.mp @@ -0,0 +1,28 @@ +% positivecharge.mp +% L. Nobre G. +% 2004 + +%input featpost3Dplus2D; + +beginfig(1); + numeric size, num, i, j, coos[]; + string comm, bray; + color fro, tip;; + size = 1.5; + num = 70; + bray = "0.05"; + draw rp(black)--rp((size,0,0))--rp((size,size,0))--rp((0,size,0))--cycle; + for i=1 upto num: + for j=1 upto 6: + coos[j] := uniformdeviate(size); + endfor; + fro := (coos1,coos2,coos3); + tip := (coos4,coos5,coos6); + comm := "positivecharge(true," & cstr(fro) & "," & bray & ");"; + getready( comm, fro ); + comm := "positivecharge(false," & cstr(tip) & "," & bray & ");"; + getready( comm, tip ); + endfor; + doitnow; +endfig; +end. diff --git a/Master/texmf-dist/doc/metapost/featpost/example/standard/resistcircuit.mp b/Master/texmf-dist/doc/metapost/featpost/example/standard/resistcircuit.mp new file mode 100644 index 00000000000..e0e679c97e1 --- /dev/null +++ b/Master/texmf-dist/doc/metapost/featpost/example/standard/resistcircuit.mp @@ -0,0 +1,64 @@ +% resistcircuit.mp +% L. Nobre G. +% IYP (2005) + +%input featpost3Dplus2D; + +beginfig(1); + boolean kind[]; + numeric largmolas, lengmolas, numolas, numturns, u, i, fraction, stepx; + numeric totalx, totaly, actuax, actuay, numparal, numserie, stepy; + path refpath; + pair refpoint, startpoint, ini, fin; + pickup pencircle scaled 2pt; + fraction = 0.6; + numolas = 9; + u = 2mm; + largmolas = 2u; + lengmolas = 12u; + numturns = 10; + actuax = 1; + actuay = 1; + numparal = 0; + numserie = 1; + stepy = largmolas/fraction; + stepx = 0.5*(1-fraction)*lengmolas; + draw (left*stepx)--origin; + for i=2 upto numolas: + if uniformdeviate(2) > 1: + kind[i] = false; + numserie := incr( numserie ); + else: + kind[i] = true; + numparal := incr( numparal ); + fi; + endfor; + totalx = numserie*lengmolas; + totaly = numparal*stepy; + draw (right*totalx)--(right*(totalx+stepx)); + startpoint = (up*0.5*totaly); + refpoint = startpoint; + draw (down*0.5*totaly)--refpoint; + refpath = springpath(origin,right*lengmolas,numturns,largmolas,fraction); + draw refpath shifted refpoint; + refpoint := refpoint + right*lengmolas; + for i=2 upto numolas: + if kind[i]: + ini := startpoint+down*stepy*actuay; + fin := ini + 0.5*(actuax-1)*lengmolas*right; + draw ini--fin; + draw refpath shifted fin; + ini := fin + lengmolas*right; + fin := ini + 0.5*(actuax-1)*lengmolas*right; + draw ini--fin--refpoint; + refpoint := refpoint + down*stepy*0.5; + actuay := incr( actuay ); + else: + draw refpath shifted refpoint; + refpoint := refpoint + right*lengmolas; + actuax := incr( actuax ); + fi; + endfor; +endfig; + +end. diff --git a/Master/texmf-dist/doc/metapost/featpost/example/standard/rigorouscircle.mp b/Master/texmf-dist/doc/metapost/featpost/example/standard/rigorouscircle.mp new file mode 100644 index 00000000000..a63ecb92e95 --- /dev/null +++ b/Master/texmf-dist/doc/metapost/featpost/example/standard/rigorouscircle.mp @@ -0,0 +1,49 @@ +% rigorouscircle.mp +% L. Nobre G. +% 2003 + +%input featpost3Dplus2D; + +f := (2,0.2,0.1); + + +beginfig(1); + numeric ind, cray, sray, cnum, ang, aux, auxs; + color sidevec, rayvec, angulmomv, vecaux; + path paux; + pen pendot; + pendot = pencircle scaled 2pt; + sray = 1; + cnum = 8; + ang = 45; + auxs = 0.15; + ray = 3*cosd(ang)*sray/cnum; + sidevec = ( sray*sind(ang), 0, 0 ); + for ind=1 upto cnum: + aux := ind*360/cnum; +% draw rigorouscircle( black, (0,sind(aux),cosd(aux)), sray ) dashed evenly; + rayvec := sray*cosd(ang)*(0,cosd(aux),sind(aux)); + + vecaux := rayvec+sidevec; + drawarrow rp(black)--rp(vecaux+auxs*N(vecaux)); + paux := rigorouscircle( vecaux, vecaux, ray ); + draw paux; + drawoptions( withpen pendot ); + drawarrow (subpath (0,1) of paux); + draw rp(vecaux); + drawoptions(); + + vecaux := rayvec-sidevec; + drawarrow rp(black)--rp(vecaux+auxs*N(vecaux)); + paux := rigorouscircle( vecaux, vecaux, ray ); + draw paux; + drawoptions( withpen pendot ); + drawarrow (subpath (0,1) of paux); + draw rp(vecaux); + drawoptions(); + endfor; +endfig; + +end; + + diff --git a/Master/texmf-dist/doc/metapost/featpost/example/standard/rigorouscone.mp b/Master/texmf-dist/doc/metapost/featpost/example/standard/rigorouscone.mp new file mode 100644 index 00000000000..3c79b95315b --- /dev/null +++ b/Master/texmf-dist/doc/metapost/featpost/example/standard/rigorouscone.mp @@ -0,0 +1,36 @@ +% rigorouscone.mp +% L. Nobre G. +% 2003 + +%input featpost3Dplus2D; + +beginfig(1); + color nalfa, gammacnt, vertex; + path gamma, cone; + numeric altura, grids, radius, aux, i, numc, slope; + + f := (5,4,2); + Spread := 60; + ShiftV := (200,200); + altura = 1; + radius = 0.3; + grids = 1; + numc = 9; + slope = 3; + nalfa = (0,0,1); + + for i=1 upto numc: + aux := (i-0.5*(numc+1))*grids; + gammacnt := (0,aux,0); + vertex := (aux/slope,aux,altura); + gamma := rigorouscircle( gammacnt, nalfa, radius ); + cone := rigorouscone(true, gammacnt, nalfa, radius, vertex ); + unfill cone; + draw gamma dashed evenly; + draw cone; + endfor; +endfig; + +end; + + diff --git a/Master/texmf-dist/doc/metapost/featpost/example/standard/rigorousdiscSD.mp b/Master/texmf-dist/doc/metapost/featpost/example/standard/rigorousdiscSD.mp new file mode 100644 index 00000000000..e9bfa7c2730 --- /dev/null +++ b/Master/texmf-dist/doc/metapost/featpost/example/standard/rigorousdiscSD.mp @@ -0,0 +1,49 @@ +% rigorousdiscSD.mp +% L. Nobre G. +% 2003 + +%input featpost3Dplus2D; + +f := 0.8*(6,3,4); + +SphericalDistortion := true; +%%%%%Spread := 6; + +%SphericalDistortion := false; +%%%%%%Spread := 20; + +beginfig(1); + color nalfa, gammacnt, vertex; + numeric altura, grids, radius, aux, auy, i, j, numc; + + altura = 1; + radius = 0.5; + grids = 1.4; + numc = 7; + + for i=1 upto numc: + aux := (i-0.5*(numc+1))*grids; + for j=1 upto numc: + auy := (j-0.5*(numc+1))*grids; + if normaldeviate > 0: + gammacnt := (aux,auy,0); + vertex := (aux,auy,altura); + else: + if normaldeviate > 0: + gammacnt := (aux-altura/2,auy,radius); + vertex := (aux+altura/2,auy,radius); + else: + gammacnt := (aux,auy-altura/2,radius); + vertex := (aux,auy+altura/2,radius); + fi; + fi; + nalfa := vertex - gammacnt; + rigorousdisc( 0, true, gammacnt, radius, nalfa ); + endfor; + endfor; + produce_auto_scale; +endfig; + +end; + + diff --git a/Master/texmf-dist/doc/metapost/featpost/example/standard/rigorousdiscoptions.mp b/Master/texmf-dist/doc/metapost/featpost/example/standard/rigorousdiscoptions.mp new file mode 100644 index 00000000000..59200177b7d --- /dev/null +++ b/Master/texmf-dist/doc/metapost/featpost/example/standard/rigorousdiscoptions.mp @@ -0,0 +1,31 @@ +% rigorousdiscoptions.mp +% L. Nobre G. +% 2003 + +%input featpost3Dplus2D; + +f := 0.8*(6,3,4); + +beginfig(1); + color axe, cstep, colen; + numeric nstep, sfrac, ouray, inray; + + nstep = 0.65; + sfrac = 0.1; + ouray = 0.7; + inray = 0.5; + + axe = red; + cstep = ( nstep, 0, 0 ); + colen = ( nstep*sfrac, 0, 0 ); + + pickup pencircle scaled 2pt; + rigorousdisc( 0, true, -cstep, ouray, colen ); + rigorousdisc( 0, false, black, ouray, colen ); + rigorousdisc( inray, true, cstep, ouray, colen ); + rigorousdisc( inray, false, 2*cstep, ouray, colen ); +endfig; + +end; + + diff --git a/Master/texmf-dist/doc/metapost/featpost/example/standard/rigorousfearpath.mp b/Master/texmf-dist/doc/metapost/featpost/example/standard/rigorousfearpath.mp new file mode 100644 index 00000000000..c56ab28f61a --- /dev/null +++ b/Master/texmf-dist/doc/metapost/featpost/example/standard/rigorousfearpath.mp @@ -0,0 +1,66 @@ +% rigorousfearpath.mp +% L. Nobre G. +% 2003 + +%input featpost3Dplus2D; + +beginfig(1); + numeric sfr, radfac, ind; + color xv, yv, zv, Ve[]; + path p[]; + f := 2*(5,2,3); + Spread := 50; + csr := 0.47; + clr := 0.57; + xv := (csr,0,0); + yv := (0,csr,0); + zv := (0,0,csr); + Ve1 := (-1,-1,-1); + Ve2 := (-1,1,-1); + Ve3 := (1,-1,-1); + Ve4 := (1,1,-1); + Ve5 := (-1,-1,1); + Ve6 := (-1,1,1); + Ve7 := (1,-1,1); + Ve8 := (1,1,1); + Ve9 := (0,0,0); + for ind=1 upto 8: + p[ind] := rigorousfearpath( Ve[ind], csr ); + endfor; + p9 := rigorousfearpath( Ve9, clr ); + unfill p1; + draw p1; + draw rp(Ve1+yv)--rp(Ve2-yv); + draw rp(Ve1+xv)--rp(Ve3-xv); + unfill p2; + draw p2; + unfill p3; + draw p3; + draw rp(Ve4-yv)--rp(Ve3+yv); + draw rp(Ve4-xv)--rp(Ve2+xv); + unfill p4; + draw p4; + draw rp(Ve1+zv)--rp(Ve5-zv); + draw rp(Ve2+zv)--rp(Ve6-zv); + unfill p9; + draw p9; + draw rp(Ve3+zv)--rp(Ve7-zv); + draw rp(Ve4+zv)--rp(Ve8-zv); + unfill p5; + draw p5; + draw rp(Ve5+yv)--rp(Ve6-yv); + draw rp(Ve5+xv)--rp(Ve7-xv); + unfill p6; + draw p6; + unfill p7; + draw p7; + draw rp(Ve8-yv)--rp(Ve7+yv); + draw rp(Ve8-xv)--rp(Ve6+xv); + unfill p8; + draw p8; +endfig; + +verbatimtex \end{document} etex + +end; + diff --git a/Master/texmf-dist/doc/metapost/featpost/example/standard/rotatnlc.mp b/Master/texmf-dist/doc/metapost/featpost/example/standard/rotatnlc.mp new file mode 100644 index 00000000000..3adafc002cc --- /dev/null +++ b/Master/texmf-dist/doc/metapost/featpost/example/standard/rotatnlc.mp @@ -0,0 +1,49 @@ +% rotatnlc.mp +% L. Nobre G. +% 2003 + +%input featpost3Dplus2D; + +beginfig(1); + + f := 2*(2,1,0.55); + + Spread := 450; + + color gridvec, sizevec, currpos, starpos, bordpos; + numeric i, j, k, counter, theta, phi, thetamin; + numeric thetamax, thetastp, long, radius, polar; + sizevec := (7,42,1); % (number of circles, + % number of vectors in outer circle, + % number of levels ) + gridvec := (0.08,0.23,0.3); + thetamin := 90; + thetamax := 150; + long := 0.08; + thetastp := (thetamax-thetamin)/(X(sizevec)-1); + starpos := ( -X(gridvec)*X(sizevec) , + -X(gridvec)*X(sizevec) , + 0 ); + bordpos := starpos; + counter := 1; + for i=1 upto X(sizevec): + radius := (i-1)*X(gridvec); + polar := i*floor(Y(sizevec)/X(sizevec)); + for j=1 upto polar: + for k=1 upto Z(sizevec): + phi := 360*(j-1)/polar; + theta := thetamin+(i-1)*thetastp; + currpos := radius*(cosd(phi-90),sind(phi-90),0) + +(k-1)*(0,0,Z(gridvec)); + generatedirline( counter, phi, theta, long, currpos ); + counter := incr(counter); + endfor; + endfor; + endfor; + NL := decr(counter); + director_invisible( true, Y(gridvec), false ); +endfig; + +end; + + diff --git a/Master/texmf-dist/doc/metapost/featpost/example/standard/saturn.mp b/Master/texmf-dist/doc/metapost/featpost/example/standard/saturn.mp new file mode 100644 index 00000000000..44be273cc73 --- /dev/null +++ b/Master/texmf-dist/doc/metapost/featpost/example/standard/saturn.mp @@ -0,0 +1,111 @@ +% saturn.mp +% L. Nobre G. +% 2005 + +verbatimtex +\documentclass{article} +\usepackage{newcent} +\pagestyle{empty} +\begin{document} +etex + +f := 2.5*(5,0,-1); +Spread := 100; + +beginfig(1); + path planet, twilight, darkness, ringins, ringout, shadein, shadout; + path fullplanet, fullring, backdark, sunplanet, backring; + path nearringout, nearringins, hdtv, darkplanet; + numeric planetray, ringinsray, ringoutray, cutmargin, athmosray; + color sunposition, axedirection, labelpos, darknesstart, darknessend; + numeric inclinangle, labelray, begintime, endtime, colorfactor; + color planetcolor, ringcolor, toptextcolor, deepskycolor, bottextcolor; + picture storepicture; + planetray = 1; + ringinsray = 1.6; + ringoutray = 2.3; + labelray = 2.1; + cutmargin = 0.01; + inclinangle = 15; + sunposition = (-7,15,4); + colorfactor = 1.3; + bboxmargin := 6mm; + planetcolor = colorfactor*(255,152,55)/255; + ringcolor = colorfactor*(221,57,199)/255; + toptextcolor = colorfactor*(187,164,109)/255; + deepskycolor = colorfactor*(11,18,84)/255; + bottextcolor = colorfactor*(15,103,23)/255; + viewcentr := (0,0.5[planetray,ringinsray],0); + labelpos = (0,labelray,0); + athmosray = planetray+cutmargin; + axedirection = (0,-sind(inclinangle),cosd(inclinangle)); + planet = rigorousfearpath( black, planetray ); + twilight = spatialhalfcircle( black, sunposition, athmosray, true ); + darknesstart = athmosray*ncrossprod( sunposition, axedirection ); + darknessend = darknesstart - labelray*N( sunposition ); + darkness = pathofstraightline( darknesstart, darknessend ); + darknesstart := -darknesstart; + darknessend := darknesstart - labelray*N( sunposition ); + backdark = pathofstraightline( darknesstart, darknessend ); + ringins = goodcirclepath( black, axedirection, ringinsray ); + ringout = goodcirclepath( black, axedirection, ringoutray ); + endtime = xpart ( planet intersectiontimes twilight ); + begintime = xpart ( reverse planet intersectiontimes twilight ); + sunplanet = subpath (-begintime-cutmargin,endtime+cutmargin) of planet; + darkplanet = planet cutbefore twilight cutafter twilight; + fullplanet = buildcycle( sunplanet, reverse twilight ); + fill fullplanet withcolor planetcolor; + endtime := xpart ( ringins intersectiontimes darkness ); + begintime := xpart ( reverse ringins intersectiontimes sunplanet ); + nearringins = subpath (-begintime-cutmargin,endtime+cutmargin) of ringins; + endtime := xpart ( ringout intersectiontimes darkness ); + begintime := xpart ( reverse ringout intersectiontimes sunplanet ); + nearringout = subpath (-begintime-cutmargin,endtime+cutmargin) of ringout; + backring = buildcycle( backdark, ringout, reverse darkplanet, reverse ringins ); + fullring = buildcycle( nearringout, reverse darkness, reverse nearringins, sunplanet ); + fill backring withcolor ringcolor; + fill fullring withcolor ringcolor; + picture thestatement; + thestatement = thelabel( + btex + \begin{tabular}{c} + \textbf{\textsf{{\Large T}$\!$ecnumbria}} \\ + \textsf{\scriptsize a sombra da tecnologia} + \end{tabular} + etex, + origin); + pickup pencircle scaled 1pt; + draw thestatement scaled 2 shifted rp(labelpos) withcolor toptextcolor; + storepicture = currentpicture; + z1 = lrcorner currentpicture; + z2 = urcorner currentpicture; + z3 = ulcorner currentpicture; + z4 = llcorner currentpicture; + z5 = z1+down*bboxmargin; + z6 = z1+right*bboxmargin; + z7 = z2+right*bboxmargin; + z8 = z2+up*bboxmargin; + z9 = z3+up*bboxmargin; + z10= z3+left*bboxmargin; + z11= z4+left*bboxmargin; + z12= z4+down*bboxmargin; + z13= 0.5[z5,z12]+down*3*bboxmargin; + hdtv = z5..z6---z7..z8---z9..z10---z11..z12---cycle; + fill hdtv withcolor deepskycolor; + draw storepicture; + label(btex \texttt{\LARGE http://tecnumbria.com} etex, z13 ); +endfig; + +beginfig(2); + prologues := 1; + pickup pencircle scaled 5pt; + draw fullplanet; + unfill fullring; + draw fullring; + draw backring; +endfig; + +verbatimtex \end{document} etex + +end; + diff --git a/Master/texmf-dist/doc/metapost/featpost/example/standard/sharpraytrace.mp b/Master/texmf-dist/doc/metapost/featpost/example/standard/sharpraytrace.mp new file mode 100644 index 00000000000..120f272f5fe --- /dev/null +++ b/Master/texmf-dist/doc/metapost/featpost/example/standard/sharpraytrace.mp @@ -0,0 +1,102 @@ +% sharpraytrace.mp +% L. Nobre G. +% IYP (2005) + +%input featpost3Dplus2D; + +f := (5,1.5,4.5); +Spread := 60; +PrintStep := 5; + +numeric phi; +phi = 0.5*(1+sqrt(5)); + +V1 := ( 1, phi,0); +V2 := (-1, phi,0); +V3 := (-1,-phi,0); +V4 := ( 1,-phi,0); +V5 := (0, 1, phi); +V6 := (0,-1, phi); +V7 := (0,-1,-phi); +V8 := (0, 1,-phi); +V9 := ( phi,0, 1); +V10:= ( phi,0,-1); +V11:= (-phi,0,-1); +V12:= (-phi,0, 1); +makeface1(1,2,3,4); +makeface2(5,6,7,8); +makeface3(9,10,11,12); + +beginfig(1); + pickup pencircle scaled 2pt; +% numeric asize; +% asize = 0.5*(phi+1); +% cartaxes(asize,asize,asize); + sharpraytrace; +endfig; + +Spread := 120; +f:=3*(1,0.5,0.75); +PrintStep := 0.15; + +numeric a, b, c, d, e; +a = 0.1; +b = 0.3; +c = 1.1; +d = 2.9; +e = 0.5; + +V1 := ( a , b , c); +V2 := ( a-1, b , 0); +V3 := ( a-1-e, b-d,0); +V4 := (-b , a , c); +V5 := (-b , a-1, 0); +V6 := (-b+d,a-1-e, 0); +V7 := (-a , -b , c); +V8 := (-a+1,-b , 0); +V9 := (-a+1+e,-b+d,0); +V10:= ( b , -a , c); +V11:= ( b ,-a+1, 0); +V12:= (b-d,-a+1+e, 0); +makeface1(1,2,3); +makeface2(4,5,6); +makeface3(7,8,9); +makeface4(10,11,12); + +beginfig(2); + pickup pencircle scaled 2pt; + sharpraytrace; +endfig; + +Spread := 120; +f:=(3,5,-0.6); +PrintStep := 5; + +numeric a, b, c, d; +a = 0.2; +b = 0.3; +c = 1.3; +d = 1.4; + +V1 := ( b, 2.5*a, b); +V2 := ( b,-2.5*a, b); +V3 := (-c,-2.5*a,-3*b); +V4 := (-c, 2.5*a,-3*b); +V5 := (-b, 4*a, b); +V6 := (-b,-4*a, b); +V7 := ( c,-4*a,-3*b); +V8 := ( c, 4*a,-3*b); +V9 := ( d, 2*a,-b); +V10:= ( d,-2*a,-b); +V11:= (-d,-2*a,-b); +V12:= (-d, 2*a,-b); +makeface1(1,2,3,4); +makeface2(5,6,7,8); +makeface3(9,10,11,12); + +beginfig(3); + pickup pencircle scaled 2pt; + sharpraytrace; +endfig; + +end; diff --git a/Master/texmf-dist/doc/metapost/featpost/example/standard/simplecar.mp b/Master/texmf-dist/doc/metapost/featpost/example/standard/simplecar.mp new file mode 100644 index 00000000000..48224c4fc11 --- /dev/null +++ b/Master/texmf-dist/doc/metapost/featpost/example/standard/simplecar.mp @@ -0,0 +1,25 @@ +% simplecar.mp +% L. Nobre G. +% 2004 + +%input featpost3Dplus2D; + +%f := 0.25*(2,2.15,15.3); +f := (2,0.15,1.1); +Spread := 320; +HoriZon := -0.2; + +beginfig(1); + color refpos, angcol, lencol, froncol, rearcol; + refpos = black; + angcol = black; + lencol = (0.6, 0.35, 0.28); + froncol = (0.026, 0.12, 0.06); + rearcol = froncol; + setthearena( 12, 1.3 ); + simplecar( refpos, angcol, lencol, froncol, rearcol ); +endfig; + +end; + + diff --git a/Master/texmf-dist/doc/metapost/featpost/example/standard/simplecarparam.mp b/Master/texmf-dist/doc/metapost/featpost/example/standard/simplecarparam.mp new file mode 100644 index 00000000000..c98c6bcdd87 --- /dev/null +++ b/Master/texmf-dist/doc/metapost/featpost/example/standard/simplecarparam.mp @@ -0,0 +1,56 @@ +% simplecarparam.mp +% L. Nobre G. +% IYP (2005) + +%input featpost3Dplus2D; + +verbatimtex +\documentclass{article} +\usepackage{palatino} +\begin{document} +etex + +%f := 0.25*(2,2.15,15.3); +f := (3.5,8,1.1); +Spread := 160; + +beginfig(1); + color refpos, angcol, lencol, froncol, rearcol; + color a, b, c, d; + numeric lx, ly, lz, fx, fy, fz, hei; + lx = 0.8; + ly = 0.35; + lz = 0.18; + fx = 0.1; + fy = 0.2; + fz = 0.132; + hei = 0.05; + refpos = black; + angcol = black; + lencol = (lx, ly, lz); + froncol = (fx, fy, fz); + rearcol = froncol; + a = (0.5*lx,0.5*ly,-0.5*lz); + b = (0.5*lx-fx,0.5*ly,-0.5*lz); + c = (0.5*lx-fx,0.5*ly+fy,-0.5*lz); + d = (0.5*lx-fx-fz,0.5*ly+fy,-0.5*lz); + simplecar( refpos, angcol, lencol, froncol, rearcol ); + drawdblarrow rp(a)--rp(b); + drawdblarrow rp(b)--rp(c); + drawdblarrow rp(c)--rp(d); + drawoptions( withcolor 0.87red ); + labelinspace( true, 0.3[a,b], -red, hei*blue, btex X etex ); + labelinspace( true, 0.3[b,c], green, hei*blue, btex Y etex ); + labelinspace( true, 0.3[c,d], -red, hei*blue, btex Z etex ); +endfig; + +verbatimtex +\end{document} +etex + +end; + + + + + diff --git a/Master/texmf-dist/doc/metapost/featpost/example/standard/spatialhalfsfear.mp b/Master/texmf-dist/doc/metapost/featpost/example/standard/spatialhalfsfear.mp new file mode 100644 index 00000000000..d80e3e3f5a6 --- /dev/null +++ b/Master/texmf-dist/doc/metapost/featpost/example/standard/spatialhalfsfear.mp @@ -0,0 +1,15 @@ +% spatialhalfsfear.mp +% L. Nobre G. +% 2004 + +f := (3,-0.2,3); +beginfig(1); + spatialhalfsfear( black, blue, 1 ); + drawoptions( withpen pencircle scaled 3pt withcolor (blue+green) ); + spatialhalfsfear( black, blue+green, 0.8 ); + drawoptions( withpen pencircle scaled 3pt withcolor red ); + spatialhalfsfear( black, red, 0.6 ); + drawoptions( withpen pencircle scaled 3pt withcolor green ); + spatialhalfsfear( black, green, 0.7 ); +endfig; +end.
\ No newline at end of file diff --git a/Master/texmf-dist/doc/metapost/featpost/example/standard/spltwiben.mp b/Master/texmf-dist/doc/metapost/featpost/example/standard/spltwiben.mp new file mode 100644 index 00000000000..5c85736f7bc --- /dev/null +++ b/Master/texmf-dist/doc/metapost/featpost/example/standard/spltwiben.mp @@ -0,0 +1,81 @@ +% spltwiben.mp +% L. Nobre G. +% 2002 + +%input featpost3Dplus2D; + +verbatimtex +\documentclass{article} +\usepackage{beton} +\usepackage{concmath} +\usepackage{ccfonts} +\begin{document} +etex + +def zsurface( expr xc, yc ) = + ((3*xc-5)*(3*xc+5)/(3*sqrt(3)*yc-5)) +enddef; + +f := (4,-5,3); +Spread := 120; + +beginfig(1); + numeric i, j, nx, ny, lowx, higx, lowy, higy; + numeric posx, posy, posz, facz; + color gridx[], pos, reforig, endbeta, endpsip; + color endfiel, kdiv, krot, kben, akdiv, akrot, akben; + path facex; + facz = 7; + nx = 15; + ny = 50; + lowx = 0; + higx = 0.5*sqrt(3); + reforig = (0,-0.5,0); + endpsip = (0.3,-0.5,0); + endbeta = (0,-0.2,0); + endfiel = (0,-0.5,9/facz); + kdiv = (0,-0.5,8/facz); + krot = (0,-0.5,2/facz); + kben = (0,-0.5,5/facz); + akdiv = (higx,0.5,8/facz); + akrot = (higx,-0.5,2/facz); + akben = (0,0,5/facz); + draw rp((0,0,0))--rp((0,0,5/facz)); + for i=1 upto nx: + posx := lowx + i*( higx - lowx )/nx; + lowy := -sqrt(3)*posx/3; + higy := -lowy; + for j=0 upto ny: + posy := lowy + j*( higy - lowy )/ny; + posz := zsurface( posx, posy )/facz; + gridx[j] := ( posx, posy, posz ); + % show gridx[j]; + endfor; + pos := ( posx, lowy, 0 ); + facex := rp( pos )--rp( gridx0 ); + for j=1 upto ny: + facex := facex--rp( gridx[j] ); + endfor; + facex:=facex--rp((posx,higy,0))--cycle; + unfill facex; + draw facex; + endfor; + drawarrow rp(reforig)--rp(endpsip); + drawarrow rp(reforig)--rp(endbeta); + drawarrow rp(reforig)--rp(endfiel); + label.ulft(btex $\mathcal{X}$ etex, rp(endbeta) ); + label.llft(btex $\mathcal{Z}$ etex, rp(endpsip) ); + label.llft(btex $\mathcal{H}$ etex, rp(endfiel) ); + dotlabel("",rp(reforig+(0,0,Z(gridx[ny])))); + dotlabel("",rp(reforig+(0,0,Z(gridx0)))); + dotlabel("",rp(kben)); + dotlabel.rt(btex $\mathcal{K}_1$ etex,rp(gridx[ny])); + dotlabel.lrt(btex $\mathcal{K}_2$ etex,rp(gridx0)); + dotlabel.lft(btex $\mathcal{K}_3$ etex,rp(akben)); +endfig; + +verbatimtex +\end{document} +etex + +end; diff --git a/Master/texmf-dist/doc/metapost/featpost/example/standard/stageforthree.mp b/Master/texmf-dist/doc/metapost/featpost/example/standard/stageforthree.mp new file mode 100644 index 00000000000..f0d81f26e60 --- /dev/null +++ b/Master/texmf-dist/doc/metapost/featpost/example/standard/stageforthree.mp @@ -0,0 +1,115 @@ +% stageforthree.mp +% L. Nobre G. +% 2003 + +%input featpost3Dplus2D; + +Spread := 35; +f := (13,7,3.5); + +beginfig(1); + numeric i, len, wang, reflen, frac, coordg; + numeric fws, NumLines, inray, outay; + path conepath, cira, cirb, ella, ellb, tuba, tubb, tubc; + color axe, aroc, cubevertex, conecenter, conevertex; + color allellaxe, ellaaxe, ellbaxe, pca, pea, pcb, peb; + frac := 0.5; + len := 0.6; + wang := 60; + axe := (0,cosd(90-wang),sind(90-wang)); + fws := 4; + reflen := 0.2*fws; + outay := 0.45*fws; + inray := 0.7*outay; + coordg := frac*fws; + NumLines := 30; + HoriZon := -0.5*fws; + setthestage( 0.5*NumLines, 2*fws ); + cubevertex = (0.12*fws,-0.5*fws,-0.5*fws); + kindofcube(false,true,cubevertex,180,0,0,0.65*fws,0.2*fws,fws); + aroc := outay*(0,cosd(wang),sind(wang))-0.5*(0,fws,fws); + rigorousdisc( inray, true, aroc, outay, axe*len ); + allellaxe := reflen*( 0.707, 0.707, 0 ); + ellaaxe := reflen*( 0.707, -0.707, 1.0 ); + ellbaxe := reflen*( -0.707, 0.707, 1.0 ); + conecenter = ( coordg, coordg, -0.5*fws ); + pca := ( coordg, -coordg, -0.5*fws ); + pcb := ( -coordg, coordg, -0.5*fws ); + pea := ( coordg, -coordg, 0.9*fws ); + peb := ( -coordg, coordg, 0.9*fws ); + cira := goodcirclepath( pca, blue, reflen ); + cirb := goodcirclepath( pcb, blue, reflen ); + ella := ellipticpath( pea, allellaxe, ellaaxe ); + ellb := ellipticpath( peb, allellaxe, ellbaxe ); + tuba := twocyclestogether( cira, ella ); + tubb := twocyclestogether( cirb, ellb ); + tubc := twocyclestogether( ella, ellb ); + unfill tubb; draw tubb; + unfill tubc; draw tubc; + unfill tuba; draw tuba; + conevertex = conecenter + ( -3.5*reflen, 0, 0.8*fws ); + verygoodcone(false,conecenter,blue,reflen,conevertex); +endfig; + +Spread := 23; +f := (6,13,3); +ShadowOn := true; + +beginfig(2); + numeric reflen, frac, coordg; + numeric fws, NumLines; + path ella, ellb; + color axe, cubevertex; + color allellaxe, ellaaxe, pca, pcb; + frac := 0.5; + wang := 60; + axe := (0,cosd(90-wang),sind(90-wang)); + fws := 4; + reflen := 0.35*fws; + coordg := frac*fws; + NumLines := 52; + HoriZon := -0.5*fws; + setthestage( 0.5*NumLines, 3.6*fws ); + cubevertex = (0.3*fws,-0.5*fws,-0.5*fws); + kindofcube(false,true,cubevertex,180,0,0,0.6*fws,0.2*fws,fws); + allellaxe := reflen*( 0.707, 0.707, 0 ); + ellaaxe := reflen*( 0.5, -0.5, 0 ); + pca := ( coordg, coordg, -0.5*fws ); + pcb := ( -coordg, coordg, -0.5*fws ); + + whatisthis( pca, 0.5*ellaaxe, allellaxe, reflen, 0.3 ); + whatisthis( pcb, ellaaxe*sqrt(2), allellaxe/sqrt(2), 2*reflen, 0.6 ); + +endfig; + +Spread := 23; +f := (13,6,4.5); +ShadowOn := true; +LightSource := 10*(4,-3,6); +beginfig(3); + numeric reflen, frac, coordg; + numeric fws, NumLines; + path ella, ellb; + color axe, cubevertex, conecenter, conevertex; + color allellaxe, ellaaxe, pca, pcb; + frac := 0.5; + wang := 60; + axe := (0,cosd(90-wang),sind(90-wang)); + fws := 4; + reflen := 0.35*fws; + coordg := frac*fws; + NumLines := 45; + HoriZon := -0.5*fws; + setthestage( 0.5*NumLines, 3.3*fws ); + cubevertex = (0.3*fws,-0.5*fws,0); + tropicalglobe( 7, cubevertex, 0.5*fws, axe ); + allellaxe := reflen*( 0.707, 0.707, 0 ); + ellaaxe := reflen*( 0.5, -0.5, 0 ); + pcb := ( -coordg, coordg, 0 ); + rigorousdisc( 0, true, pcb, 0.5*fws, -ellaaxe ); + conecenter = ( coordg, coordg, -0.5*fws ); + conevertex = conecenter + ( 0, 0, 0.9*fws ); + verygoodcone(false,conecenter,blue,reflen,conevertex); +endfig; + +end. diff --git a/Master/texmf-dist/doc/metapost/featpost/example/standard/tangencypoint.mp b/Master/texmf-dist/doc/metapost/featpost/example/standard/tangencypoint.mp new file mode 100644 index 00000000000..7c6d8f79601 --- /dev/null +++ b/Master/texmf-dist/doc/metapost/featpost/example/standard/tangencypoint.mp @@ -0,0 +1,38 @@ +% tangencypoint.mp +% L. Nobre G. +% IYP (2005) + +%input featpost3Dplus2D; + +beginfig(1); + numeric u, i; + u = 5mm; + pen a, b, c; + a = pencircle scaled 3pt; + b = pencircle scaled 5pt; + c = pencircle scaled 1pt; + z1 = (1u,1u); + z2 = (4u,4u); + z3 = (4u,5u); + z4 = (3u,5u); + z5 = (3u,6u); + z6 = (4u,7u); + z7 = (6u,1u); + path cp; + cp = z1{up}..z2..z3..z4..z5..{up}z6; + draw cp withpen c; + for i=1 upto 6: + draw z[i] withpen a withcolor 0.5*(red+green); + endfor; + z8 = firsttangencypoint( cp, z7, 5 ); + draw z7 withpen b withcolor green; + draw z7--z8 withpen c withcolor blue; +endfig; + +end. + + + + + + diff --git a/Master/texmf-dist/doc/metapost/featpost/example/standard/tdarrow.mp b/Master/texmf-dist/doc/metapost/featpost/example/standard/tdarrow.mp new file mode 100644 index 00000000000..5ef43d52524 --- /dev/null +++ b/Master/texmf-dist/doc/metapost/featpost/example/standard/tdarrow.mp @@ -0,0 +1,26 @@ +% tdarrow.mp +% L. Nobre G. +% 2004 + +%input featpost3Dplus2D; + +beginfig(1); + numeric size, num, i, j, coos[]; + string comm; + color tmpc, fro, tip;; + size = 1.5; + num = 250; + draw rp(black)--rp((size,0,0))--rp((size,size,0))--rp((0,size,0))--cycle; + for i=1 upto num: + for j=1 upto 6: + coos[j] := uniformdeviate(size); + endfor; + fro := (coos1,coos2,coos3); + tip := (coos4,coos5,coos6); + comm := "tdarrow(" & cstr(fro) & "," & cstr(tip) & ");"; + tmpc := 0.5[fro,tip]; + getready( comm, tmpc ); + endfor; + doitnow; +endfig; +end. diff --git a/Master/texmf-dist/doc/metapost/featpost/example/standard/thearchicon.mp b/Master/texmf-dist/doc/metapost/featpost/example/standard/thearchicon.mp new file mode 100644 index 00000000000..3c9acb10391 --- /dev/null +++ b/Master/texmf-dist/doc/metapost/featpost/example/standard/thearchicon.mp @@ -0,0 +1,59 @@ +% thearchicon.mp +% L. Nobre G. +% 2002 + +%input featpost3Dplus2D; + +f := 0.8*(6,3,4); + +beginfig(1); + color tracecol, lockcol; + numeric altura, compri, radius, altfrac, comfrac, radang; + path theside, thefront, thelocka, thelockb, thelock; + color poi[]; + numeric numpl, aux, i; + altura = 1; + compri = 2; + radius = 0.8; + altfrac = 0.2; + comfrac = 0.15; + radang = 37; + numpl = 9; + tracecol = blue; + lockcol = black; + currentpen := pencircle scaled 3mm; + drawoptions( withcolor tracecol ); + rigorousdisc( 0, true, (-0.5compri,0,0), radius, (compri,0,0) ); + poi1 = (0.5compri,-radius,0); + poi2 = (0.5compri,radius,0); + poi3 = (-0.5compri,radius,0); + poi4 = (0.5compri,-radius,-altura); + poi5 = (0.5compri,radius,-altura); + poi6 = (-0.5compri,radius,-altura); + theside = rp(poi1)--rp(poi2)--rp(poi5)--rp(poi4)--cycle; + thefront= rp(poi2)--rp(poi3)--rp(poi6)--rp(poi5)--cycle; + drawoptions( withcolor background ); + fill theside; + fill thefront; + thelocka = rp((comfrac*compri,radius,-altfrac*altura)) + --rp((comfrac*compri,radius,0)); + thelockb = rp((-comfrac*compri,radius,-altfrac*altura)) + --rp((-comfrac*compri,radius,0)); + for i=1 upto numpl: + aux := i*radang/numpl; + poi7 := (comfrac*compri,radius*cosd(aux),radius*sind(aux)); + poi8 := (-comfrac*compri,radius*cosd(aux),radius*sind(aux)); + thelocka := thelocka...rp(poi7); + thelockb := thelockb...rp(poi8); + endfor; + thelock = thelocka--reverse thelockb--cycle; + drawoptions( withcolor lockcol ); + filldraw thelock; + drawoptions( withcolor tracecol ); + draw theside; + draw thefront; +endfig; + +end; + + diff --git a/Master/texmf-dist/doc/metapost/featpost/example/standard/thethreekindsofperspec.mp b/Master/texmf-dist/doc/metapost/featpost/example/standard/thethreekindsofperspec.mp new file mode 100644 index 00000000000..3d9ffe9e0d1 --- /dev/null +++ b/Master/texmf-dist/doc/metapost/featpost/example/standard/thethreekindsofperspec.mp @@ -0,0 +1,195 @@ +% thethreekindsofperspec.mp +% L. Nobre G. +% 2003 + +%input featpost3Dplus2D; + +% bash: export TEX=latex +% tcsh: setenv TEX latex + +f := (4,2,2.5); +Spread := 45; + +verbatimtex +\documentclass{article} +\usepackage{beton,concmath,ccfonts} +\begin{document} +etex + +color psdf, psdu, psdv, rll, rlr, rur, rul, pll, plr, pur, pul; +color pc; +numeric projecplanesize, sizefraction, positfraction, aspectratio, rectsize; +pen realpen, lightpen, projpen, dotpen; +path projecplanepath, realpath; +psdf = 3.1*(0,1,0.37); +projecplanesize = 1.7; +sizefraction = 0.19; +positfraction = 0.65; +aspectratio = 1.0; +rectsize = 0.15; +realpen = pencircle scaled 2.6pt; +lightpen = pencircle scaled 0.55pt; +projpen = pencircle scaled 1.8pt; +dotpen = pencircle scaled 3.8pt; +psdv = N( (-Y(psdf), X(psdf), 0) ); +psdu = ncrossprod( psdf, psdv ); +pll = projecplanesize*(-aspectratio*psdv-psdu); +plr = projecplanesize*(+aspectratio*psdv-psdu); +pur = projecplanesize*(+aspectratio*psdv+psdu); +pul = projecplanesize*(-aspectratio*psdv+psdu); +projecplanepath = rp(pll)--rp(plr)--rp(pur)--rp(pul)--cycle; +pc = positfraction*psdf; +rll = pc+sizefraction*projecplanesize*(-psdv-psdu); +rlr = pc+sizefraction*projecplanesize*(+psdv-psdu); +rur = pc+sizefraction*projecplanesize*(+psdv+psdu); +rul = pc+sizefraction*projecplanesize*(-psdv+psdu); +realpath = rp(rll)--rp(rlr)--rp(rur)--rp(rul)--cycle; + +beginfig(1); + draw projecplanepath withpen realpen; + draw realpath withpen realpen; + draw rp(psdf) withpen lightpen; + drawoptions( withpen lightpen ); + squareangline( psdf, psdv, black, rectsize ); + squareangline( psdf, psdu, black, rectsize ); + drawoptions(); + pair prll, prlr, prur, prul; + prll = rp(rll-pc); + prlr = rp(rlr-pc); + prur = rp(rur-pc); + prul = rp(rul-pc); + path projpath; + projpath = prll--prlr--prur--prul--cycle; + draw projpath withpen projpen; + draw prll--rp(rll+(1-positfraction)*psdf) withpen lightpen; + draw prlr--rp(rlr+(1-positfraction)*psdf) withpen lightpen; + draw prur--rp(rur+(1-positfraction)*psdf) withpen lightpen; + draw prul--rp(rul+(1-positfraction)*psdf) withpen lightpen; + draw rp(black)--rp(psdf) withpen lightpen; + draw rp(black) withpen dotpen; + draw rp(psdf) withpen dotpen; + label.rt( btex f etex, rp(psdf) ); +% label.bot( btex viewcentr etex, rp(black) ); +endfig; + +beginfig(2); + draw projecplanepath withpen realpen; + draw realpath withpen realpen; + draw rp(psdf) withpen lightpen; + drawoptions( withpen lightpen ); + squareangline( psdf, psdv, black, rectsize ); + squareangline( psdf, psdu, black, rectsize ); + drawoptions(); + pair prll, prlr, prur, prul; + LightSource:=psdf; + prll = rp(projectpoint(black,rll)); + prlr = rp(projectpoint(black,rlr)); + prur = rp(projectpoint(black,rur)); + prul = rp(projectpoint(black,rul)); + path projpath; + projpath = prll--prlr--prur--prul--cycle; + draw projpath withpen projpen; + draw prll--rp(psdf) withpen lightpen; + draw prlr--rp(psdf) withpen lightpen; + draw prur--rp(psdf) withpen lightpen; + draw prul--rp(psdf) withpen lightpen; + draw rp(black)--rp(psdf) withpen lightpen; + draw rp(black) withpen dotpen; + draw rp(psdf) withpen dotpen; + label.rt( btex f etex, rp(psdf) ); + label.bot( btex viewcentr etex, rp(black) ); +endfig; + +beginfig(3); + draw projecplanepath withpen realpen; + draw realpath withpen realpen; + draw rp(psdf) withpen lightpen; + drawoptions( withpen lightpen ); + squareangline( psdf, psdv, black, rectsize ); + squareangline( psdf, psdu, black, rectsize ); + numeric dist; + dist = conorm( psdf ); + color ml, mt, mr, mb; + mb = 0.5[rll,rlr]; + ml = 0.5[rll,rul]; + mr = 0.5[rur,rlr]; + mt = 0.5[rur,rul]; + drawoptions( withpen projpen ); + angline( rll, mb, psdf, dist, "", top ); + angline( rll, ml, psdf, dist, "", top ); + angline( rur, mt, psdf, dist, "", top ); + angline( rur, mr, psdf, dist, "", top ); + angline( mb, rlr, psdf, dist, "", top ); + angline( ml, rul, psdf, dist, "", top ); + angline( mr, rlr, psdf, dist, "", top ); + angline( mt, rul, psdf, dist, "", top ); + angline( black, mb, psdf, dist, "", top ); + angline( black, ml, psdf, dist, "", top ); + angline( black, mr, psdf, dist, "", top ); + angline( black, mt, psdf, dist, "", top ); + drawoptions(); + numeric marc, darc, dmarc, ddarc; + marc = 0.01745*getangle(-psdf,mt-psdf)*dist; + darc = 0.01745*getangle(-psdf,rll-psdf)*dist*0.707; + color pro[], esf[], proc[], esfc[]; + pro1 = darc*(-psdv-psdu); + pro2 = marc*(-psdu); + pro3 = darc*(+psdv-psdu); + pro4 = marc*(+psdv); + pro5 = darc*(+psdv+psdu); + pro6 = marc*(+psdu); + pro7 = darc*(-psdv+psdu); + pro8 = marc*(-psdv); + esf1 = psdf+dist*N(rll-psdf); + esf2 = psdf+dist*N(mb-psdf); + esf3 = psdf+dist*N(rlr-psdf); + esf4 = psdf+dist*N(mr-psdf); + esf5 = psdf+dist*N(rur-psdf); + esf6 = psdf+dist*N(mt-psdf); + esf7 = psdf+dist*N(rul-psdf); + esf8 = psdf+dist*N(ml-psdf); + ddarc = conorm(pro1-esf1)/3; + dmarc = conorm(pro2-esf2)/3; + proc1 = pro1+ddarc*N(psdf); + proc2 = pro2+dmarc*N(psdf); + proc3 = pro3+ddarc*N(psdf); + proc4 = pro4+dmarc*N(psdf); + proc5 = pro5+ddarc*N(psdf); + proc6 = pro6+dmarc*N(psdf); + proc7 = pro7+ddarc*N(psdf); + proc8 = pro8+dmarc*N(psdf); + esfc1 = esf1+ddarc*N(rll-psdf); + esfc2 = esf2+dmarc*N(mb-psdf); + esfc3 = esf3+ddarc*N(rlr-psdf); + esfc4 = esf4+dmarc*N(mr-psdf); + esfc5 = esf5+ddarc*N(rur-psdf); + esfc6 = esf6+dmarc*N(mt-psdf); + esfc7 = esf7+ddarc*N(rul-psdf); + esfc8 = esf8+dmarc*N(ml-psdf); + numeric i; + drawoptions( withpen lightpen ); + for i=1 upto 8: + draw rp(esf[i])..controls rp(esfc[i]) and rp(proc[i])..rp(pro[i]); + draw rp(psdf)--rp(esf[i]); + endfor; + draw rp(pro2)--rp(pro6); + draw rp(pro4)--rp(pro8); + draw rp(mb)--rp(mt); + draw rp(ml)--rp(mr); + drawoptions( withpen projpen ); + draw rp(pro1)...rp(pro2)..rp(pro3); + draw rp(pro3)...rp(pro4)..rp(pro5); + draw rp(pro5)...rp(pro6)..rp(pro7); + draw rp(pro7)...rp(pro8)..rp(pro1); + draw rp(black)--rp(psdf) withpen lightpen; + draw rp(black) withpen dotpen; + draw rp(psdf) withpen dotpen; + label.rt( btex f etex, rp(psdf) ); +% label.ulft( btex viewcentr etex, rp(black) ); +endfig; + +verbatimtex +\end{document} +etex + +end;
\ No newline at end of file diff --git a/Master/texmf-dist/doc/metapost/featpost/example/standard/torus.mp b/Master/texmf-dist/doc/metapost/featpost/example/standard/torus.mp new file mode 100644 index 00000000000..e629e85823a --- /dev/null +++ b/Master/texmf-dist/doc/metapost/featpost/example/standard/torus.mp @@ -0,0 +1,297 @@ +% torus +% L. Nobre G. +% 2004 + +%input featpost3Dplus2D; + +% Draw a torus with NP dots, a section of 3.14*RS^2 +% and a total diameter of 2*(RB+RS). The dots are placed +% on a single closed line that turns around the $z$ axis +% NB times and around the section NS times. +% figure(1) exemplifies the use of signalvertex. + +def flask( expr TheVal ) = + begingroup + numeric RB, RS, RP, NB, NS, NM, phi, theta, first, second, third; + RB=1; + RS=0.3; + RP=0.02; + NB=8; + NS=5; + NM=4; + theta=360*NB*TheVal; + phi=360*NS*TheVal; + first =(RB+(RS+RP*sind(NM*theta))*cosd(phi))*cosd(theta); + second=(RB+(RS+RP*sind(NM*theta))*cosd(phi))*sind(theta); + third = (RS+RP*sind(NM*theta))*sind(phi); + ( (first,second,third) ) + endgroup +enddef; + +def blask( expr TheVal ) = + begingroup + numeric RB, RS, NB, NS, phi, theta, first, second, third; + RB=1; + RS=0.1; + NB=1; + NS=24; + theta=360*NB*TheVal; + phi=360*NS*TheVal; + first =(RB+RS*cosd(phi))*cosd(theta); + second=(RB+RS*cosd(phi))*sind(theta); + third = RS*sind(phi); + ( (first,second,third) ) + endgroup +enddef; + +beginfig(5); + Spread := 200; + numeric NP, i, varfrac; + path cl; + string comm; + pen bip, sp; + varfrac = 1.25; + bip = pencircle scaled 15pt; + sp = pencircle scaled 9pt; + NP=600; + cl = for i=1 upto NP: rp(flask(i/NP)).. endfor cycle; + draw cl; + for i=1 upto NP: + comm:="draw subpath (" + & decimal(i-0.5) + & "," + & decimal(i+0.5) + & ") of cl withpen bip; undraw subpath (" + & decimal(i-varfrac) + & "," + & decimal(i+varfrac) + & ") of cl withpen sp;"; + getready( comm, flask( i/NP ) ); + endfor; + closedline( true, 300, 0.5, 1 )( blask ); + doitnow; +endfig; + +beginfig(6); + Spread := 100; + f := (7,3,9); + HoriZon := -2; + LightSource := (1,-1,15); + numeric sinthe, costhe, ux, uz, lx, lz, co, i; + costhe = (4*sqrt(5)-sqrt(3))/11; + sinthe = sqrt(1-(costhe**2)); + ux = costhe*sqrt(2)/2; + uz = sinthe/2; + lx = sqrt(4/3)*sinthe; + lz = -sqrt(2/3)*costhe; + co = sqrt(2)*(2*sqrt(5)+5*sqrt(3))/22; + V1 := (ux,0,-uz); + V2 := (lx,0,-lz); + V3 := (0,ux,uz); V15:= (0,-ux,uz); + V4 := (0,lx,lz); V16:= (0,-lx,lz); + V5 := (co,co,0); V14:= (-co,-co,0); + V6 := (-ux,0,-uz); + V7 := (-lx,0,-lz); + V8 := (-co,co,0); V13:= (co,-co,0); + V9 := improvertex( V5, 1, V4, 1, V3, sqrt(3)-1, (0,1,0) ); + V10:= (-X(V9),-Y(V9),Z(V9)); + V11:= (Y(V9),-X(V9),-Z(V9)); + V12:= (-Y(V9),X(V9),-Z(V9)); + makeface1(1,2,3); + makeface2(1,2,5); + makeface3(2,3,5); + makeface4(9,4,5); + makeface5(3,4,1); + makeface6(1,4,5); + makeface7(3,6,7); + makeface8(3,7,8); + makeface9(6,7,8); + makeface10(9,8,4); + makeface11(4,6,8); + makeface12(3,4,6); + makeface13(3,5,9); + makeface14(3,8,9); + makeface15(7,8,12); + makeface16(7,14,12); + makeface17(6,8,12); + makeface18(6,14,12); + makeface19(2,5,11); + makeface20(2,13,11); + makeface21(1,5,11); + makeface22(1,13,11); + makeface23(10,15,13); + makeface24(10,15,14); + makeface25(10,16,13); + makeface26(10,16,14); + makeface27(2,1,15); + makeface28(6,7,15); + makeface29(13,15,2); + makeface30(14,15,7); + makeface31(16,1,15); + makeface32(16,6,15); + for i=1 upto 32: + FC[i] := TableColors; + FCD[i]:= true; + endfor; + ShadowOn := true; + setthearena(15,6); + fill_faces(); + draw_invisible( false, false, TableC3, TableC0 ); +% drawoptions( withcolor red ); +% for i=1 upto 16: +% label.bot( decimal( i ), rp( V[i] ) ); +% endfor; +endfig; + +beginfig(1); + Spread := 140; + NP:=2000; + RB:=1; + RS:=0.2; + R3:=0.1; + NB:=8; + NS:=5; + jB:=360*NB/NP; + jS:=360*NS/NP; + for i=1 upto NP: + phi :=i*jS; + theta :=i*jB; + first :=(RB+(RS+R3*sind(4*theta))*cosd(phi))*cosd(theta); + second:=(RB+(RS+R3*sind(4*theta))*cosd(phi))*sind(theta); + third := (RS+R3*sind(4*theta))*sind(phi); + signalvertex( (first,second,third), 1, black ); + endfor; +endfig; + +% Draw a torus with faces. + +beginfig(2); + + PrintStep := 7; + + f := ( 3,1,1 ); + + RB:=1; + RS:=0.25; + NB:=3; + NS:=5; + jB:=360/NB; + jS:=360/NS; + iS:=jS; + iB:=jB; + counter:=0; + for i=1 upto NB: + for j=1 upto NS: + counter := incr(counter); + npf[counter]:= 4; + phi :=j*jS; + theta:=i*jB; + f1 :=(RB+(RS)*cosd(phi))*cosd(theta); + s1 :=(RB+(RS)*cosd(phi))*sind(theta); + t1 := (RS)*sind(phi); + F[counter]p[1]:=(f1,s1,t1); + f2 :=(RB+(RS)*cosd(phi))*cosd(theta+iB); + s2 :=(RB+(RS)*cosd(phi))*sind(theta+iB); + t2 := (RS)*sind(phi); + F[counter]p[2]:=(f2,s2,t2); + f3 :=(RB+(RS)*cosd(phi+iS))*cosd(theta+iB); + s3 :=(RB+(RS)*cosd(phi+iS))*sind(theta+iB); + t3 := (RS)*sind(phi+iS); + F[counter]p[3]:=(f3,s3,t3); + f4 :=(RB+(RS)*cosd(phi+iS))*cosd(theta); + s4 :=(RB+(RS)*cosd(phi+iS))*sind(theta); + t4 := (RS)*sind(phi+iS); + F[counter]p[4]:=(f4,s4,t4); + endfor; + endfor; + NF:=counter; +% faceraytrace(0.3, blue); +% draw_all_test(false); + sharpraytrace; +endfig; + +beginfig(3); + f := (6,2,4); +% f := (6,2,7); % NO CUSP. + Spread:=70; + HoriZon := -2; + ShadowOn := true; + numeric bigray, smaray, angstep; + color toruscenter, torusmoment, nearaxe, sideaxe, viewline; + color circlecenter, circlemoment; + numeric ang, ind, i, anglim; + path cpath, apath, opath, ipath, wp, ep; + pair outerp[], innerp[], refpair; + pen markpen; + boolean cuspcond; + picture holepic; + markpen = pencircle scaled 5pt; + pickup markpen; + bigray = 2; + smaray = 1; + angstep= 2; + toruscenter = black; + torusmoment = (0,1,2); + refpair = unitvector( rp(toruscenter+torusmoment)-rp(toruscenter) ); + viewline = f-toruscenter; + ind = 0; + sideaxe = bigray*ncrossprod( torusmoment, viewline ); + nearaxe = bigray*ncrossprod( sideaxe, torusmoment ); + anglim = 0.5*angstep-180; + if ShadowOn: + for ang=anglim step angstep until -anglim: + circlecenter:= nearaxe*cosd(ang)+sideaxe*sind(ang); + circlemoment:=-nearaxe*sind(ang)+sideaxe*cosd(ang); + filldraw circleshadowpath(circlecenter,circlemoment,smaray); + endfor; + fi; + for ang=anglim step angstep until -anglim: + ind := incr( ind ); + circlecenter:= nearaxe*cosd(ang)+sideaxe*sind(ang); + circlemoment:=-nearaxe*sind(ang)+sideaxe*cosd(ang); + cpath:=spatialhalfcircle(circlecenter,circlemoment,smaray,true); + if ang>=0: + outerp[ind]=point 0 of cpath; + innerp[ind]=point (length cpath) of cpath; + elseif ang<0: + innerp[ind]=point 0 of cpath; + outerp[ind]=point (length cpath) of cpath; + fi; + endfor; + opath = for i=1 upto ind: outerp[i].. endfor cycle; + ipath = for i=1 upto ind: innerp[i].. endfor cycle; + holepic = currentpicture; + clip holepic to ipath; + unfill opath; + draw holepic; + draw opath withcolor green; + draw ipath withcolor red; +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Perhaps there is an analytic way of getting the angle of the cusp point? % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + i := ceiling(1+180/angstep); + forever: + i := incr( i ); + cuspcond := refpair dotprod innerp[i+1] < refpair dotprod innerp[i]; + exitif cuspcond or ( i > ind-1 ); + endfor; +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + ep = outerp[ind-i]--innerp[ind-i]; + wp = innerp[i]--outerp[i]; + unfill buildcycle(opath,ep,reverse ipath,wp); + draw opath withcolor green; + draw subpath (i,ind-i) of ipath withcolor red; +endfig; + +beginfig(4); + f := (16,2,3.8); + Spread:=40; + pickup pencircle scaled 3pt; + smoothtorus( black-3*blue, blue, 4, 1 ); + smoothtorus( black, blue, 4, 1 ); + smoothtorus( black+3*blue, blue, 4, 1 ); +endfig; + +end. + + diff --git a/Master/texmf-dist/doc/metapost/featpost/example/standard/trajectoryline.mp b/Master/texmf-dist/doc/metapost/featpost/example/standard/trajectoryline.mp new file mode 100644 index 00000000000..30fe6235713 --- /dev/null +++ b/Master/texmf-dist/doc/metapost/featpost/example/standard/trajectoryline.mp @@ -0,0 +1,88 @@ +% trajectoryline.mp +% L. Nobre G. +% 2003 + +%input featpost3Dplus2D; + +Spread := 30; +f := (10,0,0); + +color posa, posb, axer; +numeric kfac, refrad; +posa = -5*green; +posb = 5*green; +axer = blue; +kfac = 2.5; +refrad = 1; + +def vecfunc( expr posit )= + begingroup + save modula, modulb, field; + color field; + numeric modula, modulb; + modula = conorm( posit-posa ); + modulb = conorm( posit-posb ); + field = ( posit-posa )/(modula**3)+kfac*( posit-posb )/(modulb**3); + ( -field ) + endgroup +enddef; + +def magfunc( expr posit )= + begingroup + save perpd, refvec, dist; + color perpd, refvec; + numeric dist; + perpd = ccrossprod( axer, posit ); + refvec = posit - refrad*ncrossprod( perpd, axer ); + dist = conorm( refvec ); + ( ncrossprod( refvec, perpd )/(dist**2) ) + endgroup +enddef; + +beginfig(1); + numeric i, lena, numa, sa, diffstep, ray; + color stp, svl; + path oneline; + pen grossa, fina; + grossa = pencircle scaled 3pt; + fina = pencircle scaled 2pt; + lena = 400; + numa = 58; + diffstep = 0.12; + ray = 3.5; + sa = 168; + for i=sa step numa until (180): + stp := ( 0, ray*cosd(i), ray*sind(i) ); + svl := N( -stp ); + oneline := trajectorypath( lena, stp, svl, diffstep, vecfunc ); + draw oneline withpen grossa; + draw oneline withpen fina withcolor background; + endfor; + draw rp(posa) withpen grossa; + draw rp(posb) withpen grossa; +endfig; + +beginfig(2); + numeric i, lena, numa, sa, diffstep, ray; + color stp, svl; + path oneline; + pen grossa, fina; + grossa = pencircle scaled 3pt; + fina = pencircle scaled 2pt; + lena = 100; + numa = 4; + diffstep = 1; + ray = 5.5; + sa = 97; + for i=sa step numa until (120): + stp := ( 0, ray*cosd(i), ray*sind(i) ); + svl := 0.8*N( -stp ); + oneline := magnetictrajectorypath( lena, stp, svl, diffstep, magfunc ); + draw oneline withpen grossa; + draw oneline withpen fina withcolor background; + endfor; + draw rp(black) withpen grossa; +endfig; + +end. + diff --git a/Master/texmf-dist/doc/metapost/featpost/example/standard/triangulartrimesh.mp b/Master/texmf-dist/doc/metapost/featpost/example/standard/triangulartrimesh.mp new file mode 100644 index 00000000000..1a19c776976 --- /dev/null +++ b/Master/texmf-dist/doc/metapost/featpost/example/standard/triangulartrimesh.mp @@ -0,0 +1,39 @@ +% triangulartrimesh.mp +% L. Nobre G. +% IYP (2005) + +%input featpost3Dplus2D; + +def zsurface( expr xc, yc ) = + cosd(xc*57)*cosd(yc*57)+4*mexp(-(xc**2+yc**2)*6.4) +enddef; + +f := 16*(4,1,1); +Spread := 35; +LightSource := 10*(4,-3,4); +defaultfont := "cmvtt10"; +beginfig(1); + numeric np, ssize, lx, ly, topl, ystep, i, zl; + string L[]; + L0 = "P"; + L1 = "H"; + L2 = "Y"; + L3 = "S"; + L4 = "I"; + L5 = "C"; + L6 = "S"; + np = 72; + ssize = 15; + ly = -0.5*ssize; + lx = -sqrt(3)*ssize/6; + ystep = ssize/7; + topl = 2*zsurface( 0, 0 ); + for i=0 upto 6: + zl := zsurface(lx,i*ystep+ly); + labelinspace(false,(lx,i*ystep+ly,zl),green*ystep,blue*(topl-zl),L[i]); + endfor; + hexagonaltrimesh( false,np,ssize,zsurface); + label.ulft("matagalatlante.org",lrcorner currentpicture); +endfig; + +end; diff --git a/Master/texmf-dist/doc/metapost/featpost/example/standard/tropicalglobe.mp b/Master/texmf-dist/doc/metapost/featpost/example/standard/tropicalglobe.mp new file mode 100644 index 00000000000..e861c8c4462 --- /dev/null +++ b/Master/texmf-dist/doc/metapost/featpost/example/standard/tropicalglobe.mp @@ -0,0 +1,23 @@ +% tropicalglobe.mp +% L. Nobre G. +% 2003 + +%input featpost3Dplus2D; + +beginfig(1); + numeric radius, numc; + pen thickp; + + f := (3,0,2); + viewcentr := 0.5*(1,1,1); + Spread := 20; + radius = 1; + numc = 18; + thickp = pencircle scaled 1mm; + + drawoptions( withpen thickp ); + tropicalglobe( numc, black, radius, blue ); + produce_auto_scale; +endfig; + +end; diff --git a/Master/texmf-dist/doc/metapost/featpost/example/standard/tshirtfig.mp b/Master/texmf-dist/doc/metapost/featpost/example/standard/tshirtfig.mp new file mode 100644 index 00000000000..3873ab3c1fa --- /dev/null +++ b/Master/texmf-dist/doc/metapost/featpost/example/standard/tshirtfig.mp @@ -0,0 +1,39 @@ +% tshirtfig.mp +% L. Nobre G. +% 2004 + +%input featpost3Dplus2D; + +beginfig(1); + f := (5,4,3); + Spread := 70; + pickup pencircle scaled 2.4pt; + numeric gridstep, cylength, cyradius, numcylis; + numeric i, j, curcoord, curangle, curnorma, tmp; + numeric othcoord, othangle, zcoord, coef, othnorma; + color base, lenvec; + cylength := 0.2; + cyradius := 0.3; + gridstep := cyradius*2.2; + numcylis := 7; + coef := 0.22; + for i=1 upto numcylis: % saddle + curnorma := i-0.5*(numcylis+1); + curcoord := curnorma*gridstep; + curangle := -curcoord*2*coef; + for j=1 upto numcylis: + othnorma := j-0.5*(numcylis+1); + othcoord := othnorma*gridstep; + othangle := othcoord*2*coef; + zcoord:=coef*(othcoord**2-curcoord**2); + base := (curcoord,othcoord,zcoord); + lenvec := cylength*N((-curangle,-othangle,1)); + tmp := zcoord/2.4+0.8; + if tmp > 1: show tmp; fi; + background := tmp*TableC2; + rigorousdisc( 0, true,base,cyradius,lenvec); + endfor; + endfor; +endfig; + +end.
\ No newline at end of file diff --git a/Master/texmf-dist/doc/metapost/featpost/example/standard/tuftescatter.mp b/Master/texmf-dist/doc/metapost/featpost/example/standard/tuftescatter.mp new file mode 100644 index 00000000000..2df874ec1dc --- /dev/null +++ b/Master/texmf-dist/doc/metapost/featpost/example/standard/tuftescatter.mp @@ -0,0 +1,83 @@ +% tuftescatter.mp +% L. Nobre G. +% IYP (2005) + +% input featpost3Dplus2D; + +def linscatter = uniformdeviate( 2 ) - 1 enddef; + +def fullcalculator = + begingroup + color aux; + numeric cx, cy; + forever: + cx := linscatter; + cy := linscatter; + exitif cx ++ cy < 0.8; % Saddle ray + endfor; + aux = ( cx, cy, cx*cx-cy*cy ); + ( eulerrotation( -25, -15, -5, aux ) ) % Rotation angles + endgroup +enddef; + +beginfig(1); + numeric totalnum, classnum, sparksiz, pointray; + totalnum = 350; % Number of data points + classnum = 30; % Number of sparkline classes + sparksiz = 0.34; % Maximum sparkline height + pointray = 0.025; % Size of the data points + f := ( 7, 6, 5 ); + Spread := 150; + numeric i, j, k, l, hx[], hy[], hz[], classtep; + classtep = 2/classnum; + color tmp; + for j=0 upto classnum: + hx[j] = 0; + hy[j] = 0; + hz[j] = 0; + endfor; + for l=1 upto totalnum: + tmp := fullcalculator; + for k=1 upto classnum: + if ( X(tmp) <= k*classtep-1 ) and ( X(tmp) > (k-1)*classtep-1 ): + hx[k] := incr( hx[k] ); + fi; + if ( Y(tmp) <= k*classtep-1 ) and ( Y(tmp) > (k-1)*classtep-1 ): + hy[k] := incr( hy[k] ); + fi; + if ( Z(tmp) <= k*classtep-1 ) and ( Z(tmp) > (k-1)*classtep-1 ): + hz[k] := incr( hz[k] ); + fi; + endfor; + draw rigorouscircle( (-1,Y(tmp),Z(tmp)), red, pointray ); + draw rigorouscircle( (X(tmp),-1,Z(tmp)), green, pointray ); + draw rigorouscircle( (X(tmp),Y(tmp),-1), blue, pointray ); + getready("fill rigorousfearpath(" + & cstr( tmp ) + & ",pointray) withcolor blue; draw rigorousfearpath(" + & cstr( tmp ) + & ",pointray); ", tmp); + endfor; + numeric maxn, sparkfac; + maxn = 0; + for i=1 upto classnum: + if hx[i]>maxn: maxn := hx[i]; fi; + if hy[i]>maxn: maxn := hy[i]; fi; + if hz[i]>maxn: maxn := hz[i]; fi; + endfor; + sparkfac = sparksiz/maxn; + for j=1 upto classnum: + draw rp(((j-1)*classtep-1,1+sparkfac*hx[j-1],-1)) + --rp(((j-1)*classtep-1,1+sparkfac*hx[j],-1)) + --rp((j*classtep-1,1+sparkfac*hx[j],-1)); + draw rp((-1,(j-1)*classtep-1,1+sparkfac*hy[j-1])) + --rp((-1,(j-1)*classtep-1,1+sparkfac*hy[j])) + --rp((-1,j*classtep-1,1+sparkfac*hy[j])); + draw rp((-1,1+sparkfac*hz[j-1],(j-1)*classtep-1)) + --rp((-1,1+sparkfac*hz[j],(j-1)*classtep-1)) + --rp((-1,1+sparkfac*hz[j],j*classtep-1)); + endfor; + doitnow; +endfig; + +end.
\ No newline at end of file diff --git a/Master/texmf-dist/doc/metapost/featpost/example/standard/twistflat.mp b/Master/texmf-dist/doc/metapost/featpost/example/standard/twistflat.mp new file mode 100644 index 00000000000..080f3364282 --- /dev/null +++ b/Master/texmf-dist/doc/metapost/featpost/example/standard/twistflat.mp @@ -0,0 +1,55 @@ +% twistflat.mp +% L. Nobre G. +% Y2K + +%input featpost3Dplus2D; + + + +beginfig(1); + + f := 0.7*(1.5,0.3,1.2); + + Spread := 700; + + color gridvec, sizevec, currpos, starpos, bordpos; + numeric i, j, k, counter, theta, phi, thetamin, + thetamax, thetastp, long, base; + sizevec := (11,6,1); + gridvec := (0.05,0.1,0.1); + thetamin := 55; + thetamax := 125; + long := 0.08; + base := 0.1; + thetastp := (thetamax-thetamin)/(X(sizevec)-1); + starpos := ( -0.5*X(gridvec)*(X(sizevec)-1) , + -0.5*Y(gridvec)*(Y(sizevec)-1) , + -0.5*Z(gridvec)*(Z(sizevec)-1) ); + bordpos := starpos - 0.5*gridvec; + npf1 := 4; + F1p1 := bordpos; + F1p2 := (X(bordpos),-Y(bordpos), Z(bordpos)); + F1p3 := (-X(bordpos),-Y(bordpos), Z(bordpos)); + F1p4 := (-X(bordpos),Y(bordpos), Z(bordpos)); + NF := 1; + draw facepath(1); + counter := 1; + for i=1 upto X(sizevec): + for j=1 upto Y(sizevec): + for k=1 upto Z(sizevec): + phi := 90; + theta := thetamin+(i-1)*thetastp; + currpos := starpos+( (i-1)*X(gridvec) , + (j-1)*Y(gridvec) , + (k-1)*Z(gridvec) ); + generatedirline( counter, phi, theta, long, currpos ); + counter := incr(counter); + endfor; + endfor; + endfor; + NL := decr(counter); + director_invisible( true, base, false ); +endfig; + +end; + diff --git a/Master/texmf-dist/doc/metapost/featpost/example/standard/twoholes.mp b/Master/texmf-dist/doc/metapost/featpost/example/standard/twoholes.mp new file mode 100644 index 00000000000..07cf6c31964 --- /dev/null +++ b/Master/texmf-dist/doc/metapost/featpost/example/standard/twoholes.mp @@ -0,0 +1,31 @@ +% twoholes.mp +% L. Nobre G. +% 2004 + +%input featpost3Dplus2D; + +f := 1.5*(0,1.5,1); +Spread := 100; + +beginfig(1); + numeric stagelevel, holediam, outerdiam, stagemargin; + numeric numberofstagesidesquares, stagesidesize; + numeric centercoord; + color centerposdisc, centerpostorus; + stagelevel = 0.2; + holediam = 0.6; + stagemargin = 0.2; + numberofstagesidesquares = 20; + outerdiam = holediam+4*stagelevel; + stagesidesize = 2*( outerdiam + stagemargin ); + centercoord = 0.3535*outerdiam; + HoriZon := -stagelevel; + centerpostorus = ( centercoord, -centercoord, 0 ); + centerposdisc = ( -centercoord, centercoord, HoriZon ); + setthestage( numberofstagesidesquares, stagesidesize ); + smoothtorus( centerpostorus, blue, + 0.5*holediam+stagelevel, stagelevel ); + rigorousdisc( 0.5*holediam, true, centerposdisc, + 0.5*outerdiam, 1.5*stagelevel*blue ); +endfig; +end. diff --git a/Master/texmf-dist/doc/metapost/featpost/example/standard/unperfection.mp b/Master/texmf-dist/doc/metapost/featpost/example/standard/unperfection.mp new file mode 100644 index 00000000000..0e95bc05451 --- /dev/null +++ b/Master/texmf-dist/doc/metapost/featpost/example/standard/unperfection.mp @@ -0,0 +1,59 @@ +% unperfection.mp +% L. Nobre G. +% 2003 + +%input featpost3Dplus2D; + +Spread := 70; +f := (10,4,5); + +beginfig(1); + numeric i, len, polelen; + numeric fws, NumLines, linex, inray, outay, axray; + numeric wang, poleray; + path aro[], oneline; + color axe, pole, polec, aroc; + picture floorwall; + len := 0.6; + wang := 60; + axe := (0,cosd(90-wang),sind(90-wang)); + pole := (0,1,0); + fws := 4; + polelen := 0.8*fws; + outay := 0.45*fws; + inray := 0.7*outay; + poleray := 0.07*inray; + NumLines := 30; + for i=0 upto NumLines: + linex := fws*(i/NumLines-0.5); + oneline := rp((linex,0.5*fws,-0.5*fws)) + --rp((linex,-0.5*fws,-0.5*fws)) + --rp((linex,-0.5*fws,0.5*fws)); + draw oneline withcolor (0.7*background); + endfor; + aroc := outay*(0,cosd(wang),sind(wang))-0.5*(0,fws,fws); + polec := (0,(outay-inray)*cosd(wang)-fws/2, + (outay+inray)*sind(wang)-poleray-fws/2); + aro1 := goodcirclepath( aroc, axe, inray ); + aro2 := goodcirclepath( aroc+len*axe, axe, inray ); + aro3 := buildcycle( aro1, aro2 ); + floorwall := currentpicture; + clip floorwall to aro3; + aro4 := spatialhalfcircle( aroc+len*axe, axe, inray, false ); + aro5 := spatialhalfcircle( aroc+len*axe, axe, outay, false ); + aro6 := reverse aro5; + aro7 := aro4--aro6--cycle; + fill aro7 withcolor (0.6*background); + rigorousdisc( 0, true, aroc, inray, axe*len ); + draw floorwall; + draw aro3; + rigorousdisc( 0, true, polec, poleray, pole*polelen ); + aro8 := spatialhalfcircle( aroc+len*axe, axe, inray, true ); + aro9 := spatialhalfcircle( aroc+len*axe, axe, outay, true ); + aro10 := reverse aro9; + aro11 := aro8--aro10--cycle; + fill aro11 withcolor (0.6*background); + rigorousdisc( 0, false, aroc, outay, axe*len ); +endfig; + +end. diff --git a/Master/texmf-dist/doc/metapost/featpost/example/standard/unperfectionremoved.mp b/Master/texmf-dist/doc/metapost/featpost/example/standard/unperfectionremoved.mp new file mode 100644 index 00000000000..1829b9e7787 --- /dev/null +++ b/Master/texmf-dist/doc/metapost/featpost/example/standard/unperfectionremoved.mp @@ -0,0 +1,34 @@ +% unperfectionremoved.mp +% L. Nobre G. +% 2003 + +%input featpost3Dplus2D; + +Spread := 70; +f := (13,4,3); + +beginfig(1); + numeric i, len; + numeric fws, NumLines, linex, inray, outay, axray; + numeric wang; + path oneline; + color axe, aroc; + len := 0.6; + wang := 60; + axe := (0,cosd(90-wang),sind(90-wang)); + fws := 4; + outay := 0.45*fws; + inray := 0.7*outay; + NumLines := 30; + for i=0 upto NumLines: + linex := fws*(i/NumLines-0.5); + oneline := rp((linex,0.5*fws,-0.5*fws)) + --rp((linex,-0.5*fws,-0.5*fws)) + --rp((linex,-0.5*fws,0.5*fws)); + draw oneline withcolor (0.7*background); + endfor; + aroc := outay*(0,cosd(wang),sind(wang))-0.5*(0,fws,fws); + rigorousdisc( inray, true, aroc, outay, axe*len ); +endfig; + +end. diff --git a/Master/texmf-dist/doc/metapost/featpost/example/standard/vanallenbelt.mp b/Master/texmf-dist/doc/metapost/featpost/example/standard/vanallenbelt.mp new file mode 100644 index 00000000000..83c636ab380 --- /dev/null +++ b/Master/texmf-dist/doc/metapost/featpost/example/standard/vanallenbelt.mp @@ -0,0 +1,51 @@ +% vanallenbelt.mp +% L. Nobre G. +% 2004 + +% input featpost3Dplus2D; + +def magnfield( expr pos ) = + begingroup + save dist, anga, angb, angp, bv, bh, br, bx, by, bz, fin; + numeric dist, anga, angb, bv, bh, br, bx, by, bz; + pair angp; + color fin; + dist = conorm( pos ); + angp = getanglepair( pos ); + anga = xpart( angp ); + angb = ypart( angp ); + bh = 0.5*cosd( angb )/dist**3; + bv = sind( angb )/dist**3; + br = bv*cosd( angb ) - bh*sind( angb ); + bz = bv*sind( angb ) + bh*cosd( angb ); + bx = br*cosd( anga ); + by = br*sind( anga ); + fin = ( bx, by, bz ); + ( 25*fin ) + endgroup +enddef; + +def pmf( expr pos ) = + (2*red/(((greenpart pos) ++ (bluepart pos))**2)) +enddef; + +beginfig(1); + color vel; + vel = 1.1*(-0.25,0.0,0.1); + cartaxes(1,1,1); + draw magnetictrajectorypath(200, red, vel, 0.22, magnfield ); +% draw magnetictrajectorypath(400, red,-vel, 0.22, magnfield ); +endfig; + +beginfig(2); + f := 2*red; + Spread := 200; + numeric ang; + color vel; + ang = 145; + vel = 0.8*( 0, cosd( ang ), sind( ang ) ); + draw magnetictrajectorypath(200, green, vel, 0.1, pmf ); + drawarrow reverse (rp(blue)--rp(black)--rp(green)); +endfig; + +end.
\ No newline at end of file diff --git a/Master/texmf-dist/doc/metapost/featpost/example/standard/verygoodcone.mp b/Master/texmf-dist/doc/metapost/featpost/example/standard/verygoodcone.mp new file mode 100644 index 00000000000..8ce59552a21 --- /dev/null +++ b/Master/texmf-dist/doc/metapost/featpost/example/standard/verygoodcone.mp @@ -0,0 +1,28 @@ +% verygoodcone.mp +% L. Nobre G. +% 2003 + +%input featpost3Dplus2D; + +beginfig(1); + numeric radiusin, fac, i, numc, stepang, xcoor, ycoor, radc; + + f := (5,0.3,1.5); + Spread := 70; + radiusin = 0.3; + numc = 9; + fac = 3; + stepang = 360/numc; + radc = (fac-1)*radiusin*sind(0.5*stepang); + + for i=0 step stepang until 180: + xcoor := -radiusin*cosd(i); + ycoor := radiusin*sind(i); +verygoodcone(true,fac*(xcoor,-ycoor,0),(-xcoor,ycoor,0),radc,(xcoor,-ycoor,0)); +verygoodcone(true,fac*(xcoor,ycoor,0),-(xcoor,ycoor,0),radc,(xcoor,ycoor,0)); + endfor; +endfig; + +end; + + diff --git a/Master/texmf-dist/doc/metapost/featpost/example/standard/xraycamera.mp b/Master/texmf-dist/doc/metapost/featpost/example/standard/xraycamera.mp new file mode 100644 index 00000000000..b3f6e51c6de --- /dev/null +++ b/Master/texmf-dist/doc/metapost/featpost/example/standard/xraycamera.mp @@ -0,0 +1,117 @@ +% xraycamera.mp +% L. Nobre G. +% IYP (2005) + +%input featpost3Dplus2D; + +verbatimtex +\documentclass{article} +\usepackage{beton} +\usepackage{concmath} +\usepackage{ccfonts} +\begin{document} +etex + +beginfig(1); + f := (10,7,8); + Spread := 45; + numeric w, h, l, d, t, tr, tl, ma, mb, we, ar; + w = 3; + h = 2; + l = 4; + d = 0.75; + t = 1.2; + tr= 0.15; + tl= 0.25; + ma= 0.3; + mb= 0.2; + ar= 2; + we= 0.6*(h-t); + pen thin, thick, aver; + thin = pencircle scaled 0.5pt; + thick= pencircle scaled 1.5pt; + aver = pencircle scaled 1.0pt; + ahlength:=2mm; + ahangle:=30; + color p[]; + p1 = (0,w/2,-ma-mb); + p2 = (0,w/2,-ma); + p3 = (0,w/2,0); + p4 = (0,w/2,h); + p5 = (0,-w/2,-ma-mb); + p6 = (0,-w/2,-ma); + p7 = (0,-w/2,0); + p8 = (0,-w/2,h); + p9 = (0,-w/2-ma-mb,0); + p10= (0,-w/2-ma,0); + p11= (0,-w/2-ma-mb,h); + p12= (0,-w/2-ma,h); + p13= (-l,-w/2-ma-mb,h); + p14= (-l,-w/2-ma,h); + p15= (-l,-w/2,h); + p16= (-l,-w/2,0); + p17= (-l,w/2,0); + p18= (-l,w/2,h); + p19= (-l+d,0,0); + p20= (-l+d,0,t); + p21= (-l-ma,0,t); + p22= (-l-ma-mb,0,t); + p23= (-l-ma,0,0); + p24= (-l-ma-mb,0,0); + p25= (-l+d,w/2+ma,0); + p26= (-l+d,w/2+ma+mb,0); + p27= (-l,w/2+ma,0); + p28= (-l,w/2+ma+mb,0); + p29= 0.5[p2,p6]; + p30= 0.5[p10,p12]; + p31= 0.5[p12,p14]; + p32= 0.5[p21,p23]; + p33= 0.5[p25,p27]; + p34= (0,0,h); + p35= (0,0,2*t-h); + drawoptions( withpen thick ); + draw rp(p8)--rp(p4)--rp(p3)--rp(p7)--rp(p8)--rp(p15)--rp(p16); + draw rp(p15)--rp(p18)--rp(p17)--rp(p3)--rp(p4)--rp(p18); + path pat[]; + pat1 = rp(p8)--rp(p4); + pat2 = rp(p7)--rp(p16)--rp(p17); + pat3 = rp(p4)--rp(p18); + pat4 = pat2 cutbefore pat1 cutafter pat3; + draw pat4; + drawoptions( withpen thin ); + drawdblarrow rp(p2)--rp(p6); + drawdblarrow rp(p10)--rp(p12); + drawdblarrow rp(p14)--rp(p12); + drawdblarrow rp(p21)--rp(p23); + drawdblarrow rp(p25)--rp(p27); + draw rp(p1)--rp(p3); + draw rp(p5)--rp(p7); + draw rp(p7)--rp(p9); + draw rp(p8)--rp(p11); + draw rp(p13)--rp(p15); + draw rp(p20)--rp(p22); + draw rp(p19)--rp(p24); + draw rp(p17)--rp(p28); + draw rp(p19)--rp(p26); + drawoptions( withpen thick ); + rigorousdisc( 0, true, p20, tr, (-tl,0,0) ); + draw rp(p19)--rp(p20) withpen thin; + drawoptions( withpen aver ); + draw rp(p34)--rp(p20)--rp(p35); + fill ellipticpath( (0,0,t), (h-t)*blue, we*green ) withcolor 0.5white; + draw pat2 dashed evenly withpen thick; + draw rp(p20)--rp(p35)--rp(p34) dashed evenly; + draw rp((0,0,t)-we*green)--rp((0,0,t)+we*green) dashed evenly; + angline( p34, p35, p20, ar, btex $\alpha$ etex, llft ); + label.bot(btex $w$ etex, rp(p29)); + label.lft(btex $h$ etex, rp(p30)); + label.top(btex $l$ etex, rp(p31)); + label.lft(btex $t$ etex, rp(p32)); + label.rt(btex $d$ etex, rp(p33)); +endfig; + +verbatimtex +\end{document} +etex + +end; diff --git a/Master/texmf-dist/doc/metapost/featpost/example/tug04/cone.mp b/Master/texmf-dist/doc/metapost/featpost/example/tug04/cone.mp new file mode 100644 index 00000000000..883f01ff625 --- /dev/null +++ b/Master/texmf-dist/doc/metapost/featpost/example/tug04/cone.mp @@ -0,0 +1,37 @@ +% cone.mp +% L. Nobre G. +% 2004 + +verbatimtex \documentclass{article}\begin{document}{\sffamily etex + +beginfig(1); + f := (5,3,4); + numeric labscal; + picture labr, labc, laba, labv; + labscal = 2; + ahlength := 8pt; + ahangle := 30; + labc = btex $\vec{c}$ etex scaled labscal; + laba = btex $\vec{A}$ etex scaled labscal; + labr = btex $R$ etex scaled labscal; + labv = btex $\vec{v}$ etex scaled labscal; + drawoptions( withpen pencircle scaled 1.7pt withcolor 0.65blue ); + verygoodcone(true,black,blue,0.8,blue+green); + drawoptions( withpen pencircle scaled 1.3pt ); + draw rp(black)--rp(green)--rp(blue+green) dashed evenly; + drawdblarrow rp(black)--rp(0.8green); + label.urt( labr, rp(0.4green) ); + drawarrow rp(black)--rp(0.45*blue); + label.rt( laba, rp((0,0,0.25)) ); + dotlabel.llft( labc, rp(black) ); + dotlabel.rt( labv, rp(blue+green) ); + +endfig; + +verbatimtex +\end{document} +etex + +end. + + diff --git a/Master/texmf-dist/doc/metapost/featpost/example/tug04/ellipticprism.mp b/Master/texmf-dist/doc/metapost/featpost/example/tug04/ellipticprism.mp new file mode 100644 index 00000000000..6106c980adf --- /dev/null +++ b/Master/texmf-dist/doc/metapost/featpost/example/tug04/ellipticprism.mp @@ -0,0 +1,39 @@ +% ellipticprism.mp +% L. Nobre G. +% 2004 + +verbatimtex \documentclass{article}\begin{document}{\sffamily etex + +beginfig(1); + f := (5,3,4); + numeric labscal; + picture labsa, labba, labsb, labd, labc; + labscal = 2; + ahlength := 8pt; + ahangle := 30; + labc = btex $\vec{c}$ etex scaled labscal; + labsa = btex $\vec{S}_1$ etex scaled labscal; + labsb = btex $\vec{S}_2$ etex scaled labscal; + labba = btex $\vec{B}_1$ etex scaled labscal; + labd= btex $D$ etex scaled labscal; + drawoptions( withpen pencircle scaled 1.7pt withcolor 0.65blue ); + whatisthis( black, 0.5red, green, 0.85, 0.8 ); + drawoptions( withpen pencircle scaled 1.3pt ); + drawdblarrow rp(black)--rp(0.85blue); + label.rt( labd, rp(0.4blue) ); + drawarrow rp(black)--rp(0.5red); + label.ulft( labsa, rp(0.25red) ); + drawarrow rp(black)--rp(green); + label.top( labba, rp((0,0.5,0)) ); + drawarrow rp(0.85blue)--rp(0.8*0.5*red+0.85blue); + label.ulft( labsb, rp(0.2red+0.85blue) ); + dotlabel.bot( labc, rp(black) ); +endfig; + +verbatimtex +\end{document} +etex + +end. + + diff --git a/Master/texmf-dist/doc/metapost/featpost/example/tug04/intersection2D.mp b/Master/texmf-dist/doc/metapost/featpost/example/tug04/intersection2D.mp new file mode 100644 index 00000000000..d482fde6ed0 --- /dev/null +++ b/Master/texmf-dist/doc/metapost/featpost/example/tug04/intersection2D.mp @@ -0,0 +1,46 @@ +% intersection2D.mp +% L. Nobre G. +% 2004 + +verbatimtex \documentclass{article}\begin{document}{\sffamily etex + +beginfig(1); + numeric u; + pair Aa, Ab, Ba, Bb, Un, Kn, Or; + pen dotpen, penpen; + color knowncolour, notknowncol; + picture kn, un; + u = 4mm; + Aa = (0,8u); + Ab = (15u,0); + Ba = (12u,0.5u); + Bb = (13u,6u); + Kn = (0,1u); + Or = (1.5u,1.5u); + dotpen = pencircle scaled 0.5u; + penpen = pencircle scaled 0.2u; + knowncolour = blue; + notknowncol = red; + kn = btex given etex; + un = btex unknown etex; + draw Aa--Ab; + draw Ba--Bb; + drawoptions( withpen dotpen withcolor knowncolour ); + draw Aa; + draw Ab; + draw Ba; + draw Bb; + draw Kn+Or; + drawoptions( withpen dotpen withcolor notknowncol ); + Un = whatever[Aa,Ab]; + Un = whatever[Ba,Bb]; + draw Un; + draw Or; + drawoptions(); + label.rt( kn, Kn+Or ); + label.rt( un, Or ); +endfig; + +verbatimtex }\end{document} etex + +end; diff --git a/Master/texmf-dist/doc/metapost/featpost/example/tug04/kindofcube.mp b/Master/texmf-dist/doc/metapost/featpost/example/tug04/kindofcube.mp new file mode 100644 index 00000000000..c29d727bd61 --- /dev/null +++ b/Master/texmf-dist/doc/metapost/featpost/example/tug04/kindofcube.mp @@ -0,0 +1,57 @@ +% kindofcube.mp +% L. Nobre G. +% 2004 + +verbatimtex \documentclass{article}\begin{document}{\sffamily etex + +beginfig(1); + f := (4,1.2,0.5); + Spread := 120; + numeric lena, lenb, lenc, aa, ab, ac, angray, micr, labscal; + pair zeror; + color axa, axb, axc, returnedcorner, dummyc, auxx, auxy; + lena=0.3; + lenb=0.6; + lenc=0.9; + aa=130; + ab=32; + ac=67; + labscal=1.6; + angray=0.85; + micr=0.01; + zeror=rp(black); + cartaxes(1.2,1,1.15); + axa = ( cosd(aa), sind(aa), 0 ); + axb = axa*cosd(ab)+blue*sind(ab); + auxx= ( cosd(aa+90), sind(aa+90), 0); + auxy = ncrossprod( axb, auxx ); + axc = auxx*cosd(ac)+auxy*sind(ac); + draw zeror--rp(axa); + draw zeror--rp(axb); + draw zeror--rp(-0.6*axa); + draw zeror--rp(axc); + draw zeror--rp(auxx); + label.rt( btex $a$ etex scaled labscal, rp(axa) ); + label.rt( btex $b$ etex scaled labscal, rp(axb) ); + label.lft( btex $c$ etex scaled labscal, rp(auxx) ); + label.lft( btex $d$ etex scaled labscal, rp(axc) ); + angline( axa,red,black,angray,btex $\alpha_1$ etex scaled labscal,bot ); + angline( axb,axa,black,angray,btex $\alpha_2$ etex scaled labscal,rt ); + angline( axc,auxx,black,angray,btex $\alpha_3$ etex scaled labscal,lft ); + squareangline( -axa,auxx,black,0.2); + drawoptions( withpen pencircle scaled 1.7pt withcolor 0.65blue ); + kindofcube( false, true, black, aa, ab, ac, lena, lenb, lenc ); + drawoptions(); + dotlabel.bot( btex $\vec{o}$ etex scaled labscal, zeror ); + label.bot( btex $l_1$ etex scaled labscal, rp(lena*axb) ); + label.bot( btex $l_2$ etex scaled labscal, rp(0.5*lenb*axc) ); + label.ulft( btex $l_3$ etex scaled labscal,rp(0.5*lenc*ncrossprod(axb,axc))); +endfig; + +verbatimtex +\end{document} +etex + +end. + + diff --git a/Master/texmf-dist/doc/metapost/featpost/example/tug04/newexperimental.mp b/Master/texmf-dist/doc/metapost/featpost/example/tug04/newexperimental.mp new file mode 100644 index 00000000000..bfacd32ae1f --- /dev/null +++ b/Master/texmf-dist/doc/metapost/featpost/example/tug04/newexperimental.mp @@ -0,0 +1,157 @@ +% newexperimental.mp +% L. Nobre G. +% 2004 + +%input featpost3D; +%input featpost2D; + +%verbatimtex +%\documentclass{article} +%\usepackage{beton} +%\usepackage{concmath} +%\usepackage{ccfonts} +%\begin{document} +%etex + +verbatimtex +\documentclass{article} +\usepackage{palatino} +\begin{document} +etex + +f := (4.5,-6,5); +%f := (-4.5,-6,5); + +beginfig(1); + numeric len[], ray[]; + color axe[], pos[], fix[], lab[]; + color reflabpos, reflabpoi, lincolor; + picture txt[], dashpatt; + numeric inclang, aberang, sampang, stepang; + numeric squside, sqlevel, ul, outermagpos; + numeric innerray, polesep, fracone, fracsam; + numeric labelscale; + path tmpath, aupath, copath; + + pickup pencircle scaled 1.2pt; + dashpatt = evenly scaled 3; + inclang = 150; + aberang = 17; + sampang = 30; + stepang = 20; + ul = 0.1; + labelscale = 5; + outermagpos = 30ul; + squside = outermagpos; + sqlevel = -20ul; + polesep = 15ul; + fracone = 0.33; + fracsam = 0.86; + ray1 = 10ul; + ray2 = 6ul; + ray3 = 8ul; + ray4 = 1.5ul; + ray5 = 4ul; + ray6 = 3ul; + ray7 = 3.5ul; + ray8 = 2ul; + len3 = 7ul; + len4 = 20ul; + len5 = 3ul; + len7 = 3.5ul; + len8 = 7ul; + lincolor = 0.5background; + + reflabpos = ( -squside, 0, -sqlevel ); + reflabpoi = ( -squside, squside, -sqlevel ); + V1 := (squside,squside,-sqlevel); + V2 := (-squside,squside,-sqlevel); + V3 := (-squside,-squside,-sqlevel); + V4 := (squside,-squside,-sqlevel); +% makeface1(1,2,3,4); +% draw_all_test( false ); + + len1 = (1-fracone)*(outermagpos-ray5-polesep); + pos1 = (-outermagpos,0,0); + len2 = fracone*(outermagpos-ray5-polesep); + pos2 = (len1-outermagpos,0,0); + lab2 = reflabpos; + txt2 = thelabel.top( btex magnet etex scaled labelscale, rp( lab2 ) ); + fix2 = (-outermagpos+0.5len1,0,ray1); + axe3 = ( 0, cosd( inclang ), sind( inclang ) ); + pos3 = -( len3 + len4 + len5 )*axe3; + lab3 = (1-fracone)*reflabpoi+fracone*V1; + txt3 = thelabel.rt( btex rotor etex scaled labelscale, rp( lab3 ) ); + axe4 = axe3; + pos4 = -( len4 + len5 )*axe4; + fix3 = pos4+fracsam*ray3*(0,cosd( inclang -90 ),sind( inclang -90 )); + axe5 = axe3; + pos5 = -( len5 )*axe5; + lab5 = (1-fracone)*reflabpoi+fracone*V2; + txt5 = thelabel.rt( btex sample etex scaled labelscale, rp(lab5) ); + fix5 = fracsam*ray5*(0,cosd( inclang -90 ),sind( inclang -90 )); + + V5 := fracsam*ray5*( sind( sampang ), + cosd( sampang )*cosd( inclang -90 ), + cosd( sampang )*sind( inclang -90 ) ); + V6 := fracsam*ray5*( -sind( sampang ), + cosd( sampang )*cosd( inclang -90 ), + cosd( sampang )*sind( inclang -90 ) ); + V8 := fracsam*ray5*( sind( sampang ), + -cosd( sampang )*cosd( inclang -90 ), + -cosd( sampang )*sind( inclang -90 ) ); + V7 := fracsam*ray5*( -sind( sampang ), + -cosd( sampang )*cosd( inclang -90 ), + -cosd( sampang )*sind( inclang -90 ) ); + axe6 = ( 0, cosd( inclang+aberang ), sind( inclang+aberang ) ); + pos6 = ray1*axe6; + len6 = len4; + axe7 = ( 0, cosd( inclang-aberang ), sind( inclang-aberang ) ); + pos7 = ( ray1 + 0.5len6 )*axe7; + lab6 = fracone*reflabpos+(1-fracone)*V3; + txt6=thelabel.lft(btex camera etex scaled labelscale,rp(lab6)); + fix6 = pos6+len6*axe6; + pos8 = pos7+len7*axe7; + axe8 = axe7; + lab8 = (1-fracone)*reflabpos+fracone*V3; + txt8 = thelabel.lft( btex lamp etex scaled labelscale, rp( lab8 ) ); + fix8 = pos8+len8*axe8; + len9 = len2; + pos9 = (ray5+polesep,0,0); + ray9 = ray2; + ray10 = ray1; + pos10 = pos9+len9*(1,0,0); + len10 = len1; + + getready( "rigorousdisc( 0, true, pos1, ray1, len1*(1,0,0) )", pos1 ); + getready( "whatisthis(pos2,ray1*green,ray1*blue,conorm((-ray5-polesep,0,0)-pos2),ray2/ray1)", pos2 ); + getready( "rigorousdisc( 0, true, pos3, ray3, len3*axe3 )", pos3 ); + getready( "rigorousdisc( 0, true, pos4, ray4, len4*axe4 )", pos4 ); + getready( "rigorousdisc( 0, true, pos5, ray5, len5*axe5 )", pos5 ); + getready( "draw rp(V5)--rp(V6)--rp(V7)--rp(V8)--cycle", black ); + getready( "draw rp(pos6)--rp((0,0,0))--rp(pos7) dashed dashpatt",0.5*pos6); + getready( "rigorousdisc( 0, true, pos6, ray6, len6*axe6 )", pos6 ); + getready( "whatisthis(pos7,ray7*red,-ray7*ncrossprod(red,axe7),conorm(pos8-pos7),ray8/ray7)", pos7 ); + getready( "rigorousdisc( 0, true, pos8, ray8, len8*axe8 );", pos8 ); + getready( "whatisthis(pos9,ray9*green,ray9*blue,conorm(pos10-pos9),ray10/ray9)", pos9 ); + getready( "rigorousdisc( 0, true, pos10, ray10, len10*(1,0,0) )", pos10 ); + doitnow; + draw llcorner txt2--lrcorner txt2--rp(fix2) withcolor lincolor; + draw lrcorner txt3--llcorner txt3--rp(fix3) withcolor lincolor; + draw lrcorner txt5--llcorner txt5--rp(fix5) withcolor lincolor; + draw llcorner txt6--lrcorner txt6--rp(fix6) withcolor lincolor; + draw llcorner txt8--lrcorner txt8--rp(fix8) withcolor lincolor; + draw txt2; + draw txt3; + draw txt5; + draw txt6; + draw txt8; + + produce_auto_scale; +endfig; + +verbatimtex +\end{document} +etex + +end. diff --git a/Master/texmf-dist/doc/metapost/featpost/example/tug04/perspec.mp b/Master/texmf-dist/doc/metapost/featpost/example/tug04/perspec.mp new file mode 100644 index 00000000000..09efea9ab2f --- /dev/null +++ b/Master/texmf-dist/doc/metapost/featpost/example/tug04/perspec.mp @@ -0,0 +1,77 @@ +% perspec.mp +% L. Nobre G. +% 2004 + +%input featpost3D; +%input featpost2D; + +% bash: export TEX=latex +% tcsh: setenv TEX latex + +f := (4,2,2.5); +Spread := 45; + +verbatimtex \documentclass{article} \begin{document} etex + +color psdf, psdu, psdv, rll, rlr, rur, rul, pll, plr, pur, pul; +color pc; +numeric projecplanesize, sizefraction, positfraction, aspectratio, rectsize; +pen realpen, lightpen, projpen, dotpen; +path projecplanepath, realpath; +psdf = 3.1*(0,1,0.37); +projecplanesize = 1.7; +sizefraction = 0.19; +positfraction = 0.65; +aspectratio = 1.0; +rectsize = 0.15; +realpen = pencircle scaled 2.6pt; +lightpen = pencircle scaled 0.55pt; +projpen = pencircle scaled 1.8pt; +dotpen = pencircle scaled 3.8pt; +psdv = N( (-Y(psdf), X(psdf), 0) ); +psdu = ncrossprod( psdf, psdv ); +pll = projecplanesize*(-aspectratio*psdv-psdu); +plr = projecplanesize*(+aspectratio*psdv-psdu); +pur = projecplanesize*(+aspectratio*psdv+psdu); +pul = projecplanesize*(-aspectratio*psdv+psdu); +projecplanepath = rp(pll)--rp(plr)--rp(pur)--rp(pul)--cycle; +pc = positfraction*psdf; +rll = pc+sizefraction*projecplanesize*(-psdv-psdu); +rlr = pc+sizefraction*projecplanesize*(+psdv-psdu); +rur = pc+sizefraction*projecplanesize*(+psdv+psdu); +rul = pc+sizefraction*projecplanesize*(-psdv+psdu); +realpath = rp(rll)--rp(rlr)--rp(rur)--rp(rul)--cycle; + +beginfig(1); + draw projecplanepath withpen realpen; + draw realpath withpen realpen; + draw rp(psdf) withpen lightpen; + drawoptions( withpen lightpen ); + squareangline( psdf, psdv, black, rectsize ); + squareangline( psdf, psdu, black, rectsize ); + drawoptions(); + pair prll, prlr, prur, prul; + LightSource:=psdf; + prll = rp(projectpoint(black,rll)); + prlr = rp(projectpoint(black,rlr)); + prur = rp(projectpoint(black,rur)); + prul = rp(projectpoint(black,rul)); + path projpath; + projpath = prll--prlr--prur--prul--cycle; + draw projpath withpen projpen; + draw prll--rp(psdf) withpen lightpen; + draw prlr--rp(psdf) withpen lightpen; + draw prur--rp(psdf) withpen lightpen; + draw prul--rp(psdf) withpen lightpen; + draw rp(black)--rp(psdf) withpen lightpen; + draw rp(black) withpen dotpen; + draw rp(psdf) withpen dotpen; + label.rt( btex \texttt{f} etex, rp(psdf) ); + label.bot( btex \texttt{viewcentr} etex, rp(black) ); +endfig; + +verbatimtex +\end{document} +etex + +end;
\ No newline at end of file diff --git a/Master/texmf-dist/doc/metapost/featpost/example/tug04/planintersection.mp b/Master/texmf-dist/doc/metapost/featpost/example/tug04/planintersection.mp new file mode 100644 index 00000000000..a3ab18237c4 --- /dev/null +++ b/Master/texmf-dist/doc/metapost/featpost/example/tug04/planintersection.mp @@ -0,0 +1,105 @@ +% planintersection.mp +% L. Nobre G. +% 2004 + +verbatimtex \documentclass{article}\begin{document}{\sffamily etex + +beginfig(1); + f := 0.5*(10,14,5.5); + color a, x, b, c, D, y, w, g, h; + color auxa, auxb, auxc, auxd, auxe, auxf; + pair appear; + numeric wid, hei, alfa, beta, forw, back, labscal; + pen thedotpen, borderpen, normalpen; + picture dasha, dashb, labx, laba, labb, labc, labD; + path outerb, innerb, apath, bpath; + wid = 1.5; + hei = 1; + forw = 1.5; + back = 1.5; + alfa = -10; + beta = -30; + labscal = 2.8; + labeloffset := 8pt; + ahangle := 30; + ahlength := 10pt; + a = ( 0.7*forw, 0.15*wid, 0.3*hei ); + b = ( -0.7*back, 0.5*wid, 0.8*hei ); + c = ( 0, 0.7*wid, 0.5*hei ); + D = ( cosd( alfa )*cosd( beta ), sind( alfa )*cosd( beta ), sind( beta ) ); + labx = btex $\vec{x}$ etex scaled labscal; + laba = btex $\vec{a}$ etex scaled labscal; + labb = btex $\vec{b}$ etex scaled labscal; + labc = btex $\vec{c}$ etex scaled labscal; + labD = btex $\vec{D}$ etex scaled labscal; + thedotpen = pencircle scaled 4pt; + borderpen = pencircle scaled 2pt; + normalpen = pencircle scaled 1.5pt; + dasha = evenly scaled 2; +% dashb = dashpattern( on 7pt off 5pt on 7pt ); + dashb = withdots; + apath = rp((X(a),Y(a),0))--rp(a)--rp((X(a),0,Z(a))); + bpath = rp((X(b),Y(b),0))--rp(b)--rp((X(b),0,Z(b))); + auxa = ( forw, 0, 0 ); + auxb = ( forw, 0, hei ); + auxc = ( -back, 0, hei ); + auxd = ( -back, 0, 0 ); + auxe = ( -back, wid, 0 ); + auxf = ( forw, wid, 0 ); + outerb = rp(auxa)--rp(auxb)--rp(auxc)--rp(auxd)--rp(auxe)--rp(auxf)--cycle; + draw outerb withpen borderpen; + draw rp(auxa)--rp(auxd) withpen borderpen; + + draw bpath dashed dasha withpen normalpen; + draw rp(b) withpen thedotpen; + label.top( labb, rp(b) ); + + draw rp(a)--rp(b) withpen normalpen; + + cdotprod( y-c, D ) = 0; + cdotprod( y-black, green ) = 0; + cdotprod( y-black, blue ) = 0; + + cdotprod( w-c, D ) = 0; + cdotprod( w-black, green ) = 0; + cdotprod( w-hei*blue, blue ) = 0; + + cdotprod( g-c, D ) = 0; + cdotprod( g-wid*green, green ) = 0; + cdotprod( g-hei*blue, blue ) = 0; + + cdotprod( h-c, D ) = 0; + cdotprod( h-wid*green, green ) = 0; + cdotprod( h-black, blue ) = 0; + + innerb = rp(y)--rp(w)--rp(g)--rp(h)--cycle; + unfill innerb; + draw innerb withpen borderpen; + + draw apath dashed dasha withpen normalpen; + draw rp(a) withpen thedotpen; + label.top( laba, rp(a) ); + + x = whatever[a,b]; + cdotprod( x-c, D ) = 0; + draw rp(x) withpen thedotpen; + label.top( labx, rp(x) ); + + draw rp(a)--rp(x) withpen normalpen; + draw rp(x)--rp(b) withpen normalpen dashed dashb; + + draw rp(c) withpen thedotpen; + drawarrow rp(c)--rp(c+0.7*D) withpen borderpen; + label.top( labc, rp(c) ); + + label.bot( labD, rp(c+0.5*D) ); + + draw rp(x)--rp(c) dashed dasha withpen normalpen; + drawoptions( withpen normalpen ); + squareangline( x, c+D, c, 0.08*wid ); + +endfig; + +verbatimtex }\end{document} etex + +end; diff --git a/Master/texmf-dist/doc/metapost/featpost/example/tug04/revolvers.mp b/Master/texmf-dist/doc/metapost/featpost/example/tug04/revolvers.mp new file mode 100644 index 00000000000..41fd7a9c4e2 --- /dev/null +++ b/Master/texmf-dist/doc/metapost/featpost/example/tug04/revolvers.mp @@ -0,0 +1,112 @@ +% revolvers.mp +% L. Nobre G. +% 2004 + +verbatimtex \documentclass{article}\begin{document}{\sffamily etex + +def posang( expr Angul ) = + rp( green*cosd( Angul ) + blue*sind( Angul ) ) +enddef; + +beginfig(1); + f := (3,5,4); + numeric labscal; + picture labr, labc, laba, labum, labdo, labtr, labqu, labci; + labscal = 2; + ahlength := 8pt; + ahangle := 30; + labc = btex $\vec{c}$ etex scaled labscal; + laba = btex $\vec{A}$ etex scaled labscal; + labr = btex $R$ etex scaled labscal; + labum= btex 1 etex scaled labscal; + labdo= btex 2 etex scaled labscal; + labtr= btex 3 etex scaled labscal; + labqu= btex 4 etex scaled labscal; + labci= btex 5 etex scaled labscal; + drawoptions( withpen pencircle scaled 1.7pt withcolor 0.65blue ); + tropicalglobe( 5, black, 1, blue ); + drawoptions( withpen pencircle scaled 1.3pt ); + drawdblarrow rp(black)--rp(red); + label.top( labr, rp((0.5,0,0)) ); + drawarrow rp(black)--rp(blue); + label.rt( laba, rp((0,0,0.5)) ); + dotlabel.lrt( labc, rp(black) ); + dotlabel.rt( labum, posang(-72) ); + dotlabel.top( labdo, posang(-36) ); + dotlabel.top( labtr, posang(0) ); + dotlabel.top( labqu, posang(36) ); + dotlabel.top( labci, posang(72) ); +endfig; + +beginfig(2); + f := (3,5,5.7); + numeric labscal; + picture labri, labc, laba, labro; + labscal = 2; + ahlength := 8pt; + ahangle := 30; + labc = btex $\vec{c}$ etex scaled labscal; + laba = btex $\vec{A}$ etex scaled labscal; + labri= btex $R_i$ etex scaled labscal; + labro= btex $R_o$ etex scaled labscal; + drawoptions( withpen pencircle scaled 1.7pt withcolor 0.65blue ); + rigorousdisc( 0.5, true, black, 1, 0.85*blue ); + drawoptions( withpen pencircle scaled 1.3pt ); + drawdblarrow rp(black)--rp(red); + label.lrt( labro, rp(0.5*red) ); + drawdblarrow rp(black+0.85*blue)--rp(0.5*green+0.85*blue); + label.urt( labri, rp(0.25*green+0.85*blue) ); + drawarrow rp(black)--rp(0.85*blue); + label.ulft( laba, rp((0,0,0.5)) ); + dotlabel.rt( labc, rp(black) ); +endfig; + +beginfig(3); + f := (3,2.05,2.65); + numeric labscal, bray, sray; + picture labrb, labc, laba, labrs; + labscal = 2; + ahlength := 8pt; + ahangle := 30; + bray = 0.7; + sray = 0.4; + labc = btex $\vec{c}$ etex scaled labscal; + laba = btex $\vec{A}$ etex scaled labscal; + labrb= btex $R_b$ etex scaled labscal; + labrs= btex $R_s$ etex scaled labscal; + drawoptions( withpen pencircle scaled 1.7pt withcolor 0.65blue ); + smoothtorus( black, blue, bray, sray ); + drawoptions( withpen pencircle scaled 1.3pt ); + draw goodcirclepath( bray*red, green, sray ) dashed evenly; + drawdblarrow rp(black)--rp(bray*red); + label.ulft( labrb, rp(0.5*bray*red) ); + drawdblarrow rp(bray*red+sray*blue)--rp(bray*red); + label.llft( labrs, rp(bray*red+0.5*sray*blue) ); + drawarrow rp(black)--rp(sray*blue); + label.rt( laba, rp((0,0,0.5*sray)) ); + dotlabel.lrt( labc, rp(black) ); +endfig; + +beginfig(4); + f := (3,5,4); + numeric labscal; + picture labr, labc, laba; + labscal = 2; + ahlength := 8pt; + ahangle := 30; + labc = btex $\vec{c}$ etex scaled labscal; + laba = btex $\vec{A}$ etex scaled labscal; + labr = btex $R$ etex scaled labscal; + drawoptions( withpen pencircle scaled 1.7pt withcolor 0.65blue ); + spatialhalfsfear( black, blue, 1 ); + drawoptions( withpen pencircle scaled 1.3pt ); + drawdblarrow rp(black)--rp(red); + label.ulft( labr, rp(0.5*red) ); + drawarrow rp(black)--rp(0.4*blue); + label.rt( laba, rp((0,0,0.2)) ); + dotlabel.lrt( labc, rp(black) ); +endfig; + +verbatimtex }\end{document} etex + +end; diff --git a/Master/texmf-dist/doc/metapost/featpost/example/tug04/tangency2D.mp b/Master/texmf-dist/doc/metapost/featpost/example/tug04/tangency2D.mp new file mode 100644 index 00000000000..8682c43bc0d --- /dev/null +++ b/Master/texmf-dist/doc/metapost/featpost/example/tug04/tangency2D.mp @@ -0,0 +1,56 @@ +% intersection2D.mp +% L. Nobre G. +% 2004 + +verbatimtex \documentclass{article}\begin{document}{\sffamily etex + +beginfig(1); + numeric u, r, d; + pair Aa, Ab, Ba, Bb, Ca, Cb, Da, Db, Ea, Eb, Or, Kn; + pen dotpen, penpen; + color knowncolour, notknowncol; + picture kn, un, rl; + u = 4mm; + Aa = (5u,4u); + Ab = (3u,2u); + Ba = (13u,5u); + Bb = 0.5[Aa,Ab]; + r = abs( Aa - Ab ); + d = abs( Aa - Ba ) +-+ r; + Ea = radialcross( Aa, r, Ba, d, true ); + Eb = radialcross( Aa, r, Ba, d, false ); + Ca = 1.4[Ba,Ea]; + Cb = 1.15[Ea,Ba]; + Da = 1.5[Ba,Eb]; + Db = 1.1[Eb,Ba]; + Kn = (0,1u); + Or = (10u,1u); + dotpen = pencircle scaled 0.5u; + penpen = pencircle scaled 0.2u; + knowncolour = blue; + notknowncol = red; + kn = btex given etex; + un = btex unknown etex; + rl = btex $R$ etex; + draw fullcircle scaled 2r shifted Aa; + draw Ca--Cb; + draw Da--Db dashed evenly; + drawarrow Aa--Ab; + drawoptions( withpen dotpen withcolor knowncolour ); + draw Aa; + draw Ba; + draw Kn+Or; + drawoptions( withcolor knowncolour ); + label.ulft( rl, Bb ); + drawoptions( withpen dotpen withcolor notknowncol ); + draw Ea; + draw Eb; + draw Or; + drawoptions(); + label.rt( kn, Kn+Or ); + label.rt( un, Or ); +endfig; + +verbatimtex }\end{document} etex + +end; |