瓷砖上的 C++ 连接六边形

标签 c++ hexagonal-tiles

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

enter image description here
(来源:domathtogether.com)

以下内容适用于六边形及其在二维空间中的位置,但是我想用整数坐标表示它们的位置 (0, 1), (0, 2), (0, 3), ( 1, 1), (1, 2), (1, 3) 等

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/

相关文章:

c++ - 如何朝相机的方向移动,OpenGL,c++

c++ - 如何使用 QSettings 向我的配置文件添加注释?

delphi - 绘制六边形

python - matplotlib 中的 Hexgrid 显示意外的颜色

c# - 统一: Texturing a Shoreline in a Hexgrid

c++ - 不可行函数模板的类型推导

c++ - g++ 和 clang++ - 删除重载转换运算符歧义获取的指针

c++ - -十六进制文字的 Wsign 转换警告

swift - 使用 Swift 创建平铺的十六进制游戏

c++ - 使用类递归创建链表,C++