-
Notifications
You must be signed in to change notification settings - Fork 98
polygonArea
David Legland edited this page Feb 28, 2022
·
1 revision
Compute the signed area of a polygon.
A = polygonArea(POINTS);
Compute area of a polygon defined by POINTS. POINTS is a N-by-2 array of double containing coordinates of vertices.
Vertices of the polygon are supposed to be oriented Counter-Clockwise (CCW). In this case, the signed area is positive. If vertices are oriented Clockwise (CW), the signed area is negative.
If polygon is self-crossing, the result is undefined.
poly = [10 10;30 10;30 20;10 20];
area = polygonArea(poly)
Result:
area =
200
area2 = polygonArea(poly(end:-1:1, :))
Result:
area2 =
-200
x = [0 10 20 0 -10 -20 -10 -10 0];
y = [0 0 10 10 20 10 10 0 -10];
poly = [x' y'];
area = polygonArea(poly)
Result:
area =
400
pccw = [0 0; 1 0; 1 1; 0 1];
pcw = pccw([1 4 3 2], :) * .5 + .25;
polygonArea ([pccw; nan(1,2); pcw])
Result:
ans =
0.75
algo adapted from P. Bourke web page [http://paulbourke.net/geometry/polygonmesh/]
polygons2d, polygonCentroid, polygonSecondAreaMoments, triangleArea