Hexágonos deslocados na imagem TikZ

Hexágonos deslocados na imagem TikZ

Recentemente houve umÓtima respostaemComo desenhar uma estrutura hexagonal 3D com TikZ?

Mas notei um pequeno "bug" que não consigo consertar. Desmontei o código que mostra o problema:

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

\begin{document}
\begin{tikzpicture}
  \begin{scope}[%
      every node/.style={anchor=west,regular polygon, regular polygon sides=6,draw,inner sep=0.5cm},
      transform shape]
    \node (A) {A};
    \node (B) at (A.corner 1) {B};
    \node (C) at (B.corner 5) {C};
    \node (D) at (A.corner 5) {D};
    \node (E) at (D.corner 5) {E};
    \foreach \hex in {A,...,E}
    {
      \foreach \corn in {1,...,6}
        \draw[fill=white] (\hex.corner \corn) circle (2pt); 
    }
  \end{scope}
\end{tikzpicture}
\end{document}

Este código desenha cinco nós com formato hexagonal, mas os hexágonos são poucos, mas sempre um "número de poucos" diferente, pixels "desligados", como mostra esta imagem:

insira a descrição da imagem aqui

  • Qual valor é responsável por isso?
  • Por que a “mudança” está acontecendo com intensidade diferente?
  • Como corrigi-lo?

Responder1

Você precisaria outer sep=0e também inner sepdepende do conteúdo do nó e do tamanho do nó alterado de acordo. Em vez disso, você pode usar minimum height/widthchaves.

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

\begin{document}
\begin{tikzpicture}
  \begin{scope}[%
every node/.style={anchor=west,
regular polygon, 
regular polygon sides=6,
draw,
minimum width=2cm,
outer sep=0,
},
      transform shape]
    \node (A) {A};
    \node (B) at (A.corner 1) {B};
    \node (C) at (B.corner 5) {C};
    \node (D) at (A.corner 5) {DECF};
    \node (E) at (D.corner 5) {E};
    \foreach \hex in {A,...,E}
    {
      \foreach \corn in {1,...,6}
        \draw[fill=white] (\hex.corner \corn) circle (2pt); 
    }
  \end{scope}
\end{tikzpicture}
\end{document}

insira a descrição da imagem aqui

informação relacionada