以不同的速率插值python列表以获取等距的值

时间:2018-09-27 21:01:06

标签: python python-3.x interpolation distance

我在Python中有两个列表,分别与2d数组中的x坐标和y坐标相对应,同时绕着椭圆盘旋。 x坐标看起来像这样:x_coords = [299.97, 298, 297, 296, 295.41, 295, 294.91, 295.012, 295.58, 296.1, ...],而y_coords的长度相同,但是值不同。

如您所见,这些值不是等距分布的,它们在整个列表中都会增加和减少(因为它们在椭圆周围移动)。我可以使用以下公式计算椭圆上任意两个相邻(x,y)点之间的距离:

import numpy as np
distances = []
for i in range(len(x_coords)):
    if i==len(x_coords)-1:
        break
    dist = np.sqrt((x_coords[i+1]-x_coords[i])**2 + (y_coords[i+1]-y_coords[i])**2)
    distances.append(dist)

当我打印distances时,我看到它们都是不同的。因此,我的(x,y)坐标对间距不相等。我想找到一种方法使它们之间的距离相等。我想象这将涉及在x_coordsy_coords内的每个值之间进行插值,以使distances返回均相等的值。当然,x_coordsy_coords还需要具有相等的长度,以便(x_coords[i], y_coords[i])对应于空间中相同位置的(x,y)点。我该怎么做?

0 个答案:

没有答案