У меня есть 2D-матрица, представленная в виде вектора значений, индекса, представляющего первую ячейку, и пары координат, представляющей вторую ячейку.
vector<double> matrix;
auto index = 10;
auto x1 = index % width;
auto y1 = index / width;
auto x2 = ...
auto y2 = ...
Мне нужно найти расстояние между этими двумя ячейками, где расстояние равно 1 для первого «кольца» из 8 соседних ячеек, 2 для второго кольца и так далее.
Есть ли способ быстрее, чем евклидово расстояние?