我有一个问题,我需要在我的图表中通过它们的中心(我称之为节点)来表示瓷砖上的六边形。给定一个六边形图块,如何找到两个六边形 xy 是否相连?

瓷砖上的 C++ 连接六边形-LMLPHP
(来源: domathtogether.com )

以下内容适用于六边形,它们在二维空间中的位置,但是我想用整数坐标 (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,具体取决于行奇偶校验。
  • 关于瓷砖上的 C++ 连接六边形,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22685636/

    10-12 16:19