0

I'm facing a problem regarding "partitioning"/subsetting polygons into regions (bigger polygons) so that each region should have disjoint meaningful elements.

enter image description here
For example, we have the following regions/polygons. At a given time, we know only the form of one region (let's say R1 for now). It is clear that L3 would belong to R1. How about L1, L2 and P1? I thought about creating bounding boxes around them and check if the South-East coordinate( minX and minY) belongs to R1. In this way L1 would belong to R2, even though it doesn't even crosses R2.

Do you have any concrete idea what I should look into for these sort of algorithms or how to solve this space separation problem?

  • Can you elaborate on how new regions come into existence. Are all regions given at the beginning, as you mention only R1 is given at first? Do you want to split the elements at the region boundary or whats the intent there? – gue Jul 25 '16 at 07:54
  • The regions appear by performing an union on smaller polygons. I have all the small polygons available, but the "regions" must be processed individually. I don't want to split/"cut" the elements, but more or less to say that the elements (L1, L2 and L2 etc) should belong or not R1. For the elements that are inside those regions it is clear that they should belong to, but how should the ones that cross the border be treated? – danimihalca Jul 25 '16 at 07:56
  • Sorry, it is still not clear to me. So you partition bigger polygons into regions. Can I assume that R1,R2,R3, and R4 are regions of the interior of the same bigger polygon? This partitioning (black dashed/solid lines) looks (a little bit) like a voronoi diagram. If so, why not use the same partitioning on the elements inside. Namely, updating the diagram by adding the elements. Otherwise, if you have the partitioning, you could just reference to the intersecting object(s) from every region. – gue Jul 25 '16 at 08:23
  • R1,R2,R3 and R4 are regions of the same bigger polygon, but the bigger one isn't computed. used black dashed/solid lines to show that only the region R1 is known, and the others not (at the proccessing time). The regions are composed from smaller polygons of the same type (let's say cities form counties - in the current case a region is a county). The regions would be on a lower layer than the Lm, Pn elements (let's say that Lm are roads and Pn are buildings). My question is how to group "roads"/"buildings" into "counties" (this isn't a proper real-life example, but hope you've got the idea).. – danimihalca Jul 25 '16 at 08:35
  • I think you need to separate between "having a solution" and having an efficient solution - I think you lean towards the latter although you dont specify this; to find a solution its easy if you have the sets of points by each. And definitely you will have a degree of membership. I Think you are just looking for pointers – gpasch Jul 25 '16 at 15:58

1 Answers1

0

If your regions and polygons are all described as polygons (discrete sequences of vertices), you can resort to the available polygon clipping techniques.

In particular, have a look at the Sutherland–Hodgman and Weiler–Atherton techniques.

Some optimization is possible if preprocessing of the windows is allowed (when there are many subject polygons for the same windows), using scanline techniques. This is a little more sophisticated.

The case of line segment entities is a little easier.