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)
“他们都是”?有无数个。
您可以计算这两点之间的直线的斜率和截距。知道了这些之后,您就可以使用直线方程式来计算每个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)
如果您的意思是“画出在两点之间通过的圆并找到其中的所有点”,那么我会将中心点计算为该线的中点,半径等于该线长度的一半。通过确定到中心的距离并将其与半径进行比较,可以计算出点是在圆的内部还是外部。
圆内外都有无数个点。您在这里真的想做什么?