Ho letto questo articolo: generating/creating hexagon grid in C. Ma sembra che sia l'autore che il rispondente lo abbiano già abbandonato.Come disegnare/gestire una griglia esagonale?
√(hexagonSide - hexagonWidth * hexagonWidth)
: Che cos'è hexagonSide e hexagonWidth? Non sarà lo < 0 (quindi la radice quadrata non può essere calcolata).
E, posso inserire un esagono in un rettangolo? Ho bisogno di creare una griglia come questa:
piùUna cosa, come posso organizzare il mio array per memorizzare i dati, così come ottenere il quale le cellule sono accanto a una cella?
Non mi è mai stato insegnato l'esagono, quindi non ne so nulla, ma posso facilmente imparare nuove cose, quindi se puoi spiegarmi o darmi un indizio, potrei farlo da solo.
Facendo questo richiederebbe niente di più che un po 'di geometria/trigonometria. Gli angoli al vertice di un esagono sono tutti 360/3 gradi o 120 gradi. Con queste informazioni e l'uso dei metodi della libreria Java Math (anche se fai attenzione a cambiare i gradi in radianti), dovresti essere in grado di disegnare facilmente senza l'uso di altro codice. Lavora con diagrammi su carta prima di commettere il codice su IDE. Trovo che sia meglio pensare a un esagono come sei triangoli equilateri, ma fare tutto ciò che è meglio per te. Quindi torna con il tuo codice se sei bloccato e saremo più che felici di aiutarti! –
Non sono sicuro di cosa stia parlando il tizio del collegamento, ma la trigonometria di base ti dirà che il lato dell'esagono, s, è correlato alla sua altezza dalla radice s * quadrata di 3 o in Java 's * Math.sqrt (3); ' –
Vedere questo post su come trovare i vicini http://stackoverflow.com/questions/6661169/finding-adjacent-neighbors-on-a-hexagonal-grid – Buhb