distance = math.sqrt((point[0] - vertex[0]) ** 2 + (point[1] - vertex[1]) ** 2)将欧式距离换成其他距离函数
时间: 2023-10-30 20:06:07 浏览: 123
Matlab 7 - Function Reference Volume 1 A - E.pdf
5星 · 资源好评率100%
如果你想将欧式距离替换为其他距离函数,可以考虑以下几种常见的距离函数:
1. 曼哈顿距离(Manhattan Distance):
曼哈顿距离是指从一个点到另一个点沿着网格形式的路径所经过的格点数目总和。在二维平面上,曼哈顿距离可以通过以下公式计算:
distance = abs(point[0] - vertex[0]) + abs(point[1] - vertex[1])
2. 切比雪夫距离(Chebyshev Distance):
切比雪夫距离是指从一个点到另一个点在各个坐标轴上的数值差的最大值。在二维平面上,切比雪夫距离可以通过以下公式计算:
distance = max(abs(point[0] - vertex[0]), abs(point[1] - vertex[1]))
3. 闵可夫斯基距离(Minkowski Distance):
闵可夫斯基距离是曼哈顿距离和欧式距离的一般化形式。它可以通过以下公式计算:
distance = ((point[0] - vertex[0]) ** p + (point[1] - vertex[1]) ** p) ** (1/p)
这里的p是一个正整数,当p=1时,闵可夫斯基距离等同于曼哈顿距离;当p=2时,等同于欧式距离。
这些是一些常见的距离函数,你可以根据具体的需求选择适合的距离函数来替代欧式距离。
阅读全文