Gracias a esta publicación: fichas hexagonales y encontrar a sus vecinos adyacentes , puedo recoger fichas adyacentes a una ficha determinada. Pero estoy bastante atascado en un algoritmo que me da solo un "anillo" de mosaicos especificados por un desplazamiento. El algoritmo dado en esa publicación de desbordamiento de pila no se preocupa exactamente por el orden en que recoge los mosaicos.
Sé que con cada desplazamiento se agregan 6 fichas.
- El desplazamiento 1 te da 6 fichas (las primeras fichas adyacentes).
- Offset 2 te da 12.
- Offset 3 te da 18, etc.
Hay un crecimiento constante de 6 con cada desplazamiento. Así que supongo que debería haber una regla que se adapte a estas compensaciones. No puedo entender exactamente esto. ¿Nadie?
fuente
He encontrado que este artículo es una muy buena referencia para los algoritmos de cuadrícula hexagonal, y su sección sobre "Distancias" proporciona un método para determinar el número de pasos entre dos mosaicos. Si convierte sus coordenadas axiales (xy) en coordenadas de cubo (xyz), la distancia siempre es igual a la mayor de las compensaciones de coordenadas entre las dos teselas, o max (| dx |, | dy |, | dz |).
Una búsqueda exhaustiva de la cuadrícula completa para las fichas a la distancia deseada esO ( n2) con las dimensiones de la cuadrícula, pero es una implementación simple que funciona bien para cuadrículas pequeñas.
fuente