先设置轮廓,然后填充颜色

先设置轮廓,然后填充颜色

我有以下代码

\documentclass[border=5mm]{standalone}
\usepackage{pgfplots}       
\pgfplotsset{compat=1.10,   
             ticks=none}
\usepgfplotslibrary{fillbetween}
\usetikzlibrary{backgrounds, 
                calc,
                patterns}

\begin{document}

\begin{tikzpicture}[scale=4, transform shape]
\tikzset{
    myc/.pic={
    \draw[line width=2mm] (0, 0) -| (2, 1) -| (1, 2) -| (2, 3) -| cycle;
        }
}
\path (0,0) pic[fill=green] {myc} (1,3) pic[fill=blue] {myc} (2,6) pic[fill=blue] {myc};
\end{tikzpicture}

\end{document}

代码在以 开头的行中定义了图块的轮廓tikzset{

我想把这个图块放在不同的地方,并且用不同的颜色填充图块。上面的代码是实现这个目的的尝试之一,但是没有成功。

我得到的输出如下:

在此处输入图片描述

我最近才了解到这个tikzset命令(感谢 TeXstackexchange),但对它并不了解。有人能帮我一下吗?如果可以的话,请提供参考。

答案1

只需使用pic actions

\documentclass[tikz,border=3.14mm]{standalone}

\begin{document}

\begin{tikzpicture}[scale=4, transform shape]
\tikzset{
    myc/.pic={
    \draw[line width=2mm,pic actions] (0, 0) -| (2, 1) -| (1, 2) -| (2, 3) -| cycle;
        }
}
\path (0,0) pic[fill=green] {myc} (1,3) pic[fill=blue] {myc} (2,6) pic[fill=blue] {myc};
\end{tikzpicture}

\end{document}

在此处输入图片描述

答案2

pic可以有争论。

\documentclass[border=5mm]{standalone}
\usepackage{pgfplots}       
\pgfplotsset{compat=1.10,   
             ticks=none}
\usepgfplotslibrary{fillbetween}
\usetikzlibrary{backgrounds, 
                calc,
                patterns}

\begin{document}

\begin{tikzpicture}[scale=4, transform shape]
\tikzset{
    myc/.pic={
    \draw[line width=2mm,fill=#1] (0, 0) -| (2, 1) -| (1, 2) -| (2, 3) -| cycle;
        }
}
\path (0,0) pic {myc=red} (1,3) pic {myc=green} (2,6) pic {myc=blue};
\end{tikzpicture}

\end{document}

在此处输入图片描述

相关内容