我想知道两点之间的等距点。 例如:
p1 = (1,1)
p2 = (5,5)
我期待的答案是:
def getEquidistantPoints(p1, p2, HowManyParts):
#some code
return (array with points)
在这个例子中,p1
,和p2
:
A = getEquidistantPoints(p1,p2,4)
A = [(1,1),(2,2),(3,3),(4,4),(5,5)]
永远是一条直线。
HowManyParts
在这种情况下是被划分的整个距离
类似于 numpy.linspace()
但在二维中。
最佳答案
由于连接两点的线的线性,您可以简单地使用numpy.linspace
对于每个维度独立:
import numpy
def getEquidistantPoints(p1, p2, parts):
return zip(numpy.linspace(p1[0], p2[0], parts+1),
numpy.linspace(p1[1], p2[1], parts+1))
例如:
>>> list(getEquidistantPoints((1,1), (5,5), 4))
>>> [(1.0, 1.0), (2.0, 2.0), (3.0, 3.0), (4.0, 4.0), (5.0, 5.0)]
关于python - 两点之间的等距点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47443037/