разделение поверхности прямоугольной формы на маленькие равные прямоугольники с промежутками между ними - PullRequest
0 голосов
/ 28 мая 2020

Я хотел бы написать программу, которая поможет мне разделить определенную прямоугольную поверхность, размеры которой я знаю, на M (известных) маленьких квадратов с промежутками между ними. Размеры этих маленьких прямоугольников должны составлять от 0,5 до 5 мм, и они одинаковы для размеров зазоров. Я написал простой код, но не могу получить все возможные конфигурации, и большую часть времени я не получал результата.

Hrect = 150; Vrect =20;
minSq=1;maxSq=5;%sqaure
minSp=1;maxSp=5;%space
minM=1; maxM=5;%margin
nb_squares=2;
res=[];
c=0;

    for HSQ=minSq:maxSq
     for HSP=minSp:maxSp
      for VSQ=minSq:maxSq
       for VSP= minSp:maxSp
            nb_HSQ=(Hrect/HSQ);

            if(Hrect-nb_HSQ*(HSQ+HSP)>=HSQ)
                nb_HSQ=nb_HSQ+1;
            end
            nb_VSQ=(Vrect/(VSQ+VSP));
           if(Vrect - nb_VSQ*(VSQ+VSP)>=VSQ)
            nb_VSQ=nb_VSQ+1;
        end
if(nb_HSQ*nb_VSQ==nb_squares) c=c+1;
    res(c,1)=VSQ; res(c,2)=HSQ;res(c,3)=HSP;res(c,4)=VSP;res(c,5)=nb_HSQ;res(c,6)=nb_VSQ;
       if(c==4000000) disp('stop here')
       end
end
    end

end
end 
end
res
res
...