MATLAB Functions | Help Desk |
inpolygon
Detect points inside a polygonal region
IN = inpolygon(X,Y,xv,yv)
IN = inpolygon(X,Y,xv,yv)
returns a matrix IN
the same size as X
and Y
. Each element of IN
is assigned one of the values 1, 0.5 or 0, depending on whether the point (X(p,q),Y(p,q))
is inside the polygonal region whose vertices are specified by the vectors xv
and yv
. In particular:L = linspace(0,2.*pi,6); xv = cos(L)';yv = sin(L)'; xv = [xv ; xv(1)]; yv = [yv ; yv(1)]; x = randn(250,1); y = randn(250,1); in = inpolygon(x,y,xv,yv); plot(xv,yv,x(in),y(in),'r+',x(~in),y(~in),'bo')