Regular Polygon with tip on the bottom
shape border rotate
is the parameter that you can use to rotate a shape
node.
But in this case, you also need to change where labels are placed.
Unfortunately this answer will change all your code. It uses hexagon corners as reference points and also as anchors
to place them one over the other. Hope it helps.
First example is not rotated
and second one has a 30 degree rotation.
\documentclass[border=2mm,tikz]{standalone}
\usepackage{tikz}
\usetikzlibrary{shapes}
\begin{document}
\begin{tikzpicture}[%
point/.style={circle, radius=0.15cm, fill=#1},
hex/.style={draw, regular polygon, regular polygon sides=6,minimum size=3 cm}]
\node[hex] (A) {};
\node[hex, anchor=corner 4] (B) at (A.corner 2) {};
\node[hex, anchor=corner 6] (C) at (A.corner 2) {};
\foreach \i/\j/\k in {
B/1/above, B/3/above, B/5/right,
C/3/above, C/5/below, A/5/below}
\node[point=black, label=\k:A] at (\i.corner \j) {};
\foreach \i/\j/\k in {
B/2/above, B/4/above, B/6/right,
C/2/above, C/4/below, A/4/below, A/6/right}
\node[point=gray, label=\k:B] at (\i.corner \j) {};
\end{tikzpicture}
\begin{tikzpicture}[%
point/.style={circle, radius=0.15cm, fill=#1},
hex/.style={draw, regular polygon, regular polygon sides=6,minimum size=3 cm, shape border rotate=30}]
\node[hex] (A) {};
\node[hex, anchor=corner 4] (B) at (A.corner 2) {};
\node[hex, anchor=corner 6] (C) at (A.corner 2) {};
\foreach \i/\j/\k in {
B/1/above, B/3/left, B/5/right,
C/3/below, C/5/below, A/5/below}
\node[point=black, label=\k:A] at (\i.corner \j) {};
\foreach \i/\j/\k in {
B/2/above, B/4/above, B/6/right,
C/2/above, C/4/below, A/4/below, A/6/right}
\node[point=gray, label=\k:B] at (\i.corner \j) {};
\end{tikzpicture}
\end{document}
Okay, here is an even more compact form using the shapes.geometric
library of tikz:
\documentclass[border=3mm]{standalone}
\usepackage{tikz}
\usetikzlibrary{shapes.geometric}
%
\begin{document}
%
\begin{tikzpicture}
\foreach \a in {30,150,270}{
\node[regular polygon, regular polygon sides=6, draw, minimum size=3cm, rotate=30] (\a) at (\a:{1.5cm+.2pt}) {};
\foreach \b/\c in {1/2,3/4,5/6}{
\fill (\a.corner \c) circle (2.5pt) node [above] {A};
\fill[gray] (\a.corner \b) circle (2.5pt) node[black, below] {B};
}
}
\end{tikzpicture}
%
\end{document}
Here's a simplified version for your graph.
Output
Code
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{shapes}
\tikzset{
poly/.style={draw, regular polygon, regular polygon sides=6, rotate=30, minimum size=\d cm},
style1/.style={circle, fill=gray, label={below:B}},
style2/.style={circle, fill=black, label={above:A}},
}
\begin{document}
\begin{tikzpicture}
\def\x{0}
\def\y{0}
\def\r{1.5}
\pgfmathsetmacro\dx{\r*cos(30)}
\pgfmathsetmacro\dy{\r*cos(30)}
\pgfmathsetmacro\d{2*\r}
\def\xc{\x+\dx}
\node[poly] (n1) at (\x,\y) {};
\node[poly] (n2) at (\xc*2,\y) {};
\node[poly] (n3) at (\xc,\y-\r*1.5) {};
% foreach for all three
\foreach \xx/\group in {1/{1,2,3},2/{1,2,3,4,5,6},3/{2,3,4,5}}{%
\foreach \x [evaluate=\x as \angle using int(90+(60*(\x-1)))] in \group {%%
\pgfmathsetmacro\switch{int(mod(\x, 2)) ? "style1" : "style2"} % choose style
\node[\switch] at (n\xx.corner \x) {};
}
}
\end{tikzpicture}
\end{document}