【问题标题】:Distance between two cells in a 2D matrix二维矩阵中两个单元格之间的距离
【发布时间】:2015-11-02 16:02:51
【问题描述】:

我有一个表示为值向量的二维矩阵、一个表示第一个单元格的索引和一对表示第二个单元格的坐标。

vector<double> matrix;
auto index = 10;

auto x1 = index % width;
auto y1 = index / width;
auto x2 = ...
auto y2 = ...

我需要找到这两个单元格之间的距离,其中 8 个相邻单元格的第一个“环”的距离等于 1,第二个环的距离等于 2,依此类推。

有没有比欧式距离更快的方法?

【问题讨论】:

    标签: c++ matrix euclidean-distance


    【解决方案1】:

    您需要的是修改后的Manhattan Distance。我认为您的用例可能有一个特定的名称,但我不知道。不管怎样,我就是这样做的。

    假设这两个点相距x 行和y 列。然后x+y 是曼哈顿距离。但在您的情况下,也允许对角线运动。因此,如果您最初沿对角线向该点移动,您将覆盖xy 中较小的一个,而另一个则剩余一些。然后,您可以水平/垂直移动以覆盖剩余距离。因此,您的度量距离将是max(x,y)

    给定积分(x1,y1)(x2,y2),答案将是max(|x1-x2|,|y1-y2|)

    【讨论】:

      猜你喜欢
      • 2017-09-10
      • 2022-11-21
      • 2016-10-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-28
      • 1970-01-01
      相关资源
      最近更新 更多