I have a segment with known coordinates of the ends. On this segment there is a point. I know the distance from the beginning of the segment to this point. I need to find the coordinates of this point. How to find these coordinates?

Example: there are 2 points A (3.3) and in (6.4). Cut length approximately 3.16. And is there a point with (?,?) On the segment. How to find coordinates if from a to C = 1.8 ???

## Answer 1, Authority 100%

Algorithm without code (pretty elementary):

We have:

Two points `a `

, `b `

; `len `

– distance from point `and `

to the desired point `C `

```
Full_len = | B - A | // Length of the vector connecting two points == Cut length
C = A + (B - A) * (LEN / FULL_LEN)
```

Addition of vectors and multiplication by number – obvious operations.

## Answer 2, Authority 80%

There is a segment `ab `

with coordinates `A (Xa, Ya) `

and `B (XB, YB) `

It is required to find the coordinates of the `C (XC, YC) `

section lying on the `AB `

section at the distance `RAC `

from the `A `

point.

```
Rab = SQRT ((XB - XA) ^ 2 + (YB - Ya) ^ 2)
K = RAC / RAB
XC = XA + (XB - XA) * k
YC = Ya + (YB - Ya) * k
```

*Notation: *

** f ^ n **– the construction of

`f `

to the degree `n `

, in our case (first) `f `

will be `XB - XA `

and `N `

will `2 `

**– square root from**

`sqrt (f) `

`f `

in our case `f `

will `(XB - XA ) ^ 2 + (YB - Ya) ^ 2 `

**– division**

`f / n `

`f `

on `n `

, in our case, `F `

will be `RAC `

and `N `

will `Rab `

**– multiplication**

`f * n `

`f `

on `n `

, in our case (first) `f `

Will `XB - XA `

and `N `

will `k `

. ## Answer 3, Authority 10%

nodet – point end end, in your case Point b

nodef – point beginning of the vector, in your case Point a

```
dx = nodet.x - nodef.x
dy = nodet.y - nodef.y
DZ = NODET.Z - NODEF.Z
R = Math.SQRT (dx ** 2 + dy ** 2 + dz ** 2)
xx = dx * (STEP / R)
YY = DY * (STEP / R)
zz = dz * (STEP / R)
newnode = node (nodef.x + xx, nodef.y + yy, nodef.z + zz)
```

newnode – new point at a specified distance