Ho provato a “pasticciare” un po’ con il tuo codice 😀 Cercherò di spiegarti cosa ho utilizzato per introdurti all’utilizzo di TiKz.
`
\begin{tikzpicture}
\def\polyside{1.25cm}
\pgfmathsetmacro\polyrad{sqrt(\polyside^2-(\polyside/2)^2)}
\edef\polyrad{\polyrad cm}
\newcommand\esagono[2][]{\node[#1,regular polygon, regular polygon sides=6, minimum width=2*\polyside,draw,label=center:testo interno] (reg1) at (#2){};
\draw[fill](reg1) ++ (0,\polyrad*.4) — ++ (.25cm,0) — ++ (120:.5cm) — ++ (240:.5cm) — cycle;
\draw[fill](reg1) ++ (0,-\polyrad*.4) — ++ (.25cm,0) — ++ (-120:.5cm) — ++ (-240:.5cm) — cycle;}
\foreach\x in {0,…,4}{
\foreach\y in {0,…,4}{\esagono[yshift=2*\y*\polyrad]{30:2*\x*\polyrad}}}
\end{tikzpicture}
`
Innanzitutto ho definito [tt]\polyside[/tt] che rappresenta il lato del poligono (nel nostro caso un esagono). In tal modo puoi modificare direttamente il suo valore senza doverlo sostituire in tutto il documento. Faccio calcolare poi a TiKz la distanza tra il centro del poligono e il centro del lato e lo memorizzo come [tt]\polyrad[/tt] (il giochetto con la primitiva [tt]\edef[/tt] lo fatto per aggiungere [tt]cm[/tt] alla macro).
Fatto ciò definisco una nuova macro con due argomenti, uno facoltativo e uno obbligatorio: l’argomento facoltativo sono le opzioni che eventualmente puoi passare al nodo, mentre quello obbligatorio sono le sue coordinate. Il comando prevede prima la creazione di un nodo di nome [tt]reg1[/tt] con la forma esagonale come lo hai impostato tu e poi, partendo dal suo centro (la coordinata [tt]reg1[/tt] corrisponde con il centro del nodo se non indicato diversamente) disegna i due triangoli, riempendoli con l’opzione [tt]fill[/tt]. In fine i comandi [tt]\foreach[/tt] permettono di attuare dei cicli.
Spero che la spiegazione sia sufficientemente chiara. 😀