Matlab: Find area enclosed by points (x,y)

2019-07-20 04:45发布

问题:

I've got 8 points that create the outline of an eight-sided polygon in two-dimensional space. I need to find the area enclosed be these points, but how do I do that using matlab?

The eight points (x,y) are contained in the 8x2 matrix B.

B = [ 260 455;
    1187 467;
    1325 605;
    1342 1533;
    1207 1675
    251 1690;
    107 1547;
    116 593];

The polygon is created by drawing straight lines from the point which is row 1 to row 2, then row 2 to row 3 and so on...

回答1:

You can use polyarea:

ar = polyarea(B(:, 1), B(:, 2));


回答2:

I would go with trapezoid:

Area = trapz(B(:,1),B(:,2));


回答3:

For calculating area and even volume you can use convhull.