51
$\begingroup$

Let's say you have two points, $(x_0, y_0)$ and $(x_1, y_1)$.

The gradient of the line between them is:

$m = (y_1 - y_0)/(x_1 - x_0)$

And therefore the equation of the line between them is:

$y = m (x - x_0) + y_0$

Now, since I want another point along this line, but a distance $d$ away from $(x_0, y_0)$, I will get an equation of a circle with radius $d$ with a center $(x_0, y_0)$ then find the point of intersection between the circle equation and the line equation.

Circle Equation w/ radius $d$:

$(x - x_0)^2 + (y - y_0)^2 = d^2$

Now, if I replace $y$ in the circle equation with $m(x - x_0) + y_0$ I get:

$(x - x_0)^2 + m^2(x - x_0)^2 = d^2$

I factor is out and simplify it and I get:

$x = x_0 \pm d/ \sqrt{1 + m^2}$

However, upon testing this equation out it seems that it does not work! Is there an obvious error that I have made in my theoretical side or have I just been fluffing up my calculations?

  • 0
    @Rahul: You can see that more than a handful of people expressed this opinion in various comments over meta threads. I cannot give you any recent event which is not a comment I wrote. However it feels that at least those participating the meta discussions tend to agree with that. If your Google search-fu is good you can probably find such comments on your own.2012-07-27

6 Answers 6

44

Another way, using vectors:

Let $\mathbf v = (x_1,y_1)-(x_0,y_0)$. Normalize this to $\mathbf u = \frac{\mathbf v}{||\mathbf v||}$.

The point along your line at a distance $d$ from $(x_0,y_0)$ is then $(x_0,y_0)+d\mathbf u$, if you want it in the direction of $(x_1,y_1)$, or $(x_0,y_0)-d\mathbf u$, if you want it in the opposite direction. One advantage of doing the calculation this way is that you won't run into a problem with division by zero in the case that $x_0 = x_1$.

35

Let me explain the answer in a simple way.

Start point - $(x_0, y_0)$

End point - $(x_1, y_1)$

We need to find a point $(x_t, y_t)$ at a distance $d_t$ from start point towards end point.

Point on a line at a distance

The distance between Start and End point is given by $d = \sqrt{(x_1-x_0)^2+(y_1-y_0)^2}$

Let the ratio of distances, $t=d_t/d$

Then the point $(x_t, y_t) =(((1-t)x_0+tx_1), ((1-t)y_0+ty_1))$

When $0, the point is on the line.

When $t<0$, the point is outside the line near to $(x_0,y_0)$.

When $t>1$, the point is outside the line near to $(x_1,y_1)$.

17

You can very easily find it with trigonometry!!

Let's say Xa and Xb are the two points of your line, and D is the distance between them. And you are looking to find Xc which is D2 away from Xa (as the diagram bellow):

enter image description here

You can easily find D:

euclidean distance between Xa and Xb

The formulas that you can find Xa, Xb, Xc, D and D2 are:

enter image description here

But SINa-b and SINa-c share the same the same corner, so they are equal:

enter image description here

Since you know the distance (D2) between Xa and Xc that you are looking for, you can easily solve the following:

enter image description here

In conclusion by solving the formula for D and the last one you are done. (You need one for the Y as well, just replace in the last one, X with Y )

Hope it helps!!

  • 0
    thanks this was really helpful2018-11-29
2

The easy way in rectangular coordinate systems is to use the vector formula
P = d(B - A) + A
where
A is the starting point (x0, y0) of the line segment
B is the end point (x1, y1)
d is the distance from starting point A to the desired collinear point
P is the desired collinear point

  • 1
    This is the same as Théophile's answer, but it omits to mention that you need to normalize **(B-A)**2017-07-17
1

I think you need to check $x_0 > x_1$ when you try to calculate $x$ (last equation in your calculation) then you determine it will be $(+)$ or $(-)$ in your equation.

  • 0
    Thank you for your contribution. This site supports basic TeX syntax, which allows formulas to be nicely typeset as x_0>x_1, for example. There is a [short TeX tutorial](http://meta.math.stackexchange.com/questions/5020/mathjax-basic-tutorial-and-quick-reference). You may want to try using TeX by editing your answer (the link `edit` is under your post). Welcome to Math.SE!2013-01-01