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 47 48 49 50 51 52 53 54 55
| function [LCD,xmin,xmax,ymin,ymax,s]=calculate_right(i,com_aff2,num)
k=1;
xmin=1000000000000000000000;
xmax=com_aff2(i).c_max;
ymin=com_aff2(i).l_min;
ymax=com_aff2(i).l_max;
changed=true;
while( changed==true)
changed=false;
for j=1:num
if (com_aff2(j).c_min>=com_aff2(i).c_min+(com_aff2(i).c_max-com_aff2(i).c_min)/2 && com_aff2(j).c_max>com_aff2(i).c_max) && ((com_aff2(j).l_min<=ymin+(ymax-ymin)/2 && com_aff2(j).l_max>=ymin+(ymax-ymin)/2)||(com_aff2(j).l_min>=ymin && com_aff2(j).l_max<=ymax))
LCD(k)=com_aff2(j);
if(xmin>com_aff2(j).c_min)
xmin=com_aff2(j).c_min;
end
if (xmax<com_aff2(j).c_max)
xmax=com_aff2(j).c_max;
end
if(ymin>com_aff2(j).l_min)
ymin=com_aff2(j).l_min;
changed=true;
end
if (ymax<com_aff2(j).l_max)
ymax=com_aff2(j).l_max;
changed=true;
end
k=k+1;
end
end
end
%%%%%%%%%%%%%%
s=k-1;
num=s;
xmin=1000000000000000000000;
xmax=0;
ymin=1000000000000000000000;
ymax=0;
for j=1:s
if(xmin>LCD(j).c_min)
xmin=LCD(j).c_min;
end
if (xmax<LCD(j).c_max)
xmax=LCD(j).c_max;
end
if(ymin>LCD(j).l_min)
ymin=LCD(j).l_min;
end
if (ymax<LCD(j).l_max)
ymax=LCD(j).l_max;
end
end
end |