Vor kurzem gab es einegute AntwortInWie zeichnet man mit TikZ eine dreidimensionale sechseckige Struktur?
Aber mir ist ein kleiner „Fehler“ aufgefallen, den ich anscheinend nicht beheben kann. Ich habe den Code, der das Problem zeigt, auf das Wesentliche reduziert:
\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}
Dieser Code zeichnet fünf Knoten mit sechseckiger Form, aber es gibt nur wenige Sechsecke, aber immer eine andere „Anzahl von wenigen“, Pixel „aus“, wie in diesem Bild gezeigt:
- Welcher Wert ist hierfür verantwortlich?
- Warum erfolgt die „Verschiebung“ mit unterschiedlicher Stärke?
- Wie man es repariert?
Antwort1
Sie benötigen outer sep=0
und es inner sep
hängt auch vom Knoteninhalt ab und die Knotengröße ändert sich entsprechend. Stattdessen können Sie minimum height/width
Schlüssel verwenden.
\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}