【发布时间】:2020-04-09 12:09:13
【问题描述】:
如何使用循环计算列表中多个点之间的距离。
def create_list(x_range,y_range, locations):
generated_list = []
for x in range(locations):
x_range = random.randint(-300,300)
y_range = random.randint(-300,300)
generated_list.append([x_range, y_range])
return generated_list
上面创建了一个随机列表,我需要使用以下代码计算所有点返回起点的总距离:
def calculate_distance(starting_x, starting_y, destination_x, destination_y):
distance = math.hypot(destination_x - starting_x, destination_y - starting_y) # calculates Euclidean distance (straight-line) distance between two points
return distance
这里我需要使用上面的函数循环计算所有点之间的距离,我将如何使用循环计算所有点之间的距离
【问题讨论】:
-
所有点之间是什么意思?喜欢来自
[p1, p2, p3]计算d(p1, p2), d(p1, p3),d(p2, p3)? -
所以第一个函数将生成随机坐标,如 [[5,3],[6,9],[7,2]] 我需要使用第二个函数计算这些点之间的距离.我知道我需要遍历列表,但我将如何计算总距离?
-
请回答我之前评论中的问题,因为您重复使用了“所有点之间”这个棘手的表达方式
-
抱歉,由于某种原因无法看到您的完整评论。例如,我将 a(x1,y2), b(x3,y4), c(x5,y6) 作为图上的点。我想计算欧几里得距离。所以我需要迭代所以它这样做:(x1 - x3) + (y2 - y4) 这将是点 a 和点 b 之间的距离。然后将此距离分配给一个变量并存储它。然后我想计算点 b 和点 c 之间的距离,然后计算点 c 到点 a 之间的距离,并添加所有这些值,这将等于所有点之间的总距离。我希望这更清楚一点?
-
你可以对这个问题说是 :D,我现在正在回答