再次使用奇偶规则裁剪出图案区域

再次使用奇偶规则裁剪出图案区域

我对“奇偶规则”有点困惑。我想画出下面的图,这不是问题。问题是,我需要有小白点,也就是“爱好线”切出的地方,也需要有图案。

我正在使用下面的代码。

请原谅坐标的复杂定义,但这是更大图景的一部分,让它独立工作比独立编写它要容易得多。

如果您对需要了解的事情有任何疑问,请询问:)

\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{calc, patterns, hobby}

\begin{document}
    \begin{tikzpicture}[scale=1, use Hobby shortcut]
        \def \abstand {1}

        \coordinate (Anfang Kurve) at (0,0);

        \coordinate (H1) at ($(Anfang Kurve) + (0.5*\abstand, 0.2*\abstand)$);
        \coordinate (H2) at ($(H1) + (1*\abstand, -0.15*\abstand)$);
        \coordinate (H3) at ($(H2) + (0.75*\abstand, 2.35*\abstand)$);
        \coordinate (H4) at ($(H3) + (0.4*\abstand, -2*\abstand)$);
        \coordinate (H5) at ($(H4) + (0.1*\abstand, -1.2*\abstand)$);
        \coordinate (H6) at ($(H5) + (-0.75*\abstand, 0.4*\abstand)$);
        \coordinate (H7) at ($(H6) + (-0.4*\abstand, 0.5*\abstand)$);
        \coordinate (H8) at ($(H7) + (-0.8*\abstand, 0.1*\abstand)$);

        \draw[pattern = north west lines, even odd rule] (Anfang Kurve) .. (H1) .. (H2) 
            .. (H3) .. (H4) .. (H5) .. (H6) .. (H7) .. (H8) .. (Anfang Kurve)
        (Anfang Kurve) --+ (2*\abstand, 0) --+(2*\abstand,2*\abstand) 
            --+ (3*\abstand, 2*\abstand) --+ (3*\abstand, -1*\abstand) 
            --+ (\abstand, -1*\abstand) --+ (\abstand,0) --+ (0,0);
    \end{tikzpicture}
\end{document}

上述文本的结果 存在问题的地区

提前感谢任何形式的帮助。:)

答案1

您遇到的问题与 无关even odd rule,也就是说,如果您掉落钥匙,小白点会保留下来。解决该问题的一种方法是使用 pgfplotsfillbetween库。

\documentclass[tikz]{standalone}
\usetikzlibrary{calc,hobby,patterns}
\usepackage{pgfplots}
\usepgfplotslibrary{fillbetween}
\begin{document}
\begin{tikzpicture}[scale=1, use Hobby shortcut]
    \def \abstand {1}

    \coordinate (Anfang Kurve) at (0,0);

    \coordinate (H1) at ($(Anfang Kurve) + (0.5*\abstand, 0.2*\abstand)$);
    \coordinate (H2) at ($(H1) + (1*\abstand, -0.15*\abstand)$);
    \coordinate (H3) at ($(H2) + (0.75*\abstand, 2.35*\abstand)$);
    \coordinate (H4) at ($(H3) + (0.4*\abstand, -2*\abstand)$);
    \coordinate (H5) at ($(H4) + (0.1*\abstand, -1.2*\abstand)$);
    \coordinate (H6) at ($(H5) + (-0.75*\abstand, 0.4*\abstand)$);
    \coordinate (H7) at ($(H6) + (-0.4*\abstand, 0.5*\abstand)$);
    \coordinate (H8) at ($(H7) + (-0.8*\abstand, 0.1*\abstand)$);
    \draw[pattern = north west lines, even odd rule,name path=curve] 
    (Anfang Kurve) .. (H1) .. (H2) 
            .. (H3) .. (H4) .. (H5) .. (H6) .. (H7) .. (H8) .. (Anfang Kurve)
        (Anfang Kurve) --+ (2*\abstand, 0) --+(2*\abstand,2*\abstand) 
            --+ (3*\abstand, 2*\abstand) --+ (3*\abstand, -1*\abstand) 
            --+ (\abstand, -1*\abstand) --+ (\abstand,0) --+ (0,0);
    \path[name path=hori] (Anfang Kurve) --+ (2*\abstand, 0);
    \path[pattern = north west lines,
    intersection segments={of=curve and hori,sequence={A2}}];
\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容