Vladimír Lukeš: METAFONT - Jak kreslit obrázky
Predchozi (Obsah) Dalsi

7. Pera

Vše co METAFONT kreslí, je kresleno nějakým perem. Tvar pera určuje, jaká "stopa" se bude na "papíře" zanechávat. Lze tím tedy ovlivnit nejen tloušűku čar ale i vzhled jejich konců, zda budou kulaté, hranaté, atd.

Před každou prací musíme určité pero vybrat, to se provede příkazem pickup, za který uvedeme tvar pera. k dispozici jsou tři základní tvary (1) : pero kruhového průřezu (pencircle), jednotkový čtverec (pensquare) a jednotková úsečka (penrazor). Zvětšováním a otáčením základních tvarů získáme libovolně mnoho tvarů dalších. Zde je několik ilustrativních příkladů.


pickup pencircle scaled 5pt;

obrazek 14


pickup pencircle xscaled 3pt yscaled 6pt;

obrazek 15


pickup pensquare scaled 4pt;

obrazek 16


pickup penrazor scaled 6pt rotated 20;

obrazek 17


Tvar pera je možné uložit do proměnné typu pen. Na začátku si tak uživatel může definovat několik per, které při kreslení obrázku jednoduše mění.


pen peroa,perob;
peroa:=pensquare xscaled 3pt yscaled 1pt;
perob:=pencircle scaled 2pt;
p:=z1dir60..z2;
pickup peroa;
draw p;
pickup perob;
draw (point .2 of p)down..(point .8 of p);

obrazek 18


Někdy se můžeme dostat do situace, kdy pero, jež potřebujeme, nelze jednoduše vytvořit z tvarů základních. Takovou situaci vyřešíme příkazem makepen, ten vytvoří pero ve tvaru cesty, která je parametrem tohoto příkazu. Podmínkou ale je, aby cesta byla uzavřená (použijeme příkaz cycle) a měla konvexní tvar.


pen pero;
pero:=makepen (z1-z2-z3-cycle);

obrazek 19


K uložení informace o tvaru pera pro pozdější použití je příkaz savepen.


pen pero;
...
pero:=savepen;
...
pickup pero;


Informace o aktuálním tvaru pera najdeme též v proměnné currentpen. Zvláštním typem pera je neviditelné pero nullpen. To se používá např. ve spojení s příkazem filldraw, jestliže nechceme, aby hranice vyplňované plochy měla nějaký rozměr.



Predchozi
Converted by Selathco 0.85 on 08.06.1999 11:20
Dalsi