So i have a catmul Curve made of 10 vector3 points

using getPoint and getPointAt as explained here i can get the first point at 0.1 , second point at 0.2 and so on

but these indicate the points generated by `curve.getPoints`

and not the original vector 3 used to generate the curve

What method do i perform so that 0.1 means the first vector3 which was used to generate the curve ?

here’s a fiddle to test

the yellow dots denote the original vector3 used to make the curve and red dots are points obtained from `curve.getPoints(xx)`

the result i want is

when the slider reaches 0.1 the white box should overlay perfectly on the first yellow box

when the slider reaches 0.2 the white box should overlay perfectly on the second yellow box

etc

the number of points is not within my control so i cannot just pre-save the accurate values

Hi!

Check, if position of the moving object is equal, with some tolerance, to position of a static object

Or did I get something wrong?

1 Like

hello,

I had the problem in my project while moving an object across the curve and trying to make it stop at the exact vector3 points used to make the curve, in the fiddle i recreated the issue with three.cube is so origin/position should be in the exact center

both getPoint and getPointAt do not land on the original vectors used to make the curve so was wondering if i can apply some offset or some other method so that curve.getPoint(0.1) lands exactly on the first vector

```
slider.oninput = function() {
text.innerHTML = this.value
curve.getPoint(Number(this.value), boxMesh.position)
}
```

Figured it out , if you have 10 vector3 points to go through, you’ll need 11 points while making the curve,

add one extra vector3 at the beginning ,

now 0 means that extra vector3 and 0.1 means first custom vector3 point

that seems to fix my issue ,

new fiddle