MetaPost

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare
MetaPost
software
Siglă
Tip Grafică pe computer
Dezvoltator Taco Hoekwater, Luigi Scarso
Data primei versiuni 1994
Ultima versiune 1.207 (8 decembrie 2009 )
Sistem de operare Multiplatform
Limba C.
Licență Domeniu public
( licență gratuită )
Site-ul web Site-ul dezvoltatorului

MetaPost se referă atât la numele limbajului de programare pentru generarea diagramelor, cât și la interpretul limbajului însuși. Ieșirea generată este în PostScript . [1]

MetaPost împărtășește sintaxa pentru manipularea liniilor, curbelor, punctelor și transformărilor geometrice cu interpretul Metafont ; cu toate acestea, există unele diferențe cu programul lui Donald Knuth :

  • Metafont este folosit pentru a produce fonturi, cu fișiere imagine (extensie .gf) și fișiere metrice (fișiere .tfm), în timp ce MetaPost generează fișiere eps .
  • Metafont ca ieșire produce imagini cu rezoluție fixă, în timp ce MetaPost produce grafică vectorială (curbe, linii Bézier ).
  • Ieșirea Metafont este monocromă, în timp ce ieșirea MetaPost utilizează RGB .

Multe dintre limitările Metapost derivă din caracteristicile Metafont. De exemplu, precizia redusă cu care sunt reprezentate numerele, suficientă pentru a reprezenta coordonatele într-un grafic mic, dar ar putea crea probleme pentru un sistem de coordonate suficient de mare. Mai mult, Metapost nu acceptă toate caracteristicile PostScript (de exemplu, PostScript 3 acceptă umbrirea Gouraud ). Asimptota a fost dezvoltată pentru a rezolva aceste probleme.

Exemple

Următorul fișier example.mp produce odată interpretat cu MetaPost (prin comanda mpost sub Linux ) produce trei fișiere eps example.1 , example.2 , example.3 . Graficele sunt prezentate în dreapta.

Metapost ex.png
 transforma pagecoords;
pagecoords: = identitate scalată 10mm deplasată (100mm, 150mm);
beginfig (1)
    umplere ((0,0) - (2,0) - (2,1) - (1,1) - (1,2) - (0,2) - ciclu)
        pagecoords transformate cu culoare verde;
    draw ((2.0) .. (2.1) .. (1.1) .. (1.2) .. (0.2))
        pagecoords transformate;
    drawarrow ((0,0) - (2,2)) pagecoords transformate;
endfig;
beginfig (2)
    draw (pentru i = 0 până la 7: dir (135i) - ciclu final)
        pagecoords transformate;
endfig;
pagecoords: = identitate scalată 15mm deplasată (100mm, 150mm);
beginfig (3);
   % declară căile de utilizat
    calea p [], p [] t;
   % stabiliți puncte definind relațiile
    z1 = (0,0); z2 = z1 + 2up;
    z3 = z1 + orice * dir (60) = z2 + orice * dir (-50);
    z4 = z3 + (- 1,5, -. 5);
    z5 = z1 + dir (135);
    z0 = orice [z1, z2] = orice [z3, z4];
   % configurați căi
    p0 = fullcircle yscaled .5 rotit 45 deplasat z0;
    p1 = z2 --- z4..z0..z3 --- z1;
    p2 = p1 cutbefore p0 cutafter p0;
    p3 = p0 cutbefore p1 cutafter p1;
    p4 = p2 --- p3 --- ciclu;
   % definește versiunile transformate ale căilor și punctelor
    pentru i = 0 până la 4: p [i] t = p [i] pagecoorduri transformate; endfor
    pentru i = 0 până la 5: z [i] t = z [i] pagecoords transformate; endfor
   % face niște desene
    umpleți p4t cu culoare (1,1,0,2);
    desenează z1t --- z2t cu culoare .5 alb;
    desenează z3t --- z4t cu culoare .5 alb;
    pickup în cerc;
    trage p0t puncte puncte retrase scalate .3;
    desenați p1t întrerupt uniform;
    desenează p2t cu culoare albastră;
    desenați p3t cu roșu de culoare;
    label.lrt (btex $ z_0 $ etex, z0t);
    label.llft (btex $ z_1 $ etex, z1t);
    label.top (btex $ z_2 $ etex, z2t);
    label.rt (btex $ z_3 $ etex, z3t);
    label.llft (btex $ z_4 $ etex, z4t);
    pentru i = 0 până la 4:
        drawdot z [i] t withpen pencircle scaled 2;
    endfor
endfig;
pa

Fișierele astfel generate pot fi utilizate în TeX prin comenzile LaTeX \ includegraphics , ConTeXt \ externalfigure , Plain TeX \ epsfbox sau (în Plain pdftex) prin comanda \ convertMPtoPDF din supp-pdf.tex . Pentru a vedea sau tipări al treilea grafic, este necesară includerea, deoarece fonturile Metafont nu sunt incluse în fișierele eps generate de MetaPost.

Notă

  1. ^ Întrebări despre METAFONT și MetaPost , pe linux.it . Adus la 25 mai 2020 (Arhivat din original la 15 martie 2012) .

Elemente conexe

Alte proiecte

Software gratuit Free Software Portal : accesați intrările Wikipedia care se ocupă cu software-ul liber