如何在python中计算两点之间的线的坐标?

Kar*_*rak 5 python math geometry vector

如何获取python中两个点之间的所有坐标点?例如:我有一个坐标为x1,y1的点,另一个坐标为x10,y10。我需要它们之间的所有点(在这种情况下,例如x2,y2 ... x9,y9)。非常感谢您的帮助!

Thi*_*lle 9

def intermediates(p1, p2, nb_points=8):
    """"Return a list of nb_points equally spaced points
    between p1 and p2"""
    # If we have 8 intermediate points, we have 8+1=9 spaces
    # between p1 and p2
    x_spacing = (p2[0] - p1[0]) / (nb_points + 1)
    y_spacing = (p2[1] - p1[1]) / (nb_points + 1)

    return [[p1[0] + i * x_spacing, p1[1] +  i * y_spacing] 
            for i in range(1, nb_points+1)]

print(intermediates([1, 2], [10, 6.5], nb_points=8))

# [[2.0, 2.5], [3.0, 3.0], [4.0, 3.5], [5.0, 4.0], 
#  [6.0, 4.5], [7.0, 5.0], [8.0, 5.5], [9.0, 6.0]]
Run Code Online (Sandbox Code Playgroud)


duf*_*ymo 6

“他们都是”?有无数个。

您可以计算这两点之间的直线的斜率和截距。知道了这些之后,您就可以使用直线方程式来计算每个x值的y值。

这是高中代数。有什么问题?

给定两个点(x1, y1)(x2, y2)它们之间的直线方程为:

y = m*x + b
Run Code Online (Sandbox Code Playgroud)

哪里

m = slope = (y1-y2)/(x1-x2)
Run Code Online (Sandbox Code Playgroud)

b = y-intercept = (x1*y2 - x2*y1)/(x1-x2)
Run Code Online (Sandbox Code Playgroud)

如果您的意思是“画出在两点之间通过的圆并找到其中的所有点”,那么我会将中心点计算为该线的中点,半径等于该线长度的一半。通过确定到中心的距离并将其与半径进行比较,可以计算出点是在圆的内部还是外部。

圆内外都有无数个点。您在这里真的想做什么?


MBo*_*MBo 5

似乎您想为给定点之间的线段生成整数点列表。这个问题在计算机图形学中得到解决,例如使用Bresenham 算法DDA 算法