【发布时间】:2014-03-27 11:02:46
【问题描述】:
我有一个问题,我需要在我的图表中通过它们的中心(我将其称为节点)来表示瓷砖上的六边形。给定一块六边形,如何找到两个六边形 x 和 y 是否相连?
(来源: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.
}
【问题讨论】:
-
假设所有的六边形都具有相同的大小,您只需要在每隔一行上为水平位置应用一个偏移量。垂直步长始终保持不变。这样你就可以从整数坐标切换到欧几里得坐标,你可以使用你原来的方法。
-
这是什么
combinedRadius?我假设“连接”意味着六边形有一个共享的边缘。 -
这只是
d或2r的值。所有六边形都将具有相同的恒定半径。
标签: c++ hexagonal-tiles