Normal angle at each vertex of a polygon.
THETA = polygonNormalAngle(POLY);
where POLY is a N-by-2 array representing vertex coordinates, computes
the normal angle at each vertex of the polygon. THETA is a N-by-1 array
containing numeric values between -PI and +PI. The result depends on
the orientation of the polygon (counter-clockwise or clockwise).
THETA = polygonNormalAngle(POLY, IND);
Computes the normal angle for each vertex specified by IND. If IND is a
vector of vertex indices.
Example
% Normal angles at vertices of an isosceles right triangle are pi/2 at
% right angle-vertex and 3*pi/4 for the two remaining vertices.
poly = [0 0 ; 1 0 ; 0 1];
polygonNormalAngle(poly)
ans =
1.5708
2.3562
2.3562
% Compute normal angles for a slightly more complicated polygon
poly = [0 0;0 1;-1 1;0 -1;1 0];
% compute normal angle at each vertex
theta = polygonNormalAngle(poly);
% sum of all normal angle of a non-intersecting polygon equals 2*pi
% (can be -2*pi if polygon is oriented clockwise)
sum(theta)
ans =
6.2832
See also:
polygons2d, polygonOuterNormal, normalizeAngle
Package: matgeom