假设我有一个路径数组,path pat[];
我尝试定义这样的函数:
def drawpaths(expr plists)=
for p in plists:
pickup defaultpen;
draw pat[p];
endfor
enddef
0,2,3
这样我就可以通过调用来绘制路径drawpaths(0,2,3)
。
不幸的是,metapost 不支持列表循环,有什么解决办法吗?
答案1
当然,Metapost 支持列表循环。以下是 ConTeXt 中的代码:
\startMPpage
path pat[];
pat[0] := (0,0) -- (10,10);
pat[1] := (0,0) -- (10,20);
pat[2] := (0,0) -- (10,30);
def drawpaths(text plists) =
for p = plists:
pickup defaultpen;
draw pat[p];
endfor
enddef;
drawpaths(0,1,2);
\stopMPpage