diff options
Diffstat (limited to 'Master/texmf-dist/doc/metapost/featpost/example/muslimpattern.mp')
-rw-r--r-- | Master/texmf-dist/doc/metapost/featpost/example/muslimpattern.mp | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/metapost/featpost/example/muslimpattern.mp b/Master/texmf-dist/doc/metapost/featpost/example/muslimpattern.mp new file mode 100644 index 00000000000..6c40859b746 --- /dev/null +++ b/Master/texmf-dist/doc/metapost/featpost/example/muslimpattern.mp @@ -0,0 +1,73 @@ +% muslimpattern.mp +% L. Nobre G. +% 2012 + +prologues := 1; +background := 0.9white; + +numeric u, pa, pb, hexf; +u = 35mm; +pa = 0.12u; +pb = 0.05u; +hexf = sqrt(3)/2; + +vardef markpath( expr Pat ) = + draw Pat withpen pencircle scaled pa; + undraw Pat withpen pencircle scaled pb; +enddef; + +vardef hc( expr Xindex, Yindex ) = + 2*u*hexf*(Xindex*right+Yindex*dir(60)) +enddef; + +beginfig(1); + numeric i, ang; + pair c, b, a, d; + a = (hexf,0); + b = (0.33hexf,-0.4); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% CHANGE only this. + c = (0,1.5); + d = 1.1[b,a]; + path seg[], aux, hex, auxa, auxb; + for i=0 upto 5: + seg[i] = (d--b--c) rotated (i*60) scaled u; + endfor; + seg6 = seg0; + ang = angle(c-b); + aux = ((a-dir(ang))--(a+dir(ang))) scaled u; + z1 = seg0 intersectionpoint seg5; + z2 = seg0 intersectiontimes seg5; + z3 = unitvector( direction xpart z2 of seg0 ); + for i=1 upto 6: + markpath( aux rotated (i*60) ); + markpath( seg[i-1] ); + endfor; + auxa = ((a-pb*dir(ang)/u)--(a+pb*dir(ang)/u)) scaled u; + auxb = ((a-pa*dir(ang)/u)--(a+pa*dir(ang)/u)) scaled u; + for i=1 upto 6: + draw auxa rotated ((i-1)*60) withpen pencircle scaled pa; + undraw auxb rotated ((i-1)*60) withpen pencircle scaled pb; + endfor; + auxa := ((z1-pb*z3)--(z1+pb*z3)); + auxb := ((z1-pa*z3)--(z1+pa*z3)); + draw auxa withpen pencircle scaled pa; + undraw auxb withpen pencircle scaled pb; + hex = for i=30 step 60 until 360: u*dir(i)-- endfor cycle; + clip currentpicture to hex; + picture tile; + tile = currentpicture; +endfig; + +beginfig(2); + numeric i, j; + path rect; + rect = hc(0,-1)--hc(1,-1)--hc(0,1)--hc(-1,1)--cycle; + fill rect withcolor (1,0.986,0.993); + for i=-1 upto 1: + for j=-1 upto 1: + draw tile shifted hc(i,j); + endfor; + endfor; + clip currentpicture to rect; +endfig; + +end.
\ No newline at end of file |