# PERIMETER OF A 3D POLYGON WHICH DOES NOT LIE IN THE X-Y PLANE

4 views (last 30 days)

Show older comments

Hi everyone,

I have the spatial coordinates (x,y,z) of a cloud of points.

To date, I am able to calculate the area of the polygon in space obtained interpolating these points. Any suggestions abou how to calculate the perimeter?

Thank you in advance

##### 6 Comments

Bjorn Gustavsson
on 5 Jul 2022

### Accepted Answer

Torsten
on 5 Jul 2022

The code should apply to your case:

x = 3*cos(0:pi/20:2*pi);

y = 3*sin(0:pi/20:2*pi);

fn = cscvn([x;y]);

% Compute enclosed area

fnprime = fnder(fn);

Kofs = @(s) [1 -1]*(fnval(fn,s) .* flipud(fnval(fnprime,s)));

A = 1/2*integral(Kofs,fn.breaks(1),fn.breaks(end))

pi*3^2

% Compute curve length

Lfun = @(s) sqrt(sum(fnval(fnprime,s).^2,1));

L = integral(Lfun,fn.breaks(1),fn.breaks(end))

2*pi*3

##### 2 Comments

Torsten
on 5 Jul 2022

I just noticed that the area calculation only works for closed curves in the x-y plane.

For closed curves in 3d lying in a plane, things will become more complicated.

But you said that you have already determined the enclosed area :-)

### More Answers (0)

### See Also

### Community Treasure Hunt

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

Start Hunting!