1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
|
function GG=GrapheGabriel(x,y,Triang)
NbTr=size(Triang,1);
MC=[];
for l=1:NbTr
Tr=Triang(l,: );
i=Tr(1,1);j=Tr(1,2);k=Tr(1,3);
MC=[MC;[i,j];[j,k];[k,i] ];
end;
SML=sort(MC,2); %
SML=sortrows(SML);
N=MC(1,: );
n=size(MC,1);
for i=2:n
if MC(i-1,: )==MC(i,: ) ;
else N=[N;MC(i,: )]; end;
end;
GG=[];
n=size(MC,1);
for k=1:n
Cote=MC(k,: );i=Cote(1);j=Cote(2);
n=numel(x);
A=[x(i) y(i)]; B=[x(j) y(j)];
M=1/2*(A+B);
R=(1/2)*norm(B-A);
Go=1;k=0;Bool=0;
while Go
k=k+1;
if ismember(k,[i j]);
else
C=[x(k) y(k)];d=norm(C-M);Bool=d<R;
end;
Go=not(Bool) & (k<n);
end;
if not(Bool) GG=[GG;Cote];end;
end;
clf;
plot(x,y,'.r');
n=size(GG,1);
for k=1:n
i=GG(k,1);j=GG(k,2);
plot([x(i) x(j)],[y(i) y(j)],'-b');hold on;
end; |
Partager