Metapost 列表的循环

Metapost 列表的循环

假设我有一个路径数组,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

相关内容