После прочтения Red Blob Games «отлично» article on heaxgon tile maps and their coordinates.Запрос на «окружающие гексагональные плитки» на основе осевых координат
Мне интересно, как можно было бы написать SQL-запрос, который возвращает плитки вокруг центрированной плитке до диапазона X. (предполагая, что «осевой координаты» рассматривается в статье)
Простая идея, которую я первый был был
WHERE x BETWEEN tile_x - 1 AND tile_x + 1 AND y BETWEEN tile_y - 1 AND tile_y + 1
Но это будет возвращать слишком много плитки, таким образом, что создает форму больше похожа на ромб, а не круг, который является то, что мне нужно.
К сожалению, я не нашел окончательного ответа на этот вопрос, может быть, кто-то здесь может дать мне подсказку.
Я уже думал о некоторых трюках на сумму координат и, если они больше, чем диапазон, но это не будет работать с осевыми координатами.
без вложения * реальный * мысли в этом, вам нужно добавить дополнительный test - «разделяет край с плиткой». – GalacticCowboy