# How do I find a point on a line?

I have two points (A, B) and the length of d. How can I find point C?

-

Compute a vector `V` from `A` to `B`, and normalize it.

``````V = (B - A) / |B - A|
``````

Since the vector is normalized, it will have a length of one, and it will indicate the direction of `B` relative to `A`. If you then scale the vector by `d` you will have the displacement from `A` to `C`

``````V' = d * V
``````

which you can simply add to `A` to yield `C`:

``````C = V' + A
``````
-
works perfect!!!! thanks!!! :) – eempee Oct 10 '11 at 18:25
btw: could anyone recommend me a book where I can learn about stuff like that? :) – eempee Oct 10 '11 at 20:40
3D Math primer is a good one: amazon.com/Primer-Graphics-Development-Wordware-Library/dp/…;. – Ricky AH Oct 11 '11 at 8:03
Didn't read this one, but I've been told that is also pretty good amazon.com/Mathematics-Programming-Computer-Graphics-Second/dp/… – Ricky AH Oct 11 '11 at 8:05
See this question: gamedev.stackexchange.com/questions/1210/… – Josh Petrie Oct 11 '11 at 15:06

In case your d is a ratio instead of a length, e.g 0.5 puts it on equal distance from A and B, you can do the following and avoid a normalization:

``````C = A * (1 - ratio) + B * ratio
``````
-