Visitatori
Pagine visitate

Come creare una griglia esagonale

Qualunque programma si decida di utilizzare per disegnare le mappe, quasi subito ci si imbatte nel problema di creare una griglia esagonale, possibilmente numerata. Se in tutti i programmi in fondo potrebbe essere sufficiente (ma un po' noioso) disegnare un esagono e poi crearne tante copie, numerare gli esagoni diventa un compito immane. Un semplice programma che crea automaticamente una griglia esagonale, eventualmente numerata, delle dimensioni che servono è MkHexGrid: creando un semplice script (non è necessario leggere alcun manuale, basta adattare gli esempi forniti dall'autore) si ottiene in formato .svg la griglia necessaria (ma esporta anche in altri formati). Basta aprirla in Inkscape e si può iniziare a generare la mappa! Unica avvertenza: così come viene generata, la griglia pare non modificabile da Inkscape. Se dovesse essere necessario, basta esportarla in formato pdf e poi reimportarla in Inkscape.

La dimensione degli esagoni: le pedine sono normalmente quadrati di lato 12,7 mm (1/2"), più raramente 15,875 mm (5/8"), ma quali dimensioni devono avere gli esagoni per poterle contenere? Vediamo di determinare come dimensionare gli esagoni con semplici considerazioni geometriche. Per quanto siano banali, perché ricalcolare tutto ogni volta?

Immaginiamo di porre per bene una pedina quadrata di lato \(\ell\) centrata nell'esagono. Comunque la ruotiamo, è contenuta in un cerchio di diametro pari alla sua diagonale, quindi di raggio \(r=\ell\sqrt{2}/2\). Se vogliamo che la pedina sia interamente contenuta nell'esagono comunque la si orienti, il raggio di questo cerchio non può superare quello del cerchio inscritto nell'esagono. Indichiamo con \(R\) il lato dell'esagono (che coincide col raggio del cerchio circoscritto all'esagono). Poiché il raggio del cerchio inscritto corrisponde all'altezza di un triangolo equilatero di lato \(R\), si ha \( r= R \sqrt{3}/2 \). Pertanto \( \ell = R \sqrt{3/2} \simeq 1,225\,R\), ovvero \( R = \ell \sqrt{2/3} \simeq 0,816\, \ell\). Questo è il minimo lato dell'esagono che garantisce che la pedina sia interamente contenuta nell'esagono. Pertando per poter contenere una pedina da 12,7 mm bisogna avere una griglia con esagoni di lato non inferiore a 10,36 mm circa (39,15 px)1. Questa è la dimensione ottimale degli esagoni, il minimo ingombro degli esagoni che garantisce che le pedine non si tocchino.

Si può risparmiare qualcosa se ci si accontenta che la pedina sia interamente contenuta nell'esagono solo quando è orientata con due lati paralleli ai lati dell'esagono come normalmente si fa (si lascia quindi che i suoi spigoli sporgano un po' qualora la si ruoti). In tal caso, considerando il triangolo ACH della figura, si ha $$ \frac{\ell}{2} = \left(R-\frac{\ell}{2}\right){\sqrt{3}} $$ e quindi $$ \ell = R \,\frac{2\sqrt{3}}{1+\sqrt{3}}\simeq 1,\!268\; R, \;\;\;\;\; R = \ell \,\frac{1+\sqrt{3}}{2\sqrt{3}}\simeq 0,\!789\; \ell $$ Pertanto con pedine da 12,7 mm sono sufficienti esagoni con lati di 10,02 mm circa (37,87 px), non abbiamo risparmiato molto!

Valutiamo adesso qual è la massima dimensione delle pedine che possono essere utilizzate con una griglia di esagoni con lato \(R\), lasciandole sporgere. Bisogna comunque garantire che sia possibile porre una pedina in ogni esagono senza che vi sia sovrapposizione tra pedine poste in esagoni adiacenti. Nella condizione di massima densità di pedine, pedine poste in esagoni adiacenti arrivano a toccarsi coprendo interamente la griglia. In tale situazione la distanza tra due esagoni in direzione parallela ai lati della pedina non deve superare il lato \(\ell\) della pedina. La distanza tra i centri di due esagoni è pari al doppio del lato dell'esagono, \(2R\). Dal momento che solo due lati possono essere paralleli al segmento che unisce i centri degli esagoni, la proiezione nella direzione normale misura \(\sqrt{3}R\). Pertanto deve essere \(\ell\le\sqrt{3}R\) ovvero \(R\ge\ell/\sqrt{3} \approx 0.577 \ell\). Per le pedine canoniche da 12,7 mm la dimensione minima possibile della griglia è circa 7,33 mm.

Misurando col righello gli esagoni ho rilevato che in genere hanno un lato leggermente inferiore ai 9 mm (direi prossimi alla media geometrica tra il lato "ottimo" e quello "minimo"), solo in Napoleon at Bay della avalon Hill ho trovato esagoni con lato inferiore (intorno a 8,3 mm). Personalmente preferisco esagoni "ampi" che non creano mai problemi e consiglio di non scendere mai sotto i 9 mm (34 px circa). Napoleon at Bay va considerata un'eccezione in quanto la densità di pedine è estremamente bassa a causa della particolarità del sistema di gioco (20-30 pedine in campo in due mappe che complessivamente hanno 78 x 54 esagoni).

La dimensione della mappa: immaginando di orientare gli esagoni come nelle figure di questa pagina, indichiamo con \(N_x\) il numero di esagoni nella direzione orizzontale (la direzione in cui sono le "punte") e con \(N_y\) il numero di esagoni nella direzione verticale (quella in cui sono le "basi"), e sia \(R\) il lato degli esagoni. La dimensione complessiva della mappa è evidentemente $$ L_x = \left(N_x+\frac{1}{2}\right)\frac{3}{2}R, \;\;\;\;\; L_y = \left(N_y +b\right) \sqrt{3}R $$ dove \(b=1/2\) se le colonne hanno tutte lo stesso numero di esagoni (come avviene automaticamente nelle griglie generate da MkHexGrid) e \(b=0\) se le colonne pari hanno un esagono in meno di quelle dispari (da entrambi i lati della mappa sporgono sempre le stesse colonne). Le dimensioni del foglio di carta sono quelle che vincolano le dimensioni degli esagoni (o la realizzabilità di una data mappa)!

Torna all'inizio della pagina


1. A partire dalla versione 0.92 Inkscape ha aggiornato la definizione del pixel da 1/90 in a 1/96 in, ovvero da circa 0,2822 mm a circa 0,2646 mm. Tutti i riferimenti alle dimensioni in pixel presenti in questa pagina fanno riferimento alla nuova definizione.