Metapost - 用不同的颜色给曲线的各个部分着色

Metapost - 用不同的颜色给曲线的各个部分着色

我搜索了一下,没有找到与此相关的内容。

假设我在 Metapost 中使用命令创建了一条封闭曲线p:=z_1..z_2..z_3..cycle。是否可以使用不同的颜色来为该曲线的各个部分着色?如何定义该曲线的子集?

我在想也许存在一个参数表示,例如可以使我用另一种颜色来为p部分着色。z_1z_2

如果我能做到上述操作,那将会很有帮助,因为我想将其他图形附加到曲线的彩色部分。

谢谢。

答案1

指定路径的各个部分的方法有很多种。一种方法是使用cutbeforeandcutafter语句,如下所示:

\starttext
\startMPpage
    % define points
    z_0 := origin;
    z_1 := (0cm, .5cm);
    z_2 := (3cm, 1cm);
    z_3 := (5cm, 3.5cm);
    z_4 := (2cm, 3cm);
    z_5 := (1cm, 2cm);

    % define paths
    path p;
    p := z_1 .. z_2 .. z_3 .. z_4 .. z_5 .. cycle;
    path s;
    s := p cutbefore point 3 of p .. p cutafter point 1 of p;

    % draw lines
    draw p withpen pencircle scaled 8pt withcolor blue;
    draw s withpen pencircle scaled 4pt withcolor yellow;

    % draw the points and labels
    pickup pencircle scaled 8pt;
    for x=0 upto 4:
        draw point x of p;
        label.bot(decimal(x), point x of p);
    endfor;
\stopMPpage
\stoptext

结果:

结果

欲了解更多信息,我建议阅读MetaFun 手册。MetaFun 是 MetaPost 的一个扩展。无论如何,其中包含许多示例(参见第一章和第二章),它们也可以与普通的 MetaPost 一起使用。

相关内容