% Syntax:
% w = windnum(poly);
% w = windnum(poly,v);
% w = windnum(poly,v,tol);
%
% Inputs:
%
% poly: 2-column matrix of polygon vertices ([x,y] coordinate pairs),
% size(poly,1)>=3.
%
% v: 2-column matrix of reference points ([x,y] coordinate pairs),
% OPTIONAL, default = [0,0].
%
% tol: scalar, non-negative, proximity tolerance for point equality
% testing, OPTIONAL, default = 0. Points [x1,y1] and [x2,y2] are
% considered to be proximate if norm([x1-x2,y1-y2])<=tol. (CAUTION: The
% result might be in error due to numerical precision limits if tol = 0
% and a reference point is on or very close to the polygon boundary.)
%
% Output:
%
% w: column vector of winding numbers (length(w)==size(v,1)), integer or
% nan. For a simple closed, non-self-intersecting polygon and vector v
% (size-[1,2]), w is one of the following:
% * w = 0 if v is outside of the polygon with proximity clearance tol.
% * w = +/1 if v is inside of the polygon with proximity clearance tol,
% +1 if the polygon is CCW-oriented and -1 if it is CW-oriented.
% * nan if v is on the polygon boundary within tolerance tol.
% More generally, w is the angle swept by the polygon at point v, divided
% by 2*pi, or nan is point v is proximate to any polygon point. If v has
% multiple rows, then w(i) = windnum(poly,v(i,:),tol).
인용 양식
Kenneth Johnson (2026). Polygon winding number (https://kr.mathworks.com/matlabcentral/fileexchange/182832-polygon-winding-number), MATLAB Central File Exchange. 검색 날짜: .
MATLAB 릴리스 호환 정보
개발 환경:
R2025b
모든 릴리스와 호환
플랫폼 호환성
Windows macOS Linux태그
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!