Here is a function to check overlap for two rectangles. you could loop it to check for more number of rectangles based on @Dov's idea.
For two rectangles Ri, i = 1,2
, with centers (xi,yi)
and half-lengths of their sides ai,bi > 0
(assuming that the sides are aligned with the coordinate axes).

Here is my implementation based on above equation:
In my code i've taken xcPosition
and ycPosition
as the center position of the rectangle.
Also length
and breadth
are the magnitude of sides of the rectangle.
function [ overLap, pivalue ] = checkOverlap( xcPosition1,ycPosition1,xcPosition2,ycPosition2,length1,breadth1,length2,breadth2 )
pix = max((xcPosition2 - xcPosition1 -(length1/2)-(length2/2)),(xcPosition1 -xcPosition2 -(length2/2)-(length1/2)));
piy = max((ycPosition2 - ycPosition1 -(breadth1/2)-(breadth2/2)),(ycPosition1 -ycPosition2 -(breadth2/2)-(breadth1/2)));
pivalue = max(pix, piy);
if (pivalue < 0)
overLap = 1; %// Overlap exists
else
overLap = 0; %// No overlap
end
end
You could also use the pivalue
to know the degree of overlap or Non-overlap
The Pseudo-code for looping would be something like this:
for i = 1 : 14
for j = 1 : i-1 + 6 already placed parts
%// check for overlap using the above function here
%// place the part if there is no overlap
end
end