Estoy intentando crear una macro parametrizada para dibujar una forma con macros de lápiz y trazo en MetaPost (¿Metafont?) con plain.mp
base, pero aparece un error. Ejecutando el siguiente código,
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.
da el siguiente error:
>> unknown path path_.l
>> z0l
! Equation cannot be performed (unknown path=numeric).
<to be read again>
Según tengo entendido, es penstroke
una macro que simplemente llama fill
y unfill
después de calcular los valores "izquierdo" y "derecho" de los puntos en función de lo (radius,angle)
pasado a la penpos
macro. Supongo que esto no funciona afuera beginfig
y endfig
. Y es por eso que Metafont no puede encontrarlo z0l
. Porque el comando de dibujo funciona sin ningún error.
¿Cómo puedo usar penpos
y penstroke
aquí? ¿O tengo que calcular manualmente los valores izquierdo/derecho y llamar a fill
/ unfill
?
Tenga en cuenta que soy un completo principiante en MetaPost/Metafont. Gracias.