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

2024-09-28 21:33:24 发布

您现在位置:Python中文网/ 问答频道 /正文

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


Tags: 情况x1x2x10y1y2x9y9
3条回答
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]]

“所有人”?有一个无限的数字。

你可以calculate the slope and intercept of the line between those two points。知道了这些,你就可以用直线方程计算出y在x的每一个值上的值。

这是高中代数。怎么了?

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

y = m*x + b

其中

m = slope = (y1-y2)/(x1-x2)

以及

b = y-intercept = (x1*y2 - x2*y1)/(x1-x2)

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

圆内外都有无穷多个点。你到底想在这里做什么?

似乎要为给定点之间的线段生成一个整数点列表。这个问题可以在计算机图形学中解决,例如,使用Bresenham algorithmDDA algo

相关问题 更多 >