我有一个问题,我需要在我的图表中用它们的中心(我称之为节点)来表示图 block 上的六边形。给定一 block 六边形,如何确定两个六边形 x
和 y
是否相连?
(来源: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/