Finding a point on a line

2019-01-23 07:37发布

问题:

I know the start and end points on a line segment. For this example say that the line segment has a distance of 5. Now I want to know the point that has a distance of three away from the end point. Any idea how to do this with math?

Start Point (0,0) End Point (0,5)

Point I want to find (0,2)

回答1:

If your points are (x1, y1) and (x2, y2), and you want to find the point (x3, y3) that is n units away from point 2:

d = sqrt((x2-x1)^2 + (y2 - y1)^2) #distance
r = n / d #segment ratio

x3 = r * x2 + (1 - r) * x1 #find point that divides the segment
y3 = r * y2 + (1 - r) * y1 #into the ratio (1-r):r