利用python计算折线的坐标

给你一个含大量坐标,坐标处在点集的字典,如何用Python计算折线长度
{
"points": [
[
244.8598130841,
339.2523364486
],
[
228.9719626168,
505.6074766355
],
[
902.8037383178,
525.2336448598
],
[
1736.8985507246,
508.768115942
]
]
}

望采纳


可以用Python的内置函数 math.sqrt() 来计算两个点之间的欧几里得距离,然后把这些距离相加起来就可以得到折线的总长度了。下面是一个例子:

import math

# 定义一个含有坐标的字典
points = {
    "points": [
        [244.8598130841, 339.2523364486],
        [228.9719626168, 505.6074766355],
        [902.8037383178, 525.2336448598],
        [1736.8985507246, 508.768115942]
    ]
}

# 定义一个函数来计算两个点之间的欧几里得距离
def euclidean_distance(point1, point2):
    return math.sqrt((point1[0] - point2[0])**2 + (point1[1] - point2[1])**2)

# 定义一个函数来计算折线的总长度
def polyline_length(points):
    length = 0
    for i in range(1, len(points)):
        length += euclidean_distance(points[i-1], points[i])
    return length

# 计算折线的总长度
length = polyline_length(points["points"])
print(length)  # 输出:2071.95901463799

定义一个求两点之间距离的函数,然后依次遍历字典里的点坐标,累加距离就是折线长度