示例#1
0
            private static bool contoursIntersect(Contour c1, Contour c2)
            {
                if (!c1.GetBoundingRectangle().Intersects(c2.GetBoundingRectangle()))
                    return false;

                ICoordinate pointStub = null;
                Segment segmentStub = new Segment();

                Segment segment1 = new Segment(c1.Vertices[0], c1.Vertices[1]);
                Segment segment2 = new Segment(c1.Vertices[2], c1.Vertices[3]);
                Segment segment3 = new Segment(c2.Vertices[0], c2.Vertices[1]);
                Segment segment4 = new Segment(c2.Vertices[3], c2.Vertices[3]);

                if (PlanimetryAlgorithms.SegmentsIntersection(segment1, segment3, out pointStub, out segmentStub) != Dimension.None ||
                    PlanimetryAlgorithms.SegmentsIntersection(segment1, segment4, out pointStub, out segmentStub) != Dimension.None ||
                    PlanimetryAlgorithms.SegmentsIntersection(segment2, segment3, out pointStub, out segmentStub) != Dimension.None ||
                    PlanimetryAlgorithms.SegmentsIntersection(segment2, segment4, out pointStub, out segmentStub) != Dimension.None)
                    return true;

                return false;
            }