Я застрял в проблеме, которую кажется легко решить, но я не могу точно определить правильную формулу.
У меня есть список групп шестиугольников в системе координат куба. Я знаю координаты куба групп, но мне нужно вычислить «глобальную» координату маленького шестиугольника в данной группе.
Например, на изображении ниже я знаю координаты для GroupA (x=0, y=0, z=0)
и GroupB (x=-1, y=1, z=0)
. Как я могу рассчитать координаты центральной плитки GroupB, учитывая, что каждая группа имеет одинаковый радиус (в данном случае радиус равен 1), и они не перекрывают друг друга (давайте рассмотрим это как мозаику групп, начиная с 0, 0,0, что создает шестнадцатеричную сетку)?
В этом простом примере я, как человек, знаю, что центральный фрагмент GroupB равен (x=-1, y=3, z=-2)
, но мне нужно кодировать эту логику c таким образом, что компьютер может рассчитать его для любой данной группы на карте. Мне не особо нужна помощь по самому коду, но по всему логике c.
В этой статье автор делает обратное (переходя от маленького шестиугольника к другому и пытаясь найти его группу): https://observablehq.com/@sanderevers / шестиугольная черепица шестиугольной сетки
![Hexagon groups](https://i.stack.imgur.com/VbHoh.png)
Любая помощь будет принята с благодарностью! Спасибо!