为什么 tikz 循环行为与重新陈述起点相比有所不同?

为什么 tikz 循环行为与重新陈述起点相比有所不同?

在最近的教程风格答案中我如何绘制这些带有阴影区域的多边形?,我遇到了一些奇怪的行为tikz。下面的代码是该答案代码的略微简化版本。我试图进一步减少它,但这使问题更难发现。

如果我用黑色结束下面的行,则会得到以下结果-- cycle

\draw (A1) -- (intersection-1) -- (A4) -- cycle;

在此处输入图片描述

注意黑线如何越过 A1 和 A4 处的点。但是,通过不使用-- cycle起点而是重新指定起点作为终点,我获得了 A1 的更好结果:

\draw (A1) -- (intersection-1) -- (A4) -- (A1);

在此处输入图片描述

下面是修复此问题的方法,但是如果使用--cycle或重新指定起点作为终点,行为为什么会有所不同?

参考:

在此处输入图片描述

代码:

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{intersections}

\begin{document}

\begin{tikzpicture}

% Define all the points:
    \coordinate (A1) at (0,4);
    \coordinate (A2) at (3,6);
    \coordinate (A3) at (5,5);
    \coordinate (A4) at (6,3);
    \coordinate (A5) at (4.5,1.5);
    \coordinate (An) at (0,0);

% Draw the lines
    \draw [ultra thick, blue, solid ] (An) -- (A1) -- (A2) -- (A3) -- (A4) -- (A5);

% Label the nodes:
    \foreach \Index/\Position in {1/left, 2/above, 3/above right, 4/right, 5/below right, n/left} {
        \node [\Position] at (A\Index) {$A_{\Index}$};
    }%

    \draw [gray, ultra thick] 
            [name path=A1A3] (A1) -- (A3)
            [name path=A2A4] (A2) -- (A4)
            [name path=A1A4] (A1) -- (A4);


    \fill [fill=red!20, draw=black, ultra thick, name intersections={of=A1A3 and A2A4}]
        (A1) -- (intersection-1) -- (A4) -- cycle;% produces wacky vertices
        %(A1) -- (intersection-1) -- (A4) -- (A1);% this fixes problem at (A)

%    % Following fix works
%    \fill [fill=red!20, draw=black, line join=round, ultra thick, name intersections={of=A1A3 and A2A4}]
%       (A1) -- (intersection-1) -- (A4) -- cycle;

\end{tikzpicture}
\end{document}

答案1

从 PGF 手册中,我发现了以下声明。

在此处输入图片描述

相关内容