English Language

nanDECK - HEXGRID

HEXGRID è un nuovo comando, utile quando dovete disegnare una griglia esagonale su una carta (o su una pagina). La sintassi per questo comando è:

HEXGRID = range, x, y, width, height, hex_size, flags, front_color (, back_color, thickness)

Gli ultimi due parametri sono opzionali: se omesso, il back_color standard è EMPTY e, se omesso, lo spessore standard è 0 (1 pixel).

Per esempio, se volete ottenere una griglia esagonale di 18 x 20 cm, con un esagono di lato 1 cm (e uno spessore di 1 mm), potete scrivere:

CARDSIZE = 18, 20
HEXGRID = 1, 0, 0, 18, 20, 1, , #000000, EMPTY, 0.1

I flag utilizzabili nel settimo parametro sono:

D = punto centrale
L = lettere
N = numeri
C = coordinate numeriche
E = coordinate con lettere e numeri
. = separatore per il flag C
- = separatore per il flag C
_ = separatore per il flag C
X = nessuna griglia

Con i flag L, N, C ed E, vengono scritte queste coordinate in ogni esagono:
L) A, B, C, D...
N) 1, 2, 3, 4...
C) 0101,0102,0103...0201,0202,0203...
E) A1,A2,A3...B1,B2,B3...
C.) 1.1,1.2,1.3...2.1,2.2,2.3...
C-) 1-1,1-2,1-3...2-1,2-2,2-3...
C_) 1_1,1_2,1_3...2_1,2_2,2_3...

Il font utilizzato per le coordinate è l'ultimo indicato con un comando FONT. Potete indicare anche più di una coordinata, utilizzando più di un flag.


Per fare riferimento ad un singolo esagono, c'è una nuova funzione: FRAMEHEX. Potete utilizzarla per definire automaticamente un frame (un'etichetta con informazioni di posizione) per ogni esagono. Per esempio:

CARDSIZE = 18, 20
HEXGRID = 1, 0, 0, 18, 20, 1, , #000000, EMPTY, 0.1
[base] = FRAMEHEX(0, 0, 18, 20, 1, E)

Questa funzione crea frame multipli con nome <basea1>, <basea2>, <basea3>, etc. Questi frame possono essere utilizzati con normali comandi, come RECTANGLE, ELLIPSE, TEXT e così via. Per esempio, questo comando disegna un cerchio sul primo esagono:

CARDSIZE = 18, 20
HEXGRID = 1, 0, 0, 18, 20, 1, , #000000, EMPTY, 0.1
[base] = FRAMEHEX(0, 0, 18, 20, 1, E)
ELLIPSE = 1, <basea1>, #FF0000

La sintassi per questa funzione è:

[name] = FRAMEHEX(x, y, width, height, hex size, flags (, zoom))

L'ultimo parametro (zoom) è opzionale. I flag utilizzabili nel sesto parametro sono:

L = lettere
N = numeri
C = coordinate numeriche
E = coordinate con lettere e numeri
O = frame esterno (il default, crea un frame adatto per disegnare un cerchio al di fuori dell'esagono)
I = frame interno (crea un frame adatto per disegnare un cerchio al di dentro dell'esagono)

Il parametro zoom ha un default di 100. Se avete bisogno di frame grandi la metà, potete indicare un valore di 50, Se volete frame grandi il doppio, il valore da usare è 200, e così via.


Potete usare ? e * come caratteri jolly per fare riferimento a gruppi di frame (? per un carattere singolo qualsiasi, * per un gruppo di caratteri qualsiasi). Per esempio, questo comando disegna un cerchio su tutti gli esagoni della prima colonna:

CARDSIZE = 18, 20
HEXGRID = 1, 0, 0, 18, 20, 1, , #000000, EMPTY, 0.1
[base] = FRAMEHEX(0, 0, 18, 20, 1, E)
ELLIPSE = 1, <basea*>, #FF0000

Potete usare ~ per fare riferimento ad un frame casuale, per esempio, questo comando disegna un cerchio in un esagono casuale nella prima colonna:

CARDSIZE = 18, 20
HEXGRID = 1, 0, 0, 18, 20, 1, , #000000, EMPTY, 0.1
[base] = FRAMEHEX(0, 0, 18, 20, 1, E)
ELLIPSE = 1, <~basea*>, #FF0000


Concludendo, potete definire un gruppo di frame (con la funzione FRAMELIST), e usare un singolo comando su tutti gli esagoni referenziati, per esempio, questo script disegna tre cerchi sui primi tre esagoni:

CARDSIZE = 18, 20
HEXGRID = 1, 0, 0, 18, 20, 1,, #000000, EMPTY, 0.1
[base] = FRAMEHEX(0, 0, 18, 20, 1, E)
[group] = FRAMELIST(basea1, basea2, baseb1)
ELLIPSE = 1, <group>, #FF0000

Potete usare la funzione FRAMELIST anche con i caratteri jolly, per esempio:

CARDSIZE = 18, 20
HEXGRID = 1, 0, 0, 18, 20, 1,, #000000, EMPTY, 0.1
[base] = FRAMEHEX(0, 0, 18, 20, 1, E)
[group] = FRAMELIST(basea*, basek*, base?1, base?11)
ELLIPSE = 1, <group>, #FF0000


Torna alla pagina principale