Converteer een rechthoekig raster van punten in een zeshoekig raster

Ik heb een rechthoekig raster van punten zoals diten ik wil hier indexen van krijgen punten die een hexagonaal raster vormen zoals dit .

Hoe kan ik het rechthoekige raster “hexagonaliseren”, aangezien ik alleen volledige zeshoeken wil tekenen?

BEWERKEN:

Ik heb nog een foto toegevoegd die laat zien wat ik wil bereiken


Antwoord 1, autoriteit 100%

U kunt twee rasters maken, één met de afmetingen N/2xN/2 waarbij N=20, en de andere is (N-1)/2+1x(N-1)/2+1. Als de aangeroepen index oneven is, ga je naar de binnenste cellen in je tekening met lengte N-1, anders de buitenste met lengte N.

Ik denk dat dit de meest economische/geoptimaliseerde manier is om te gaan.


Antwoord 2

Je afbeelding herhaalt zich elke 2 eenheden horizontaal en elke 4 verticaal. Dus je moet naar x mod 2 en y mod 4 kijken en op basis daarvan de lijnen bepalen.


Om dat expliciet te maken:

(x mod 2,y mod 4) connections
(0,0)             top left to bottom right
(1,0)             bottom left to top right
(0,1)             bottom left to top left
(1,1)             bottom right to top right
(0,2)             bottom left to top right
(1,2)             top left to bottom right
(0,3)             bottom right to top right
(1,3)             bottom left to top left


Uit uw opmerking blijkt dat de cijfers niet zijn toegewezen aan de vierkanten, maar zijn toegewezen aan de regel direct onder of aan hun linkerkant (en dat u de y-coördinaat als eerste hebt vermeld).

FISTERING X Ten eerste, de volgende sites zijn in de eerste zeshoek, maar niet de tweede:
(1,0), (1,3), (0,2), (0,1)
De volgende sites zijn in geen zeshoek:
(0,0), (1,1), (1,2), (0,3)

Als u naar (x mod 2, y mod 4) kijkt, die uw sites splitst in de twee lijsten die u nodig hebt.

Other episodes