# how can i calculate a complex polygon with coordinates in matlab ?

4 views (last 30 days)
ADNAN KIRAL on 19 Oct 2020
Commented: ADNAN KIRAL on 19 Oct 2020
Hi,
how can I calculate A complex polygon in Matlab?
image shows what I need to calculate in Matlab. do you guys have any code for that ? or are there any Matlab command which can calculate it by coordinates? Show 1 older comment
Rik on 19 Oct 2020
Or do you want to draw a polygon like this?
ADNAN KIRAL on 19 Oct 2020
calculation of the area !.
I have a large number of coordinates. If I can code it in Matlab. I will replace with my coordinates. So that I need to know how to calculate the area of such shape.
ADNAN KIRAL on 19 Oct 2020
In fact, if i can type this equation, it will give the area. Ameer Hamza on 19 Oct 2020
The equation in your comment can be written in MATLAB like this
A = 1/2*sum(x(1:end-1).*y(2:end)-y(1:end-1).*x(2:end));

ADNAN KIRAL on 19 Oct 2020
well, suppose, you have a number of coordinates.
x=[.....];
y=[.....];
this is total area A = 1/2*sum(x(1:end-1).*y(2:end)-y(1:end-1).*x(2:end));
up to here, it is ok,
assume i have 100 coordinates.
coordinate 1 (first one), total area= 1cm^2
coordinate 2 (second one), total area= 5cm^2
.. so on..
I just want to give a number to each coordinate (like 1,2,3,4,5....). this part will appear in x coordinate, total areas will be in the y-axis. that is all I want.
like this;
thanks! Ameer Hamza on 19 Oct 2020
You can try something like this
X;
Y;
A = zeros(1, numel(X)-2);
for i = 1:numel(A)
x = X(1:i+2);
y = Y(1:i+2);
A(i) = 1/2*sum(x(1:end-1).*y(2:end)-y(1:end-1).*x(2:end));
end
ADNAN KIRAL on 19 Oct 2020
thanks a lot

Deeds on 19 Oct 2020
You can use polyarea for accomplishing your task. The documentation is here:
Hope that helps!

#### 1 Comment

ADNAN KIRAL on 19 Oct 2020
one more question please ? how can I get coordinate vs. area ( at the end, I need to know how the area is increasing with coordinate change)
I have tried "cumsum" Matlab command, but it did not work. it gave the total area. thanks

Steven Lord on 19 Oct 2020
If you want to do more than just compute its area I would use polyshape for that.
>> x = [7 7 5 3 -5 0 -8 2 -4];
>> y = [-7 3 -6 3 3 8 3 -3 -8];
>> P = polyshape(x, y);
>> plot(P)
There are a number of questions you can ask about a polyshape and a number of operations you can perform on one.

#### 1 Comment

ADNAN KIRAL on 19 Oct 2020
thanks