为什么 PGF 没有为命名节点画出完整的线?

为什么 PGF 没有为命名节点画出完整的线?

最小工作示例

\nonstopmode
\documentclass{standalone}
\usepackage{tikz}
\begin{document}
\pagestyle{empty}
\begin{tikzpicture}

\path   (0, 0)  node (a) {}
        (1, .2) node (b) {}
        (1, 1)  node (c) {}
        (.2, 1) node (d) {}
;

\draw [red]
        (a) [fill] circle (.03)
        (b) [fill] circle (.03)
        (c) [fill] circle (.03)
        (d) [fill] circle (.03)
;
\draw [red]
        (a)  -- (b)  -- (c)  -- (d)  -- cycle
;
\draw [blue, shift={(2, 0)}]
        (0, 0)  [fill] circle(.03)  --
        (1, .2) [fill] circle(.03)  --
        (1, 1)  [fill] circle(.03)  --
        (.2, 1) [fill] circle(.03)  --
        (0, 0)
;
\end{tikzpicture}
\end{document}

在此处输入图片描述

如上所述,当通过坐标(蓝色)指定节点时,线条可以到达该位置,但对于命名节点(红色),线条无法到达该位置。此外,--cycle不适用于命名节点。

我怀疑这与节点有边框或其他东西有关。有人知道这种行为的确切原因吗?

答案1

它按预期工作。nodes具有最小尺寸,您可以看到draw它们是否被绘制。并且节点之间的线在它们的边界处停止。

\documentclass{standalone}
\usepackage{tikz}
\begin{document}
\pagestyle{empty}
\begin{tikzpicture}

\path   (0, 0)  node[draw] (a) {}
        (1, .2) node[draw] (b) {}
        (1, 1)  node[draw] (c) {}
        (.2, 1) node[draw] (d) {}
;

\draw [red]
        (a) [fill] circle (.03)
        (b) [fill] circle (.03)
        (c) [fill] circle (.03)
        (d) [fill] circle (.03)
;
\draw [red]
        (a)  -- (b)  -- (c)  -- (d)  -- cycle
;
\draw [blue, shift={(2, 0)}]
        (0, 0) node[circle, draw, fill, minimum size=1mm, inner sep=0pt] {} --
        (1, .2) node[circle, draw, fill, minimum size=1mm, inner sep=0pt] {}  --
        (1, 1) node[circle, draw, fill, minimum size=1mm, inner sep=0pt] {}  --
        (.2, 1) node[circle, draw, fill, minimum size=1mm, inner sep=0pt] {}  --
        (0, 0)
;
\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容