commons-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From luc.maison...@free.fr
Subject Re: [math] Polygon intersection vertices outside original polygon
Date Tue, 05 Jul 2011 20:23:17 GMT

----- "Curtis Jensen" <curtis@the-jensens.org> a écrit :

> On Mon, Jul 4, 2011 at 2:00 PM, Curtis Jensen
> <curtis@the-jensens.org>wrote:
> 
> > I'm using the RegonFactory.intersection method to get the
> intersection of
> > polygons.  However, I'm getting points that are outside of one of
> the
> > original polygons.  See example below.  Am I misinterpreting what
> the
> > intersection method does, miss-using it, or is this a bug?

I'll have a look at this in the next few days.

Sorry for the delay.
Luc

> >
> >
> >      Vector2D[][] vertices1 = new Vector2D[][] {
> >     new Vector2D[] {
> >                 new Vector2D(-25.8907, 53.6079),
> >                 new Vector2D(-25.3586, 53.5214),
> >                 new Vector2D(-25.6256, 53.1507),
> >                 new Vector2D(-26.0395, 53.2562)
> >             }
> >         };
> >         PolygonsSet set1 = buildSet(vertices1);
> >         Vector2D[][] vertices2 = new Vector2D[][] {
> >             new Vector2D[] {
> >                 new Vector2D(-25.7455, 53.3656),
> >                 new Vector2D(-25.3007, 53.2765),
> >                 new Vector2D(-25.4181, 52.9993),
> >                 new Vector2D(-25.9476, 53.0366)
> >             }
> >         };
> >         PolygonsSet set2 = buildSet(vertices2);
> >         PolygonsSet intersectionSet  = (PolygonsSet) new
> > RegionFactory<Euclidean2D>().intersection(set1.copySelf(),
> set2.copySelf());
> >
> >         Vector2D[][] intersectionVerts =
> intersectionSet.getVertices();
> >         for (Vector2D[] set : intersectionVerts) {
> >         for (Vector2D vertex : set) {
> >         System.out.println(vertex);
> >         }
> >         }
> >
> >
> > OUTPUT:
> > {-26.04; 53.26}
> > {-25.89; 53.61}
> > {-25.36; 53.52}
> > {-25.51; 53.32}
> > {-25.3; 53.28}
> > {-25.42; 53}                  <- OUTSIDE polygon A
> > {-25.72; 53.02}             <- OUTSIDE polygon A
> > {-25.95; 53.04}             <- OUTSIDE polygon A
> > {-25.84; 53.21}
> >
> 
> 
> I should add that the buildSet function is the same as that in the
> test suit
> of commons math:
>     private PolygonsSet buildSet(Vector2D[][] vertices) {
>         ArrayList<SubHyperplane<Euclidean2D>> edges = new
> ArrayList<SubHyperplane<Euclidean2D>>();
>         for (int i = 0; i < vertices.length; ++i) {
>             int l = vertices[i].length;
>             for (int j = 0; j < l; ++j) {
>                 edges.add(buildSegment(vertices[i][j], vertices[i][(j
> + 1) %
> l]));
>             }
>         }
>         return new PolygonsSet(edges);
>     }

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@commons.apache.org
For additional commands, e-mail: user-help@commons.apache.org


Mime
View raw message