I am trying to know equidistant points between two points. For example:
p1 = (1,1)
p2 = (5,5)
The answer that I am expecting is:
def getEquidistantPoints(p1, p2, HowManyParts):
#some code
return (array with points)
In this example, with p1
, and p2
:
A = getEquidistantPoints(p1,p2,4)
A = [(1,1),(2,2),(3,3),(4,4),(5,5)]
Always will be a straight line.
HowManyParts
in this case is the whole distance that is divided
something like numpy.linspace()
but in two dimensions.
Thanks to linearity of the line connecting two points, you can simply use numpy.linspace
for each dimension independently:
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))
For example:
>>> 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)]