diff options
author | Karl Berry <karl@freefriends.org> | 2006-01-11 23:49:34 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2006-01-11 23:49:34 +0000 |
commit | 0bf7dc87971bc4f426fb6abdd893a26a6ae65d0b (patch) | |
tree | 4d53bded23dec78efc81b258f039469fa2832271 /Master/texmf-dist/source/metafont/mftoeps/m2esamp | |
parent | d780c57e68c80655669a3b01af46b9978f5698ef (diff) |
trunk/Master/texmf-dist/source/metafont
git-svn-id: svn://tug.org/texlive/trunk@116 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/metafont/mftoeps/m2esamp')
20 files changed, 587 insertions, 0 deletions
diff --git a/Master/texmf-dist/source/metafont/mftoeps/m2esamp/0m2esamp.doc b/Master/texmf-dist/source/metafont/mftoeps/m2esamp/0m2esamp.doc new file mode 100644 index 00000000000..fd27e761c4a --- /dev/null +++ b/Master/texmf-dist/source/metafont/mftoeps/m2esamp/0m2esamp.doc @@ -0,0 +1,35 @@ +This file belongs to the MFTOEPS package. + +The directory M2ESAMP contains the following files: + 0M2ESAMP.DOC this file + CLIPCIR.MF a bogus application of clipping: a variation of CLIPSQR.MF + CLIPSQR.MF a bogus application of clipping: Sierpi\'nski's carpet + HOLECLIP.MF a nearly trivial example + HOLECLIP.TEX an example of using HOLECLIP.EPS + HOLEFILL.MF a nearly trivial example + POLYGONS.MF input for SAMPLE*.MF files + RECTAN.MF a truly trivial example + RECTAN_.BAT DOS batch file for RECTAN.MF (generates RECTAN.EPS) + SAMPLE1A.MF less trivial example + SAMPLE1B.MF modification of SAMPLE1A.MF + SAMPLE2A.MF regular polygon with circumscribed ``flex'' polygon + SAMPLE2B.MF ditto---a variation + SAMPLE2C.MF ditto---a variation + SAMPLE2D.MF ditto---a variation + SAMPLE2E.MF ditto---a variation + SAMPLE3.MF four pictures (``flowers'') + SAMPLE4.MF four pictures (``galaxies'') + SAMPLE5.MF four pictures (``shells'') + STEREO.MF two pictures that can be used for + constructing a simple stereogram + +You are entitled to do with these files whatever you wish. If you alter +a file, however, please remove the comment line: + + `This file belongs to the MFTOEPS package.' + +in order to avoid mess. + +----------------------------------------------------------------------------- + +END OF THE 0M2ESAMP.DOC FILE diff --git a/Master/texmf-dist/source/metafont/mftoeps/m2esamp/clipcir.mf b/Master/texmf-dist/source/metafont/mftoeps/m2esamp/clipcir.mf new file mode 100644 index 00000000000..50cf091764a --- /dev/null +++ b/Master/texmf-dist/source/metafont/mftoeps/m2esamp/clipcir.mf @@ -0,0 +1,39 @@ +%%%% +%%%% This file belongs to the MFTOEPS package. +%%%% +% --- +% CLIPCIR.MF +% --- +input mftoeps; eps_mode_setup; +% --- +def ^ = ** enddef; % syntactic sugar +primarydef i // n = % ditto + (if n=0: 0 else: i/n fi) +% why not to divide by 0? +enddef; +def shifted_accordingly(expr i,j,n,D)= + shifted ((i//n)[1/2D,w-1/2D],(j//n)[1/2D,w-1/2D]) +enddef; +% --- +w#=16mm#; h#=16mm#; define_pixels(w,h); +for N:=1,2,3,4: % 5, 6, ..., infinity + set_BB 0,0,w,h; + write_preamble jobname & decimal(N); + D:=2w; + for n:=0 for q:=1 upto N-1: , 2^q-1 endfor: +% i.e., |for n:=0, 2^1-1, 2^2-1, ..., 2^(N-1)-1:| + path p[], q[]; D:=1/2D; k:=-1; + for i:=0 upto n: for j:=0 upto n: + k:=k+1; + p[k]=fullcircle scaled D + shifted_accordingly(i,j,n,D); + q[k]=reverse fullcircle scaled 1/3D + shifted_accordingly(i,j,n,D); + endfor; endfor; + clip_C p0, q0 for i:=1 upto k: , p[i], q[i] endfor; + endfor; + fill_C unitsquare scaled w; + write_postamble; +endfor; +% --- +end. diff --git a/Master/texmf-dist/source/metafont/mftoeps/m2esamp/clipsqu.mf b/Master/texmf-dist/source/metafont/mftoeps/m2esamp/clipsqu.mf new file mode 100644 index 00000000000..266ec217ae8 --- /dev/null +++ b/Master/texmf-dist/source/metafont/mftoeps/m2esamp/clipsqu.mf @@ -0,0 +1,39 @@ +%%%% +%%%% This file belongs to the MFTOEPS package. +%%%% +% --- +% CLIPSQU.MF (Sierpi\'nski's carpet) +% --- +input mftoeps; eps_mode_setup; +% --- +def ^ = ** enddef; % syntactic sugar +primarydef i // n = % ditto + (if n=0: 0 else: i/n fi) +% why not to divide by 0? +enddef; +def shifted_accordingly(expr i,j,n,D)= + shifted ((i//n)[0,w-D],(j//n)[0,w-D]) +enddef; +% --- +w#=16mm#; h#=16mm#; define_pixels(w,h); +for N:=1,2,3: % 4, 5, 6, ..., infinity + set_BB 0,0,w,h; + write_preamble jobname & decimal(N); + D:=3w; + for n:=0 for q:=1 upto N-1: , 3^q-1 endfor: +% i.e., |for n:=0, 3^1-1, 3^2-1, ..., 3^(N-1)-1:| + path p[], q[]; D:=1/3D; k:=-1; + for i:=0 upto n: for j:=0 upto n: + k:=k+1; + p[k]=unitsquare scaled D + shifted_accordingly(i,j,n,D); + q[k]=reverse unitsquare scaled 1/3D + shifted (1/3D,1/3D) shifted_accordingly(i,j,n,D); + endfor; endfor; + clip_C p0, q0 for i:=1 upto k: , p[i], q[i] endfor; + endfor; + fill_C unitsquare scaled w; + write_postamble; +endfor; +% --- +end. diff --git a/Master/texmf-dist/source/metafont/mftoeps/m2esamp/holeclip.mf b/Master/texmf-dist/source/metafont/mftoeps/m2esamp/holeclip.mf new file mode 100644 index 00000000000..0b5850a8892 --- /dev/null +++ b/Master/texmf-dist/source/metafont/mftoeps/m2esamp/holeclip.mf @@ -0,0 +1,20 @@ +%%%% +%%%% This file belongs to the MFTOEPS package. +%%%% +% --- +% HOLECLIP.MF---a nearly trivial example +% --- +input mftoeps; eps_mode_setup; +w#=4cm#; h#=2cm#; define_pixels(w,h); +set_BB origin, (w,h); +write_preamble jobname; + fix_fill_cmyk 0,0,0,.25; % 25 percent of black + for oper:="draw_C", "clip_C": + scantokens oper +% outer edge: + fullcircle xscaled w yscaled h shifted (.5w,.5h), +% inner edge: + reverse fullcircle xscaled .7w yscaled .7h shifted (.5w,.5h); + endfor +write_postamble; +end. diff --git a/Master/texmf-dist/source/metafont/mftoeps/m2esamp/holeclip.tex b/Master/texmf-dist/source/metafont/mftoeps/m2esamp/holeclip.tex new file mode 100644 index 00000000000..8f314a6ba89 --- /dev/null +++ b/Master/texmf-dist/source/metafont/mftoeps/m2esamp/holeclip.tex @@ -0,0 +1,22 @@ +\input epsf + +\centerline{ +\setbox0\vbox{ + \hbox{It is a clipped text.}\hbox{It is a clipped text.} + \hbox{It is a clipped text.}\hbox{It is a clipped text.} + \vss % no depth +}% +\special{ps: + /mftoeps_save save def % the snapshoot of a current stage + /mftoeps_bhook {/q {} def /Q {} def} def + /CM matrix currentmatrix def + currentpoint /cy exch def /cx exch def + /ori@endspecial /@endspecial load def + /@endspecial {} def % neutralize /@endspecial locally +} +\hbox to\wd0{\hss\epsfysize\ht0\epsffile{holeclip.eps}\hss}% perform clipping +\special{ps:cx cy moveto CM setmatrix}\llap{\copy0}% set the text +\special{ps:ori@endspecial mftoeps_save restore}% restore a previous stage +} + +\end diff --git a/Master/texmf-dist/source/metafont/mftoeps/m2esamp/holefill.mf b/Master/texmf-dist/source/metafont/mftoeps/m2esamp/holefill.mf new file mode 100644 index 00000000000..7478df585de --- /dev/null +++ b/Master/texmf-dist/source/metafont/mftoeps/m2esamp/holefill.mf @@ -0,0 +1,21 @@ +%%%% +%%%% This file belongs to the MFTOEPS package. +%%%% +% --- +% HOLEFILL.MF---a nearly trivial example +% --- +input mftoeps; eps_mode_setup; +w#=4cm#; h#=2cm#; define_pixels(w,h); +set_BB origin, (w,h); +write_preamble jobname; + fix_fill_cmyk 0,0,0,.25; % 25 percent of black + fix_line_width 1pt; + for oper:="draw_C", "fill_C": + scantokens oper +% outer edge: + fullcircle xscaled w yscaled h shifted (.5w,.5h), +% inner edge: + reverse fullcircle xscaled .7w yscaled .7h shifted (.5w,.5h); + endfor +write_postamble; +end. diff --git a/Master/texmf-dist/source/metafont/mftoeps/m2esamp/polygons.mf b/Master/texmf-dist/source/metafont/mftoeps/m2esamp/polygons.mf new file mode 100644 index 00000000000..29d370d8ee6 --- /dev/null +++ b/Master/texmf-dist/source/metafont/mftoeps/m2esamp/polygons.mf @@ -0,0 +1,32 @@ +%%%% +%%%% This file belongs to the MFTOEPS package. +%%%% +% --- +% POLYGONS.MF +% --- +vardef regular_polygon(expr n) = +% |n| is the number of vertices; the diameter of the circumscribed circle +% is equal to 1, its center is in the origin + (up % first vertex + for i:=1 upto n-1: + -- (up rotated (i*(360/n))) % next vertices + endfor + -- cycle) scaled .5 +enddef; +vardef flex_polygon(expr n,a,b) = +% |n| is the number of vertices, |a|, |b| are the angles (at vertices) +% between a tangent to a ``flex side'' and the corresponding secant + save zz; pair zz[ ]; % array of vertices + for i:=0 upto n-1: + zz[i]:=up rotated (i*(360/n)); + endfor + (zz[0] {(zz[1]-zz[0]) rotated a} + for i:=1 upto n-1: + .. {(zz[i]-zz[i-1]) rotated b} + zz[i] + {(zz[(i+1) mod n]-zz[i]) rotated a} + endfor + .. {(zz[0]-zz[n-1]) rotated b} cycle) + scaled .5 +enddef; +endinput diff --git a/Master/texmf-dist/source/metafont/mftoeps/m2esamp/rectan.mf b/Master/texmf-dist/source/metafont/mftoeps/m2esamp/rectan.mf new file mode 100644 index 00000000000..63802ab54d0 --- /dev/null +++ b/Master/texmf-dist/source/metafont/mftoeps/m2esamp/rectan.mf @@ -0,0 +1,19 @@ +%%%% +%%%% This file belongs to the MFTOEPS package. +%%%% +% --- +% RECTAN.MF---a trivial example +% --- +input mftoeps; +EPS_mode_setup; +beginchar(48, % ASCII code (unimportant) + 2cm#, % width + 1cm#, % height + 0cm# % depth + ); + set_BB 0,-d,w,h; % coordinates of the corners of the bounding box + write_preamble "rectan"; + fill_C unitsquare xscaled w yscaled h; + write_postamble; +endchar; +end. diff --git a/Master/texmf-dist/source/metafont/mftoeps/m2esamp/rectan_.bat b/Master/texmf-dist/source/metafont/mftoeps/m2esamp/rectan_.bat new file mode 100644 index 00000000000..b344676ca6e --- /dev/null +++ b/Master/texmf-dist/source/metafont/mftoeps/m2esamp/rectan_.bat @@ -0,0 +1,4 @@ +::
+:: This file belongs to the MFTOEPS package.
+::
+call m2e rectan
diff --git a/Master/texmf-dist/source/metafont/mftoeps/m2esamp/sample1a.mf b/Master/texmf-dist/source/metafont/mftoeps/m2esamp/sample1a.mf new file mode 100644 index 00000000000..cd34bd33077 --- /dev/null +++ b/Master/texmf-dist/source/metafont/mftoeps/m2esamp/sample1a.mf @@ -0,0 +1,24 @@ +%%%% +%%%% This file belongs to the MFTOEPS package. +%%%% +% --- +% SAMPLE1A.MF +% --- +input polygons; % the definition of the |regular_polygon| function +input mftoeps; +eps_mode_setup; +beginchar(0,2cm#,2cm#,0); + path P[ ]; % ,,room'' for polygons + N:=25; % the number of polygons +% preparing: + for i:=1 upto N: + P[i]:=regular_polygon(7) + scaled ((i/N)**2*w) rotated (i/N*360) shifted (.5w,.5h); + endfor; +% exporting: + find_BB for i:=1 upto N-1: P[i], endfor P[N]; + write_preamble jobname; + draw_C for i:=1 upto N-1: P[i], endfor P[N]; + write_postamble; +endchar; +end. diff --git a/Master/texmf-dist/source/metafont/mftoeps/m2esamp/sample1b.mf b/Master/texmf-dist/source/metafont/mftoeps/m2esamp/sample1b.mf new file mode 100644 index 00000000000..499650af1fa --- /dev/null +++ b/Master/texmf-dist/source/metafont/mftoeps/m2esamp/sample1b.mf @@ -0,0 +1,28 @@ +%%%% +%%%% This file belongs to the MFTOEPS package. +%%%% +% --- +% SAMPLE1B.MF +% --- +input polygons; % the definition of the |regular_polygon| function +input mftoeps; +eps_mode_setup; +beginchar(0,2cm#,2cm#,0); + path P[ ]; % ,,room'' for polygons + N:=25; % the number of polygons +% preparing: + for i:=1 upto N: + P[i]:=regular_polygon(7) + scaled ((i/N)**2*w) rotated (i/N*360) shifted (.5w,.5h); + endfor; +% exporting: + find_BB for i:=1 upto N-1: P[i], endfor P[N]; + write_preamble jobname; +% Adobe Illustrator likes to control the orientation of paths + fill_C + for i:=1 upto N-1: + if odd(N-i+1): pos_turn else: neg_turn fi P[i], + endfor pos_turn P[N]; + write_postamble; +endchar; +end. diff --git a/Master/texmf-dist/source/metafont/mftoeps/m2esamp/sample2a.mf b/Master/texmf-dist/source/metafont/mftoeps/m2esamp/sample2a.mf new file mode 100644 index 00000000000..ef34b34ea84 --- /dev/null +++ b/Master/texmf-dist/source/metafont/mftoeps/m2esamp/sample2a.mf @@ -0,0 +1,23 @@ +%%%% +%%%% This file belongs to the MFTOEPS package. +%%%% +% --- +% SAMPLE2A.MF +% --- +input polygons; +input mftoeps; +eps_mode_setup; +beginchar(0,16mm#,16mm#,0); + path P[ ]; % ``room'' for two polygons +% preparing: + P[1]:=regular_polygon(7) scaled w shifted (.5w,.5h); + P[2]:=flex_polygon(7,0,0) scaled w shifted (.5w,.5h); +% exporting: + find_BB P[1], P[2]; + write_preamble jobname; + fix_fill_cmyk 0,0,0,.25; % 25 percent of black + fix_line_width 1pt; + fill_C P1; draw_C P2; + write_postamble; +endchar; +end. diff --git a/Master/texmf-dist/source/metafont/mftoeps/m2esamp/sample2b.mf b/Master/texmf-dist/source/metafont/mftoeps/m2esamp/sample2b.mf new file mode 100644 index 00000000000..e6d82b3175e --- /dev/null +++ b/Master/texmf-dist/source/metafont/mftoeps/m2esamp/sample2b.mf @@ -0,0 +1,23 @@ +%%%% +%%%% This file belongs to the MFTOEPS package. +%%%% +% --- +% SAMPLE2B.MF +% --- +input polygons; +input mftoeps; +eps_mode_setup; +beginchar(0,16mm#,16mm#,0); + path P[ ]; % ``room'' for two polygons +% preparing: + P[1]:=regular_polygon(7) scaled w shifted (.5w,.5h); + P[2]:=flex_polygon(7,-180/7,180/7) scaled w shifted (.5w,.5h); +% exporting: + find_BB P[1], P[2]; + write_preamble jobname; + fix_fill_cmyk 0,0,0,.25; % 25 percent of black + fix_line_width 1pt; + fill_C P1; draw_C P2; + write_postamble; +endchar; +end. diff --git a/Master/texmf-dist/source/metafont/mftoeps/m2esamp/sample2c.mf b/Master/texmf-dist/source/metafont/mftoeps/m2esamp/sample2c.mf new file mode 100644 index 00000000000..2a2ebffb4fb --- /dev/null +++ b/Master/texmf-dist/source/metafont/mftoeps/m2esamp/sample2c.mf @@ -0,0 +1,23 @@ +%%%% +%%%% This file belongs to the MFTOEPS package. +%%%% +% --- +% SAMPLE2C.MF +% --- +input polygons; +input mftoeps; +eps_mode_setup; +beginchar(0,16mm#,16mm#,0); + path P[ ]; % ``room'' for two polygons +% preparing: + P[1]:=regular_polygon(7) scaled w shifted (.5w,.5h); + P[2]:=flex_polygon(7,45,45) scaled w shifted (.5w,.5h); +% exporting: + find_BB P[1], P[2]; + write_preamble jobname; + fix_fill_cmyk 0,0,0,.25; % 25 percent of black + fix_line_width 1pt; + fill_C P1; draw_C P2; + write_postamble; +endchar; +end. diff --git a/Master/texmf-dist/source/metafont/mftoeps/m2esamp/sample2d.mf b/Master/texmf-dist/source/metafont/mftoeps/m2esamp/sample2d.mf new file mode 100644 index 00000000000..8fe9f9bfb5f --- /dev/null +++ b/Master/texmf-dist/source/metafont/mftoeps/m2esamp/sample2d.mf @@ -0,0 +1,23 @@ +%%%% +%%%% This file belongs to the MFTOEPS package. +%%%% +% --- +% SAMPLE2D.MF +% --- +input polygons; +input mftoeps; +eps_mode_setup; +beginchar(0,16mm#,16mm#,0); + path P[ ]; % ``room'' for two polygons +% preparing: + P[1]:=regular_polygon(7) scaled w shifted (.5w,.5h); + P[2]:=flex_polygon(7,-45,45) scaled w shifted (.5w,.5h); +% exporting: + find_BB P[1], P[2]; + write_preamble jobname; + fix_fill_cmyk 0,0,0,.25; % 25 percent of black + fix_line_width 1pt; + fill_C P1; draw_C P2; + write_postamble; +endchar; +end. diff --git a/Master/texmf-dist/source/metafont/mftoeps/m2esamp/sample2e.mf b/Master/texmf-dist/source/metafont/mftoeps/m2esamp/sample2e.mf new file mode 100644 index 00000000000..9411c1db405 --- /dev/null +++ b/Master/texmf-dist/source/metafont/mftoeps/m2esamp/sample2e.mf @@ -0,0 +1,23 @@ +%%%% +%%%% This file belongs to the MFTOEPS package. +%%%% +% --- +% SAMPLE2E.MF +% --- +input polygons; +input mftoeps; +eps_mode_setup; +beginchar(0,16mm#,16mm#,0); + path P[ ]; % ``room'' for two polygons +% preparing: + P[1]:=regular_polygon(7) scaled w shifted (.5w,.5h); + P[2]:=flex_polygon(7,45,-45) scaled w shifted (.5w,.5h); +% exporting: + find_BB P[1], P[2]; + write_preamble jobname; + fix_fill_cmyk 0,0,0,.25; % 25 percent of black + fix_line_width 1pt; + fill_C P1; draw_C P2; + write_postamble; +endchar; +end. diff --git a/Master/texmf-dist/source/metafont/mftoeps/m2esamp/sample3.mf b/Master/texmf-dist/source/metafont/mftoeps/m2esamp/sample3.mf new file mode 100644 index 00000000000..c58756e37a6 --- /dev/null +++ b/Master/texmf-dist/source/metafont/mftoeps/m2esamp/sample3.mf @@ -0,0 +1,53 @@ +%%%% +%%%% This file belongs to the MFTOEPS package. +%%%% +% --- +% SAMPLE3.MF +% --- +input mftoeps; +input polygons; +eps_mode_setup; +% unpercent the following line if the coloured version is needed +% coloured:=1; +% --- +def write_paths(expr name) = + find_BB elem_path1; + write_preamble name; + for i:=1 upto objects: + coeff:= + if objects=1: 0 else: .5(1-cosd(((i-1)/(objects-1))[alpha1,alpha2])) fi; + fix_fill_cmyk forsuffixes $:=cyan, magenta, yellow: coeff[$1,$2], endfor + coeff[black1,black2]; + fill_C elem_path[i]; + endfor; + write_postamble; +enddef; +% --- +ch_max:=3; +% --- +for ch:=0 upto ch_max: + beginchar(char(ASCII("a")+ch), 1in#, 1in#, 0); + path elem_path[\\]; + objects:=100; transitions:=3; + sca1:=w; sca2:=.02w; + rot1:=0; rot2:=(ch/ch_max)[25,180]; + skew1:=45; skew2:=0; + alpha1:=0; alpha2:=transitions*360; + if known coloured: + cyan1:=0; magenta1:=0; yellow1:=1; black1:=0; + cyan2:=0.35294; magenta2:=0.8353; yellow2:=0.8353; black2:=0; % brown + else: + cyan1:=0; magenta1:=0; yellow1:=0; black1:=0.7; + cyan2:=0; magenta2:=0; yellow2:=0; black2:=0.15; + fi + for i:=1 upto objects: + coeff:=if objects=1: 0 else: (i-1)/(objects-1) fi; + elem_path[i]:=flex_polygon(5,coeff[skew1,skew2],coeff[skew1,skew2]) + scaled (coeff[sca1,sca2]) + rotated (coeff[rot1,rot2]) shifted (.5w,.5h); + endfor + write_paths(jobname & char(ASCII("a")+ch)); + endchar; +endfor +% --- +end. diff --git a/Master/texmf-dist/source/metafont/mftoeps/m2esamp/sample4.mf b/Master/texmf-dist/source/metafont/mftoeps/m2esamp/sample4.mf new file mode 100644 index 00000000000..37acefb4d05 --- /dev/null +++ b/Master/texmf-dist/source/metafont/mftoeps/m2esamp/sample4.mf @@ -0,0 +1,45 @@ +%%%% +%%%% This file belongs to the MFTOEPS package. +%%%% +% --- +% SAMPLE4.MF +% --- +input mftoeps; +input polygons; +eps_mode_setup; +% --- +def write_paths(expr name) = + find_BB elem_path1; + write_preamble name; + for i:=1 upto objects: + coeff:= + if objects=1: 0 else: .5(1-cosd(((i-1)/(objects-1))[alpha1,alpha2])) fi; + fix_fill_cmyk forsuffixes $:=cyan, magenta, yellow: coeff[$1,$2], endfor + coeff[black1,black2]; + fill_C elem_path[i]; + endfor; + write_postamble; +enddef; +% --- +ch_max:=3; +% --- +for ch:=0 upto ch_max: + beginchar(char(ASCII("a")+ch), 1in#, 1in#, 0); + path elem_path[\\]; + objects:=100; transitions:=.5; % regular 2 + sca1:=w; sca2:=.05w; + rot1:=0; rot2:=(ch/ch_max)[0,-360]; + alpha1:=0; alpha2:=transitions*360; + cyan1:=0; magenta1:=0; yellow1:=0; black1:=0.05; + cyan2:=0; magenta2:=0; yellow2:=0; black2:=0.9; + for i:=1 upto objects: + coeff:=if objects=1: 0 else: (i-1)/(objects-1) fi; + elem_path[i]:= flex_polygon(6,(coeff**.1)[-30,0],(coeff**.1)[30,0]) + scaled (coeff[sca1,sca2]) + rotated (coeff[rot1,rot2]+30) shifted (.5w,.5h); + endfor + write_paths(jobname & char(ASCII("a")+ch)); + endchar; +endfor +% --- +end. diff --git a/Master/texmf-dist/source/metafont/mftoeps/m2esamp/sample5.mf b/Master/texmf-dist/source/metafont/mftoeps/m2esamp/sample5.mf new file mode 100644 index 00000000000..c7e0c7742b3 --- /dev/null +++ b/Master/texmf-dist/source/metafont/mftoeps/m2esamp/sample5.mf @@ -0,0 +1,38 @@ +%%%% +%%%% This file belongs to the MFTOEPS package. +%%%% +% --- +% SAMPLE5.MF +% --- +input mftoeps; +input polygons; +eps_mode_setup; +% --- +def soft_polygon (expr n,a) = flex_polygon(n,a-180/n,a+180/n) enddef; +% --- +def write_paths(expr name) = + find_BB for i:=1 upto objects: elem_path[i], endfor elem_path[objects]; + write_preamble name; + fix_line_width .2pt; for i:=1 upto objects: draw_C elem_path[i]; endfor; + write_postamble; +enddef; +% --- +ch_max:=3; +% --- +for ch:=0 upto ch_max: + beginchar(char(ASCII("a")+ch), 1in#, 1in#, 0); + path elem_path[\\]; + objects:=17; + sca1:=.85w; sca2:=.02w; + rot1:=0; rot2:=(ch/ch_max)[5,120]; + skew1:=(ch/ch_max)[60,30]; skew2:=0; + for i:=1 upto objects: + coeff:=if objects=1: 0 else: (i-1)/(objects-1) fi; + elem_path[i]:= soft_polygon(7,coeff[skew1,skew2]) + scaled (coeff[sca1,sca2]) rotated (coeff[rot1,rot2]+30) shifted (.5w,.5h); + endfor + write_paths(jobname & char(ASCII("a")+ch)); + endchar; +endfor +% --- +end. diff --git a/Master/texmf-dist/source/metafont/mftoeps/m2esamp/stereo.mf b/Master/texmf-dist/source/metafont/mftoeps/m2esamp/stereo.mf new file mode 100644 index 00000000000..c3e85ec53fe --- /dev/null +++ b/Master/texmf-dist/source/metafont/mftoeps/m2esamp/stereo.mf @@ -0,0 +1,53 @@ +%%%% +%%%% This file belongs to the MFTOEPS package. +%%%% +% --- +% STEREO.MF +% --- +input mftoeps; +input polygons; +eps_mode_setup; +% --- +def soft_polygon (expr n,a) = flex_polygon(n,a-180/n,a+180/n) enddef; +% --- +def write_paths(expr name) = + find_BB for i:=1 upto objects: elem_path[i], endfor elem_path[objects]; + write_preamble name; + for i:=1 upto objects: + coeff:= + if objects=1: 0 else: .5(1-cosd(((i-1)/(objects-1))[alpha1,alpha2])) fi; + coeff:=if coeff>.5: 1 else: 0 fi; + fix_fill_cmyk forsuffixes $:=cyan, magenta, yellow: coeff[$1,$2], endfor + coeff[black1,black2]; + fill_C elem_path[i]; + endfor; + write_postamble; +enddef; +% --- +for ch:=0,1: + beginchar("0",117pt#, 117pt#, 0); + path elem_path[\\]; + objects:=100; transitions:=7; + pair cent[\\]; + sca1:=.5w; sca2:=.01w; + skew1:=60; skew2:=0; + alpha1:=0; alpha2:=transitions*360; + cshift0:=-.02w; cshift1:=-cshift0; + cent1:=(.5w,.5h); + rot1:=0; rot2:=rot1+60; + cent2:=(.5w+cshift[ch],.49h); + cyan1:=0; magenta1:=0; yellow1:=0; black1:=1; + cyan2:=0; magenta2:=0; yellow2:=0; black2:=0; + for i:=1 upto objects: + if objects=1: coeff:=0; else: coeff:=(i-1)/(objects-1); fi + elem_path[i]:= soft_polygon(4,coeff[skew1,skew2]) + scaled (coeff[sca1,sca2]) + rotated (coeff[rot1,rot2]+30) + shifted (coeff[cent1,cent2]); + endfor + write_paths(jobname & decimal(ch)); +endchar; + +endfor + +end. |