【发布时间】:2020-05-03 13:34:33
【问题描述】:
我正在处理一个python 项目,我从一个函数中获取x, y 在dict 中的坐标值,如下所示:
centroid_dict = {0: (333, 125), 1: (288, 52), 2: (351, 41)}
其中0, 1, 2 是objectId 和(333, 125), (288, 52), (351, 41) 分别是它们的(x, y) 坐标值。我需要计算每个坐标之间的距离,这意味着:
0 - 1 -> ((333, 125) - (288, 52))
0 - 2 -> ((333, 125) - (351, 41))
1 - 0 -> ((288, 52) - (333, 125))
1 - 2 -> ((288, 52) - (351, 41))
2 - 0 -> ((351, 41) - (333, 125))
2 - 1 -> ((351, 41) - (288, 52))
要计算距离,我可以使用:
def calculateDistance(x1, y1, x2, y2):
dist = math.sqrt((x2 - x1) ** 2 + (y2 - y1) ** 2)
return dist
但是我想不出任何可以计算每个点之间距离的逻辑,因为 dict 的长度将来可能会增加。截至目前,它是3,但也可以是10。任何人都可以帮我提供一些想法。谢谢
【问题讨论】:
-
您可能想查看
itertools.combinations以生成映射中所有可能坐标的组合;你不妨refer to this thread。 -
kd tree 这会帮助你,这是一个图形问题
标签: python coordinates distance