在 Metapost 中,访问路径副本的点

在 Metapost 中,访问路径副本的点

在 Metapost 中,我想复制一条路径并能够直接处理这些点。我试过了,但似乎pp1不存在。有什么想法吗?

beginfig(1);
    pair p[];
    p1=(0,100);
    p2=(50, 0);
    p3=(100,100);

    pair pp[];
    pp := p shifted (25, 0);

    show p[1];
    show pp[1];

    draw p[1] -- pp[1];
endfig;

答案1

p不是路径,而是数组。您必须遍历所有后缀并移动它们:

beginfig(1);
    pair p[];
    p1=(0,100);
    p2=(50, 0);
    p3=(100,100);

    pair pp[];

    forsuffixes i = 1,2,3  :
      pp[i] := p[i] shifted (25, 0);
    endfor

    show p[1];
    show pp[1];

    draw p[1] -- pp[1];
endfig;
end;

另一种选择是实际定义一个path,然后使用访问各个点point n of path

beginfig(1);
  path p, pp;

  p := (0,100) -- (50,0) -- (100,100);
  pp := p shifted (25, 0);

  show point 0 of p;
  show point 0 of pp

  draw point 0 of p -- point 0 of pp;
endfig;
end;

相关内容