In a Cartesian system, I've got the slope, start point and distance of a line segment. What's the formula to find the endpoint?
3 Answers
An equivalent way to Arturo's answer is as follows: from the slope $m$, you can determine the cosine and the sine of the angle from the horizontal axis of a line with that slope:
$$c=\frac{1}{\sqrt{1+m^2}} \qquad s=\frac{m}{\sqrt{1+m^2}}$$
(exercise: verify that they are the cosine and sine of a certain angle)
From this construction, you can easily determine the two points at a distance r from your starting point $(h,k)$ as $(h,k)\pm r(c,s)$.
- 75,051
If the point is $(a,b)$, then the distance from $(a,b)$ to $(x,y)$ is $$\sqrt{(x-a)^2 + (y-b)^2}.$$
If the point is $(a,b)$, then the points that lie on the line through $(a,b)$ with slope $m$ are the points of the form $$(x,y) = (a,b) + k(1,m)$$ where $k$ is a constant.
Putting the two together, if you know the start point $(a,b)$, and the slope $m$, and the distance $d$, then find the (two) values of $k$ that will give you a distance of $d$ by plugging in and solving for $k$.
This gives us the following formula for $k$ (where $d$ is the distance): $$k = \pm \frac{d}{\sqrt{1+m^2}}$$ When putting this in the above formula, we find $(x,y)$.
- 398,050
-
1Another way of looking at it is that you're finding the intersections of the line with the given slope and passing through the given point, and the circle centered at the given point whose radius is the given distance. – J. M. ain't a mathematician Nov 08 '10 at 03:34
-
2The observation of points a,b + k 1,m was interesting, but we still need an actual equation. The equation will complete the lesson you started. – Apr 26 '12 at 21:27
Y=mx+c is the equation of the line you have. (x1,y1) is the point and D is the distance. (x,y) is the point you don't know.
D= sqrt((x1-x)^2 +(y1-y)^2)
sub in for y
D= sqrt((x1-x)^2 +(y1-(mx+c))^2)
then solve for the only unknown, x. this is your x co-ord (2 values). then y=mx+c gives the y.
- 1
-
4For some basic information about writing math at this site see e.g. here, here, here and here. – Julian Kuelshammer Mar 14 '13 at 15:41
Math.sin(Math.atan2(1,3)) === 1 / Math.sqrt(1 + Math.pow(3, 2)); // true
Math.cos(Math.atan2(1,3)) === 3 / Math.sqrt(1 + Math.pow(3, 2)); // true
– fisherwebdev Dec 28 '14 at 05:56atan2(y,x)=atan(y/x)in JS? – J. M. ain't a mathematician May 01 '15 at 13:50