这两个或多个点之间的最长距离

Posted

技术标签:

【中文标题】这两个或多个点之间的最长距离【英文标题】:longest distance between these two or more points 【发布时间】:2020-05-16 05:44:04 【问题描述】:

编写一个程序,获取两个不同的点 A(x1,y1) 和 B(x2,y2),并返回这两个点之间的距离。距离公式为勾股定理。

import math

def get_dist(point):
    return math, sqrt((points[0]-points[2])**2 + (points[1]-points[3])**2)

【问题讨论】:

points 在哪里定义?你的参数是point 另见Open letter to students with homework problems 这段代码有几个错误,异常不言自明。修复它们后,您需要哪些具体问题的帮助? 【参考方案1】:

也许你必须更有序,例如你的函数计算两点的距离,所以你的输入是 2 个变量,每个变量是一个排序器对:

import math

def get_dist(point_1:tuple, point_2:tuple):
    return math.sqrt((point_1[0]-point_2[0])**2 + (point_1[1]-point_2[1])**2)

【讨论】:

【参考方案2】:

Python 3.7 或更低版本

如果您使用的是 python 3.7 或更低版本,则可以使用使用勾股定理的内置函数math.hypot。然后你可以定义一个函数如下:

import math


def get_dist(point_a, point_b):
    x1, y1 = point_a
    x2, y2 = point_b
    return math.hypot(x1-x2, y1-y2)


if __name__ == '__main__':
    a = (1, 1)
    b = (-3, 4)
    print('get_dist(a, b):', get_dist(a, b))

Python 3.8

正如评论中提到的,如果您使用的是 python 3.8,您可以直接使用 math.dist 函数,而无需像我上面那样自己实现任何东西。

希望这对您有所帮助。

【讨论】:

你说“Python已经有一个内置函数......”很有趣,然后不要使用math.dist

以上是关于这两个或多个点之间的最长距离的主要内容,如果未能解决你的问题,请参考以下文章

如何使用超声波测量两个或多个 iPhone 设备之间的距离

算法:点与点之间欧式距离最小

开放/封闭原则 OO 类设计

两个纬度/经度点之间的谷歌地图距离计算?

计算gps点之间的步行距离

计算两个CGPoints之间的距离