public static GpcPolygon Intersection(EasyMap.Geometries.Point[] source, EasyMap.Geometries.Point[] dest) { GraphicsPath gp1 = new GraphicsPath(); //source.ForEach(a => { gp1.AddPolygon(a.ToArray()); }); GpcPolygon polygonA = new GpcPolygon(source); GraphicsPath gp2 = new GraphicsPath(); //dest.ForEach(a => { gp2.AddPolygon(a.ToArray()); }); GpcPolygon polygonB = new GpcPolygon(dest); GpcPolygon polygon = polygonA.Clip(GpcOperation.Intersection, polygonB); return(polygon); }
//public static bool PolygnIsIn(List<PointF> source, List<PointF> dest) //{ // GpcPolygon polygon = Intersection(source, dest); // return PolygnIsIn(dest, polygon); //} public static GpcPolygon Intersection(List <List <PointF> > source, List <List <PointF> > dest) { GraphicsPath gp1 = new GraphicsPath(); source.ForEach(a => { gp1.AddPolygon(a.ToArray()); }); GpcPolygon polygonA = new GpcPolygon(gp1); GraphicsPath gp2 = new GraphicsPath(); dest.ForEach(a => { gp2.AddPolygon(a.ToArray()); }); GpcPolygon polygonB = new GpcPolygon(gp2); GpcPolygon polygon = polygonA.Clip(GpcOperation.Intersection, polygonB); return(polygon); }