function isInPoly(varargin)
% 函数功能:判断二维空间点是否在三角形或四边形内
% 举例说明:
% isInPoly([2,5],[3,4],[5,5],[6,8],1)
% isInPoly([1,2],[0,5],[3,3],[1,1],0)
% isInPoly([0,2],[2,5],[1,3],[8,2],[2,1],0)
% isInPoly([5,2],[1,5],[2,2],[3,8],[8,0],1)
if nargin ==5 % 三角形
point = varargin{1}; % 二维空间点
poly = [varargin{2};varargin{3};varargin{4};varargin{2}];
flag = varargin{5}; % 标志位
elseif nargin == 6 % 四边形
point = varargin{1}; % 二维空间点
poly = [varargin{2};varargin{3};varargin{4};varargin{5};varargin{2}];
flag = varargin{6}; % 标志位
else
disp('输入不合法!')
end
x = point(1);y = point(2);
xv = poly(:,1);yv = poly(:,2);
in = inpolygon(x,y,xv,yv); % 判断点是否在多边形内
if in == 1 % 输出结果
disp('二维空间点在多边形内')
else
disp('二维空间点不在多边形内')
end
if flag == 1 % 标志位 =1,画图
plot(xv,yv,x(in),y(in),'r+',x(~in),y(~in),'bo') % 点在其中,“红色+”;否则“蓝色。”
end
好像还有两个四边形的图,能不能发给我,谢谢了