Detect points inside a polygonal region
Syntax
IN = inpolygon(X,Y,xv,yv)
Description
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:
IN(p,q) = 1
|
If (X(p,q),Y(p,q)) is inside the polygonal region
|
IN(p,q) = 0.5
|
If (X(p,q),Y(p,q)) is on the polygon boundary
|
IN(p,q) = 0
|
If (X(p,q),Y(p,q)) is outside the polygonal region
|
Examples
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')
[ Previous | Help Desk | Next ]