Math 六边形网格上距离的计算

Math 六边形网格上距离的计算,math,graph,Math,Graph,我试图确定在六边形网格上从一个节点到另一个节点所需的步骤数(实现中的启发式成本)。我使用的当前方法适用于常规矩阵,但它会为我的六边形网格生成错误的结果 我目前的方法是: private void calculateHeuristicCost(Node node, Node endNode) { if(node != null) { node.setHeuristicCost(Math.abs(node.getX() - endNode.getX()) +

我试图确定在六边形网格上从一个节点到另一个节点所需的步骤数(实现中的启发式成本)。我使用的当前方法适用于常规矩阵,但它会为我的六边形网格生成错误的结果

我目前的方法是:

private void calculateHeuristicCost(Node node, Node endNode) {
        if(node != null) {
            node.setHeuristicCost(Math.abs(node.getX() - endNode.getX()) + Math.abs(node.getY() - endNode.getY()));
        }
    }
预期:

Distance from 'T': 
  [  5][  4][  4][  4][  4]
[  5][  4][  3][  3][  3]
  [  4][  3][  2][  2][  2]
[  4][  3][  2][  1][  1]
  [  3][  2][  1][  T][  1]
实际:

Distance from 'T': 
  [  7][  6][  5][  4][  5]
[  6][  5][  4][  3][  4]
  [  5][  4][  3][  2][  3]
[  4][  3][  2][  1][  2]
  [  3][  2][  1][  T][  1]
你能帮我找到计算两个节点之间距离的正确公式吗