big MetaPost?

Jaromir Kuben kuben at scova.vabo.cz
Tue Feb 4 13:48:37 CET 1997


> > > udelat uz davno. Bohuzel pomerne rychle jsem narazil na problem
> > > s malou kapacitou (main memory = 60000), ackoli obrazek nebyl zas
> > > az tak strasne rozsahly (byl to obrazek z clanku o systemu mujmfpic
> > > ze Zpravodaje 2/94 - dokonce jsem vyteckovani nahradil vyplnenim
> > > sedou barvou). Protoze Metafont ma tuto hodnotu 200000, chtel jsem
> >
> > Muzete mi sdelit, o ktery obrazek slo? A jakou verzi MetaPostu pouzivate?
>
>   Je to druhy obrazek z toho clanku, jsou na nem ctyri ukazky prace
> s polarnimi souradnicemi (stranku vam z hlavy nereknu, protoze mam
> zpravodaj doma), pokud si dobre vzpominam, je to znak 34. Soubor
> mgraphbase.mf jsem upravil tak, ze funkce, ktere mely neco vyteckovat
> (paradiscshade, polardiscshade, ...) jsem nahradil vyplnenim sedou
> barvou (jinak to preteklo na nich) a specfill jsem nahradil necim jako
>
> def specfill (fcni, fcnii) =
>   save vt, vtt;
>   vt := nullpicture; vtt := nullpicture;
>   addto vt contour fcni;         % pripadne nejaka barva
>   addto vt contour fcnii;        % pripadne nejaka barva
>   addto vtt contour fcni withcolor background;
>   clip vtt to fcnii;
>   addto vt also vtt;
>   vt
> enddef;
>

Tenhle obrat mne nenapadl, tak jsem kdysi zmineny obrazek (resp.jeho barevnou
verzi oznacenou v clanku jako"lahudka") udelal jinak (musel jsem ovsem vytahnout
z mgraphba.mf nektere definice):


defaultfont:="csr10";
tracingstats:=4;

vardef fce(expr arg)=
cosd(8*arg)
enddef;

vardef fcei(expr arg)=
36mm+24mm*fce(arg)
enddef;

vardef fceii(expr arg)=
36mm-24mm*fce(arg)
enddef;

beginfig(1);
path p[];
pickup pencircle scaled .5pt;
for i=0 step 1 until 360:
z[i]=fcei(i)*(cosd(i),sind(i));
endfor
p1=z0{z1-z360} for i=1 step 1 until 359: ..z[i]{z[i+1]-z[i-1]} endfor
   ..z360{z0-z359}..cycle;
for i=0 step 1 until 360:
z[i+1000]=fceii(i)*(cosd(i),sind(i));
endfor
p2=z1000{z1000-z1360} for i=1001 step 1 until 1359: ..z[i]{z[i+1]-z[i-1]} endfor
   ..z1360{z1000-z1359}..cycle;
pair cas;
cas=p1 intersectiontimes p2;
p11=subpath (0,xpart cas) of p1;
p21=subpath (xpart cas,length p1) of p1;
p3=p21..p11;
p12=subpath (0,ypart cas) of p2;
p22=subpath (ypart cas,length p2) of p2;
p4=p22..p12;
p5=p3..(reverse p4)..cycle;
fill fullcircle scaled 72mm withcolor green;
fill fullcircle scaled 24mm withcolor red;
fill p5 withcolor (1,1,0);
draw p5 withcolor (1,0,0.5);
endfig;

end

> Zkolabuje to prave na te treti ukazce, kde se pouziva specfill.
> MetaPost mam z muni, myslim ze
> /pub/tex/CTAN/graphics/metapost/metapost.tar.gz
> Prekladal jsem ho pomoci web2c verze 6.1 (linux ELF, gcc 2.7.2.1).
>
>                                                       Michal Kubecek

Ja pouzivam mp.exe (autor Piet van Oostrum, je take na CTAN). Predchozi
ukazku jsem prelozil pod DOSem i OS/2 bez problemu. Vy ale zrejme chcete
verzi pro linux.
Upozornuji, ze na CTAN je novejsi verze mfpic 0.2.9, ktera je oproti te,
z niz jsem vysel pri vyrabeni mujmfpic, podstatne vylepsena. Je v ni
zahrnuta cast mych doplnku, ale ne vsechny (myslim, ze zrovna ten na
nakresleni "kopretiny" ne). Idealni by bylo udelat verzi s vystupem
primo pro metapost, jako je napr.v baliku feynmf (ma styly pro mf i mp).
       Zdravi
                Jaromir Kuben




More information about the csTeX mailing list