通过组合对象实现一个边框

通过组合对象实现一个边框

我想合并两个对象,以便只显示外边框。此外,我想多次重复使用第二个对象。请参阅我的示例代码:

\documentclass[class=tufte-book]{standalone}
\usepackage{tikz,pgfplots}
    \usetikzlibrary{colorbrewer}

\begin{document}
    \begin{tikzpicture}
        \newsavebox{\test}
        \savebox{\test}{
            \begin{tikzpicture}
                \draw[fill=PuBuGn-9-1] (-1, 0.0) -- (-1,-1) -- (1,-1) -- (1,0);
            \end{tikzpicture}
        }

        \draw[fill=PuBuGn-9-1] (-1,-2) -- (3, -1) -- (4, 2) -- (2,3)  -- (-1,-2);
        \node[rotate=60] at (3,-0.5){\usebox{\test}};

    \end{tikzpicture}
\end{document}

这段代码的结果是这张图片(两个对象的边框相同,由于 jpeg 压缩而看起来不同):

未合并

但我希望得到这样的结果:

综合

可以吗?因为计算横截面积会很困难...非常感谢。

答案1

这是一个想法(先画然后填充)。

\documentclass{standalone}
\usepackage{tikz}

\tikzset{
    path1/.style={
        insert path={(-1,-2) -- (3, -1) -- (4, 2) -- (2,3)  -- (-1,-2)}
    },
    path2/.style={
        insert path={(-1, 0.0) -- (-1,-1) -- (1,-1) -- (1,0)}
    }
}

\begin{document}
    \begin{tikzpicture}
        % first draw
        \begin{scope}[thick]
            \draw[path1];
            \draw[rotate=60, shift={(1,-2.4)}][path2];
        \end{scope}
        % then fill
        \begin{scope}[red!30]
            \fill[path1];
            \fill[rotate=60, shift={(1,-2.4)}][path2];
        \end{scope}
    \end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容