%简单介绍inpolygon函数的用法
L = linspace(0,2.*pi,6); xv = cos(L)';yv = sin(L)'; %创建一个-1~1的范围的点数组
xv = [xv ; xv(1)]; yv = [yv ; yv(1)];%在原来数组基础上加上开始点,从而实现了首尾相连的多边形。
x = randn(250,1); y = randn(250,1);%产生随机正态分布的250行1列的数组
in = inpolygon(x,y,xv,yv)%注意xv,yv构成了多边形边界。x,y对应的是单点坐标,判断是否在多边形内。
%返回结果为逻辑logical类型(不是数字类型哦),如果在对应的就返回1,否则为0。
plot(xv,yv,x(in),y(in),'r+',x(~in),y(~in),'bo')%x(in)是读取in逻辑数组中逻辑值为1的对应的值。
%plot(xv,yv)是画出多边形的边界
%plot(xv,yv,x(in),y(in),'r+')是画出多边形和内部的点(红色加号画出)
%plot(x(~in),y(~in),'bo')是画出不在多边形内的点,bo形状为蓝色圆点
L = linspace(0,2.*pi,6); xv = cos(L)';yv = sin(L)'; %创建一个-1~1的范围的点数组
xv = [xv ; xv(1)]; yv = [yv ; yv(1)];%在原来数组基础上加上开始点,从而实现了首尾相连的多边形。
x = randn(250,1); y = randn(250,1);%产生随机正态分布的250行1列的数组
in = inpolygon(x,y,xv,yv)%注意xv,yv构成了多边形边界。x,y对应的是单点坐标,判断是否在多边形内。
%返回结果为逻辑logical类型(不是数字类型哦),如果在对应的就返回1,否则为0。
plot(xv,yv,x(in),y(in),'r+',x(~in),y(~in),'bo')%x(in)是读取in逻辑数组中逻辑值为1的对应的值。
%plot(xv,yv)是画出多边形的边界
%plot(xv,yv,x(in),y(in),'r+')是画出多边形和内部的点(红色加号画出)
%plot(x(~in),y(~in),'bo')是画出不在多边形内的点,bo形状为蓝色圆点
print 'Over!Done!'