How do we allocate equidistant points on a sinusoidal curve?

5 views (last 30 days)
Satyajit Ghosh
Satyajit Ghosh on 19 Oct 2021
Commented: Satyajit Ghosh on 20 Oct 2021
The analytic equation is given below.
y=-25*sin((2*pi/50)*x);
Graph of above equation is given below.
What I exactly want is to allocate discrete equidistant points on this sinusoid curve. The step distance is 0.004. Basically, I have to solve the below equation starting from initial (x,y)=(0,0) point and use next point to calculate further point one by one.
(x-x_p).^2+(y-y_p).^2=(0.004)^2
=> (x-x_p).^2+(-25*sin(2*pi/50)*x)+25*sin(2*pi/50)*x_p)).^2=(0.004)^2
Here (x_p,y_p) is the previous point. But above equation is a trancendental equation. I am unable to solve it.
Thanks in advance!

Accepted Answer

Matt J
Matt J on 19 Oct 2021
Edited: Matt J on 19 Oct 2021
You can use fzero,
x_p=0;
y=@(x) -25*sin((2*pi/50)*x);
fun=@(d) d.^4+( y(x_p+d^2)-y(x_p)).^2 - 0.004^2;
x=x_p+fzero(fun,0).^2
x = 0.0012
Check:
norm([x-x_p, y(x)-y(x_p)])
ans = 0.0040

More Answers (1)

Matt J
Matt J on 19 Oct 2021

Community Treasure Hunt

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

Start Hunting!