Minumum Working Example
\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}
As above, when specifying the nodes by their co-ordinates (blue) the lines reach the place but for the named nodes (in red) they do. Also, --cycle doesn't work with named nodes.
I suspect that it has something to do with node having a border or something. Anybody knows the exact reason for this behavior?


(0,0) coordinateor(0,0) node[coordinate] {}. – muzimuzhi Z Aug 28 '21 at 09:16(0,0) node (a) {}is controlled by the default settingshape=rectangle, inner sep=.3333em. – muzimuzhi Z Aug 28 '21 at 09:23