n = 0; NboweiRow = 0;
for x0 = -theta05:-theta05:leftest n = n + 1;
x = (-theta05/2:0.001:theta05/2) + x0;
y1 = sqrt((theta05/2)^2 - (x - x0).^2) + y0; y2 = -sqrt((theta05/2)^2 - (x - x0).^2) + y0; % alpha1,beta1:左边界 flag = 0;
[minValueminSite] = min(abs(beta1 - y0)); if alpha1(minSite) - theta05/2 <= x0 flag = 1; end if y0 % alpha3,beta3:下边界 [minValueminSite] = min(abs(alpha3 - x0)); if beta3(minSite) > y0 flag = 0; end end if y0 >uplow % alpha4,beta4:上边界 [minValueminSite] = min(abs(alpha4 - x0)); if beta4(minSite) + theta05/2 <= y0 flag = 0; end end if flag == 1 NboweiRow = NboweiRow + 1; plot(x,real(y1)); plot(x,real(y2)); pause(0.01) BoweiNumber = BoweiNumber + 1; arr_x0((m-1)*2+1,round(Mx/2)-n+1) = x0; arr_y0((m-1)*2+1,round(Mx/2)-n+1) = y0; end end arr_NboweiRow( (m-1)*2 + 1 ) = arr_NboweiRow( (m-1)*2 + 1 ) + NboweiRow; end %----------------------偶数行------------------------------- m = 0; for y0 = lowest+theta05/2+0.866*theta05 : 2*0.866*theta05 : upest m = m + 1; n = 0; NboweiRow = 0; for x0 = theta05/2:theta05:rightest n = n + 1; x = (-theta05/2:0.001:theta05/2) + x0; y1 = sqrt((theta05/2)^2 - (x - x0).^2) + y0; y2 = -sqrt((theta05/2)^2 - (x - x0).^2) + y0; % alpha2,beta2:右边界 flag = 0; [minValueminSite] = min(abs(beta2 - y0)); if alpha2(minSite) + theta05/2 >= x0 flag = 1; end if y0 % alpha3,beta3:下边界 [minValueminSite] = min(abs(alpha3 - x0)); if beta3(minSite) > y0 flag = 0; end end if y0 >uplow % alpha4,beta4:上边界 [minValueminSite] = min(abs(alpha4 - x0)); if beta4(minSite) + theta05/2 <= y0 flag = 0; end end if flag == 1 NboweiRow = NboweiRow + 1; plot(x,real(y1)); plot(x,real(y2)); pause(0.01) BoweiNumber = BoweiNumber + 1; arr_x0(m*2,round(Mx/2)+n+1) = x0; arr_y0(m*2,round(Mx/2)+n+1) = y0; end end arr_NboweiRow( m*2 ) = NboweiRow; end m = 0; for y0 = lowest+theta05/2+0.866*theta05 : 2*0.866*theta05 : upest m = m + 1; n = 0; NboweiRow = 0; for x0 = -theta05/2:-theta05:leftest n = n + 1; x = (-theta05/2:0.001:theta05/2) + x0; y1 = sqrt((theta05/2)^2 - (x - x0).^2) + y0; y2 = -sqrt((theta05/2)^2 - (x - x0).^2) + y0; % alpha1,beta1:左边界 flag = 0; [minValueminSite] = min(abs(beta1 - y0)); if alpha1(minSite) - theta05/2 <= x0 flag = 1; end if y0 % alpha3,beta3:下边界 [minValueminSite] = min(abs(alpha3 - x0)); if beta3(minSite) > y0 flag = 0; end end if y0 >uplow % alpha4,beta4:上边界 [minValueminSite] = min(abs(alpha4 - x0));