![Como usar o penpos/penstroke dentro de uma macro parametrizada?](https://rvso.com/image/475728/Como%20usar%20o%20penpos%2Fpenstroke%20dentro%20de%20uma%20macro%20parametrizada%3F.png)
Estou tentando criar uma macro parametrizada para desenhar uma forma com macros penpos e penstroke no MetaPost (Metafont?) Com plain.mp
base, mas estou recebendo um erro. Executando o código abaixo,
def curve_st(expr p) = begingroup
save z;
pair z[];
z0 = p;
z1 = p + (2,-2);
z2 = z1 + (0, 5);
z3 = z2 + (3, 0);
penpos0(tip, 180);
penpos1(stem, -30);
penpos2(stem, 0);
penpos3(tip, 180);
penstroke z0e{down}.. z1e{up} .. z2e{up} .. z3e;
%draw z0{down}.. z1{up} .. z2{up} .. z3;
endgroup enddef;
beginfig(1);
xstep = 3; stem = 1.5; tip = .2;
curve_st((-3,0)); curve_st((0,0));
endfig; end.
dá o seguinte erro:
>> unknown path path_.l
>> z0l
! Equation cannot be performed (unknown path=numeric).
<to be read again>
Pelo que entendi, penstroke
é uma macro que apenas chama fill
e unfill
depois calcula os valores "esquerdo" e "direito" dos pontos com base no (radius,angle)
passado para a penpos
macro. Suponho que isso não funcione fora beginfig
e endfig
. E é por isso que o Metafont não consegue encontrar arquivos z0l
. Porque o comando draw funciona sem nenhum erro.
Como posso usar penpos
e penstroke
aqui? Ou preciso calcular manualmente os valores esquerdo/direito e chamar o fill
/ unfill
?
Tenha em mente que sou um iniciante em MetaPost/Metafont. Obrigado.