填充 METAPOST 数组的所有元素

填充 METAPOST 数组的所有元素

我想使用循环填充任意长度的数组路径。有没有办法在每个数组元素上迭代填充运算符,相当于这个 shell 循环

set -A Test foo bar
for i in ${Foo[@]}; do print $i; done

据我所知,METAPOST 数组不是传统数组,所以我不知道这是否可以实现。我目前所做的看起来像这个 MWE。到目前为止有效,因为我的路径数组没有增长到超过十个元素,但如果增长到十个以上,我可能会忽略某些内容尚未填充。我想避免检查数组长度。

\mainlanguage[]
\language[]



\starttext
\startMPpage
path T[];

T1:=unitcircle scaled 20;
T2:=unitsquare scaled 20 xshifted 30;
T3:=unitcircle scaled 20 xshifted 80;

for i=1 step 1 until 10:
   if known T[i]:
      draw T[i] ;
   fi
endfor ;
\stopMPpage
\stoptext

答案1

您可以尝试forever

\starttext
\startMPpage
path T[];

T1:=unitcircle scaled 20;
T2:=unitsquare scaled 20 xshifted 30;
T3:=unitcircle scaled 20 xshifted 80;

i:=1;
forever:
   if known T[i]:
      draw T[i];
      i:=i+1;
   fi
   exitif unknown T[i];
endfor ;
\stopMPpage
\stoptext

相关内容