Berkat pos ini: Ubin heksagonal dan menemukan tetangga yang berdekatan , saya dapat mengumpulkan ubin yang berdekatan dengan ubin yang diberikan. Tapi saya cukup banyak terjebak pada algoritma yang hanya memberi saya "cincin" ubin yang ditentukan oleh offset. Algoritme yang diberikan dalam post Stack Overflow tidak terlalu peduli dengan urutan pengumpulan ubin.
Saya tahu bahwa dengan setiap offset 6 ubin ditambahkan.
- Offset 1 memberi Anda 6 ubin (ubin berdekatan pertama).
- Offset 2 memberi Anda 12.
- Offset 3 memberi Anda 18, dll.
Ada pertumbuhan konstan 6 dengan masing-masing offset. Jadi saya berasumsi harus ada aturan yang menyesuaikan dengan offset ini. Saya tidak tahu persis yang ini. Siapa saja?
sumber
Saya telah menemukan artikel ini menjadi referensi yang sangat baik untuk algoritma grid heksagonal, dan bagian tentang "Jarak" menyediakan metode untuk menentukan jumlah langkah antara dua ubin. Jika Anda mengubah koordinat aksial (xy) menjadi koordinat kubus (xyz), jarak selalu sama dengan yang terbesar dari offset koordinat antara dua petak, atau maks (| dx |, | dy |, | dz |).
Pencarian lengkap seluruh kotak untuk ubin pada jarak yang diinginkan adalahO ( n2) dengan dimensi grid, tetapi ini adalah implementasi sederhana yang bekerja dengan baik untuk grid kecil.
sumber