Overlapping co-ordiantes of rectangles fail to print in python

BartC bc at freeuk.com
Thu Nov 17 15:50:48 EST 2016


On 17/11/2016 14:27, arunsocs at gmail.com wrote:
>  I am working with following code in which I am trying to output co ordinates of overlapping rectangles.. However the code fails to output the co ordinates. I am customizing the following code This is the input
>
> 1.6 1.2 7.9 3.1
> 1.2 1.6 3.4 7.2
> 2.6 11.6 6.8 14.0
> 9.6 1.2 11.4 7.5
> 9.6 1.7 14.1 2.8

(Is there a line count at the start of the file?)

> sign = -1
> area = sum( map( lambda x: x.area, rectangles) )
>
> for i in range(2,len(rectangles)+1):
>     for rects in combinations( rectangles, i ):
>         intersections = [rects[0]]
>         rects = rects[1:]
>         for rectangle in rects:
>             newintersections = []
>             for otherR in intersections:
>                 newintersections.extend( rectangle.intersect(otherR) )
>
>             intersections = newintersections
>             print intersections
>
>         #intersectingArea = sum( map( lambda x: x.area, intersections ) )
>         #rea = area + (sign * intersectingArea)
>
>     sign = sign*-1
>
> Where I need to change the code to output all overlapping rectangles and its co ordinates?

I tried your code and got a bunch of output, mostly [] lines like this:

[]
[]
[]
[]
[]
[[Point(x=1.6, y=1.6),Point(x=3.4, y=3.1)]]
[]
[]
[[Point(x=1.6, y=1.6),Point(x=3.4, y=3.1)]]
[]

What output did you expect for this input data?

(I plotted your data and out of five rectangles A,B,C,D,E (not in the 
same order as your data), then A and B overlap, as do C and D, while E 
is by itself.

Did you want the output to be, for example, A and B, with the 
coordinates of the common region, and the same for C and D?

What happens if 3 or more rectangles overlap?

What about if A overlaps B; B overlaps C; C overlaps D; and D overlaps 
A? Suppose then that all those are contained within E?

You need some specifications. I assume all rectangles are horizontally 
aligned (they have to be with just 4 coordinates), and the input data 
normalised so that the top-left corner appears first.)

-- 
Bartc



More information about the Python-list mailing list