У меня есть проблема, когда мне нужно представить шестиугольники на плитке по центру (который я называю узлом) на моем графике. Учитывая плитки шестиугольников, как я могу найти, если два шестиугольника x
а также y
подключены?
http://domathtogether.com/wp-content/uploads/2012/10/hexagons.png
Следующее будет работать на шестиугольники с их положением в двухмерном пространстве, однако я хочу представить их положение с помощью целочисленной координаты (0, 1), (0, 2), (0, 3), (1, 1), (1, 2), (1, 3) etc
,
if (n1->getPoint().getEuclideanDistance(n2->getPoint()) < diameter)
{
// The two are connected.
}
Предположим, что шестиугольники пронумерованы 012345 (верхняя строка 0), 0123456 (средняя строка 1), 012345 (нижняя строка 2): они касаются, когда они
в той же строке по индексам, которые отличаются на +/- 1, или
в строках, отличающихся на +/- 1, и индексы, равные или отличающиеся на +1 или -1, в зависимости от четности строки.
Других решений пока нет …