Curve fitting: Dividing spline into segments of equal length

Hello
I have generated a spline(x) from two arrays (see appendix: red curve) and now I would like to sectionize the curve into segments of equal length (see appendix: blue points). In the end, the coordinates of the blue points are what I am actually looking for.
PS: If somebody can help me I can draw you something in paint :)

3 Comments

Hi
X=min(x):(max(x)-min(x))/100:max(x); Y=spline(x,y,X); plot(x,y,'*b',X,Y,'-r')
Thank you Zhang lu for commenting on my question! But how I understand you just divided the x-axis into equal segments and evaluated the spline (function) for each value. But this does not result in equal curvesegment lengths!
What have you tried so far? Is this homework? If you want to do it numerically, a hint would be to do a double interpolation. First over the cumulative distances of the spline and the x coordinates of the spline (to find your x coordinates) then over the x and y coordinates of the spline to find your y coordinates.
If you want to do it analytically, then you would need to calculate the arc length first.

Sign in to comment.

Answers (1)

1 Comment

Thanks man it really helped a lot.
Literally almost wasted a day trying to find the spline fitting function using finite sums and stuff.

Sign in to comment.

Categories

Asked:

Ben
on 2 May 2013

Edited:

on 28 Mar 2021

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!