# How to find the distance between two points along a curve?

15 views (last 30 days)

Show older comments

##### 7 Comments

Mathieu NOE
on 26 Apr 2024

dr represents only the increment of arc length (quite constant in this example)

now you need to do a sum of them - see my answer

### Answers (2)

Mathieu NOE
on 26 Apr 2024

Edited: Mathieu NOE
on 26 Apr 2024

hello

try this

th = linspace(-pi/2, pi/2, 100);

R = 200;

X = R * sin(th) ; % X-coordinates

Y = R * cos(th) ; % Y-coordinates

dx = diff(X);

dy = diff(Y);

ds = sqrt(dx.^2+dy.^2); % increment of arc length

s = cumsum(ds); % integration => total arc length

s = [0 s]; % add first point : arc length = 0

% compute arc length between two points (defined by index position)

k1 = 25;

k2 = 59;

d = s(k2) - s(k1)

plot(X, Y, 'r.-',X(k1:k2), Y(k1:k2), 'db');

axis square

##### 4 Comments

Torsten
on 27 Apr 2024

If you have an explicit equation of your curve, you can use the usual formula for arclength:

R = 200;

fun = @(t)sqrt((R*cos(t)).^2+(R*(-sin(t))).^2)

length_of_curve = integral(fun,-pi/2,pi/2)

2*pi*R/2

### See Also

### Categories

### Community Treasure Hunt

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

Start Hunting!