Graças a este post: ladrilhos hexagonais e encontrando seus vizinhos adjacentes , sou capaz de coletar ladrilhos adjacentes a um determinado ladrilho. Mas estou praticamente preso a um algoritmo que me fornece apenas um "anel" de blocos especificado por um deslocamento. O algoritmo fornecido na publicação Stack Overflow não se importa exatamente com a ordem em que ele coleta os blocos.
Eu sei que a cada deslocamento são adicionados 6 blocos.
- O deslocamento 1 fornece 6 blocos (os primeiros blocos adjacentes).
- O deslocamento 2 fornece 12.
- O deslocamento 3 fornece 18, etc.
Há um crescimento constante de 6 em cada deslocamento. Então, eu suponho que deve haver uma regra que se adapte a essas compensações. Não consigo entender exatamente isso. Qualquer um?
fonte
Eu achei este artigo uma excelente referência para algoritmos de grade hexagonal, e sua seção "Distâncias" fornece um método para determinar o número de etapas entre dois blocos. Se você converter suas coordenadas axiais (xy) em coordenadas do cubo (xyz), a distância será sempre igual à maior das compensações de coordenadas entre os dois blocos, ou max (| dx |, | dy |, | dz |).
fonte