1 | function [xsegments ysegments]=flagedges(elements,x,y,partition);
|
---|
2 | %FLAGEDGES - return pairs of x,y segments, delimiting partitions.
|
---|
3 | %
|
---|
4 | % Usage:
|
---|
5 | % [xsegments ysegments]=flagedges(elements,x,y,partition)
|
---|
6 |
|
---|
7 | xsegments=[];
|
---|
8 | ysegments=[];
|
---|
9 |
|
---|
10 | for i=1:size(elements,1),
|
---|
11 | m1=partition(elements(i,1));
|
---|
12 | m2=partition(elements(i,2));
|
---|
13 | m3=partition(elements(i,3));
|
---|
14 | x1=x(elements(i,1));
|
---|
15 | x2=x(elements(i,2));
|
---|
16 | x3=x(elements(i,3));
|
---|
17 | y1=y(elements(i,1));
|
---|
18 | y2=y(elements(i,2));
|
---|
19 | y3=y(elements(i,3));
|
---|
20 |
|
---|
21 | if (m1~=m2) & (m1~=m3) & (m2~=m3),
|
---|
22 | xmiddle=(x1+x2+x3)/3;
|
---|
23 | ymiddle=(y1+y2+y3)/3;
|
---|
24 | xsegments=[xsegments; (x1+x2)/2 xmiddle];
|
---|
25 | xsegments=[xsegments; (x1+x3)/2 xmiddle];
|
---|
26 | xsegments=[xsegments; (x2+x3)/2 xmiddle];
|
---|
27 | ysegments=[ysegments; (y1+y2)/2 ymiddle];
|
---|
28 | ysegments=[ysegments; (y1+y3)/2 ymiddle];
|
---|
29 | ysegments=[ysegments; (y2+y3)/2 ymiddle];
|
---|
30 | end
|
---|
31 |
|
---|
32 | if (m1==m2) & (m1~=m3),
|
---|
33 | xsegments=[xsegments; (x1+x3)/2 (x2+x3)/2];
|
---|
34 | ysegments=[ysegments; (y1+y3)/2 (y2+y3)/2];
|
---|
35 | end
|
---|
36 | if (m1==m3) & (m2~=m3),
|
---|
37 | xsegments=[xsegments; (x1+x2)/2 (x2+x3)/2];
|
---|
38 | ysegments=[ysegments; (y1+y2)/2 (y2+y3)/2];
|
---|
39 | end
|
---|
40 |
|
---|
41 | if (m2==m3) & (m1~=m3),
|
---|
42 | xsegments=[xsegments; (x1+x2)/2 (x1+x3)/2];
|
---|
43 | ysegments=[ysegments; (y1+y2)/2 (y1+y3)/2];
|
---|
44 | end
|
---|
45 | end
|
---|