diff options
Diffstat (limited to 'Master/texmf-dist/doc/metapost/featpost/example/aledlogo.mp')
-rw-r--r-- | Master/texmf-dist/doc/metapost/featpost/example/aledlogo.mp | 183 |
1 files changed, 183 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/metapost/featpost/example/aledlogo.mp b/Master/texmf-dist/doc/metapost/featpost/example/aledlogo.mp new file mode 100644 index 00000000000..15844686c0b --- /dev/null +++ b/Master/texmf-dist/doc/metapost/featpost/example/aledlogo.mp @@ -0,0 +1,183 @@ +% aledlogo.mp +% L. Nobre G. +% 2007 + +input featpost3Dplus2D; + +prologues := 1; + +verbatimtex +\documentclass{article} +\usepackage{marvosym} +\begin{document} +etex + +vardef calxtep( expr Beglim, Endlim, Instep ) = + ((Endlim-Beglim)/floor((Endlim-Beglim)/Instep)) +enddef; + +def drawfila( expr H, Ray, Astart, Afinis, Astep, Sray ) = + begingroup + save a, c, p, n, i, s, l, r, u, d, inc, rad, ba, bb, vertex; + numeric a, n, i, s, inc, sa, sb; + color c, p, l, r, u, d, rad, vertex; + path shape; + boolean ba, bb; + picture aux; + inc = -5; + sa = 2; + sb = 0.27; + vertex = (-0.7,0.9,0.15); + n = floor((Afinis-Astart)/Astep); + s = (Afinis-Astart)/n; + for i=0 upto n: + a := Astart+i*s; + p := (Ray*cosd(a),Ray*sind(a),H); + rad := (cosd(a),sind(a),0); + u := Sray*(blue*cosd(inc)+rad*sind(inc)); + r := Sray*ncrossprod( p-f, u ); + l := -r; + d := -u; + ba := (ypart rp(p)) < (ypart rp(vertex)) + + sa*((xpart rp(p))-(xpart rp(vertex))); + bb := (ypart rp(p)) > (ypart rp(vertex)) + + sb*((xpart rp(p))-(xpart rp(vertex))); + shape := rp(p+r+d)--rp(p+r+u)--rp(p+l+u)--rp(p+l+d)--cycle; + if ( uniformdeviate(1) < 0.5 ): +%% if ( uniformdeviate(1) < 0.7 ): %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% if ( ba and bb ): + c := black; + unfill shape; + draw shape withcolor c; + aux := thelabel( btex \EyesDollar etex scaled (ps( p, 7 )), rp(p) ); + draw aux withcolor c; +%%%% fill rp(p+r+d)--rp(p+r+u)--rp(p+l)--cycle withcolor c; + else: +%%%% c := 0.5white; +%% c := 0.5red; + c := black; + unfill shape; + draw shape withcolor c; + aux := thelabel( btex \EURhv etex scaled (ps( p, 9 )), rp(p) ); + draw aux withcolor c; +%%%% fill rp(p+l+d)--rp(p+l+u)--rp(p+r)--cycle withcolor c; + fi; +%% fill rp(p+r+u)--rp(p+l+u)--rp(p+d)--cycle withcolor c; +%%%% fill rp(p+r)--rp(p+u)--rp(p+l)--rp(p+d)--cycle withcolor c; +%%%% fill shape withcolor c; +%%%% draw shape withcolor white withpen pensquare scaled 3pt; +%%%% fill rigorousfearpath( p, Sray ) withcolor c; + endfor + endgroup +enddef; + +%SphericalDistortion := true; + +beginfig(1); + numeric heig, bray, tray, vang, sray, ldis, fdis, cwid, cnum, ylen; + heig = 0.35; + bray = 0.95; + tray = 2.25; + vang = 95; + sray = 0.029; + ldis = 0.02; + fdis = 0.075; + cwid = 0.15; + cnum = 2; + ylen = -0.16; + f := (0,ylen,heig); + viewcentr := (0,tray,heig); + color thered; + thered = 0.66red; + numeric degperrad, asector, s; + degperrad = 180.0/3.14159; + numeric a, h, astep, ray, raystep, hstep, abeg, aend, astart, afinis, awid; + raystep = calxtep( bray, tray, fdis ); + hstep = raystep/(tray-bray); + h = 1; + abeg = 0.5*(180-vang); + aend = 180-abeg; + for ray=tray step -raystep until bray: + awid := degperrad*cwid/ray; + asector := (vang-cnum*awid)/(cnum+1); + astep := degperrad*(ldis+2*sray)/ray; + for s=0 upto cnum: + astart := abeg+s*(asector+awid); + afinis := astart+asector; + drawfila( h, ray, astart, afinis, astep, sray ); + endfor; + h := h - hstep; + endfor; + picture stor; + stor = currentpicture; + bboxmargin := 2cm; + fill bbox stor withcolor thered; + draw stor; +endfig; + +beginfig(2); + numeric angout, anglow, rayout, distra, lifactor, lidist, madist; + numeric maleng, numstp, madstp, malstp, mafrac, i, j, begy, endy, xcoord; + color cenpos, vechor, vecver, yela, yelb, dblu, mgre; + pair ulc, llc, urc; + picture block; + angout=30; + anglow=-6; + lifactor=2; + lidist=3.5; + mafrac=0.6; + numstp=25; + f:=(7,6,5); + viewcentr:=(0,-1.4,0); + Spread:=35; + yela=(1,1,0.7); + yelb=(1,1,0.45); + background:=yelb; + dblu=0.4blue; + mgre=0.6green; + rayout=sind(angout); + distra=cosd(angout); + llc = point 0 of VGAborder; + ulc = point 3 of VGAborder; + urc = point 2 of VGAborder; + madist = abs( ulc-llc ); + maleng = abs( urc-ulc ); + malstp = maleng/numstp; + madstp = 5*malstp/3; + z2 = mafrac*(malstp,madstp); + z1 = mafrac*(0,madstp); + z3 = mafrac*(malstp,0); + fill origin--z1--z2--z3--cycle shifted (0.5*(1-mafrac)*(malstp,madstp)) + withcolor mgre; + block = currentpicture; + currentpicture := nullpicture; + fill VGAborder withcolor dblu; + for i=0 upto numstp-1: + begy:= (ypart ulc) + madstp*(1+normaldeviate); + endy:= (ypart 0.5[llc,ulc]) + 4*madstp*normaldeviate; + xcoord:= (xpart llc) + i*malstp; + for j=begy step -madstp until endy: + draw block shifted (xcoord,j); + endfor; + endfor; + clip currentpicture to VGAborder; + cenpos:=distra*(-cosd(30)*cosd(anglow),-sind(30)*cosd(anglow),sind(anglow)); + vechor:=rayout*(sind(30),-cosd(30),0); + vecver:=rayout*(cosd(30)*sind(anglow),sind(30)*sind(anglow),cosd(anglow)); + drawoptions( withcolor yelb ); + whatisthis(cenpos,vechor,vecver,3lidist,1+3*(lifactor-1)); + fill rigorousfearpath( black, 1 ) withcolor yela; + cenpos:=distra*(cosd(30)*cosd(anglow),-sind(30)*cosd(anglow),sind(anglow)); + vechor:=rayout*(sind(30),cosd(30),0); + vecver:=rayout*(-cosd(30)*sind(anglow),sind(30)*sind(anglow),cosd(anglow)); + drawoptions( withcolor yelb ); + whatisthis(cenpos,vechor,vecver,lidist,lifactor); + cenpos:=distra*(0,cosd(anglow),sind(anglow)); + vechor:=rayout*(-1,0,0); + vecver:=rayout*(0,-sind(anglow),cosd(anglow)); + whatisthis(cenpos,vechor,vecver,lidist,lifactor); + drawoptions(); + produce_auto_scale; +endfig; + +end.
\ No newline at end of file |