0001 function bool=ispolygon(x,y);
0002
0003
0004
0005
0006
0007 bool=0;
0008 pairs_x=zeros(length(x),2);
0009 pairs_y=zeros(length(x),2);
0010
0011 for i=1:length(x)-1,
0012 pairs_x(i,:)=[x(i) x(i+1)];
0013 pairs_y(i,:)=[y(i) y(i+1)];
0014 end
0015 pairs_x(length(x),:)=[x(length(x)) x(1)];
0016 pairs_y(length(x),:)=[y(length(x)) y(1)];
0017
0018 for n=1:length(pairs_x)-1,
0019
0020 pair_nx=zeros(length(x)-n,2);
0021 pair_ny=zeros(length(x)-n,2);
0022 for j=n:length(x)-1,
0023 pair_nx(j-n+1,:)=pairs_x(n,:);
0024 pair_ny(j-n+1,:)=pairs_y(n,:);
0025 end
0026 test_x=pairs_x(n+1:length(x),:);
0027 test_y=pairs_y(n+1:length(x),:);
0028 [IS,S]=iscross(pair_nx',pair_ny',test_x',test_y');
0029 bool=bool+length(find(IS==1));
0030 end
0031 if bool>=1,
0032 bool=1;
0033 end
0034
0035 bool=-bool;
0036
0037 disp('Attention, ispolygon a ete modifie, retourne 1 si oui, 0 si non');