示例#1
0
        static void Main(string[] args)
        {
            var rc1 = new RectangleCoordinates(3, 3, 6, 6);
            var rc2 = new RectangleCoordinates(3, 3, 5, 5);
            RectangleOverlappingCounter counter = new RectangleOverlappingCounter();
            var result = counter.CalculateArea(counter.DefineOverlapCoordinates(rc1, rc2));

            Console.WriteLine(result);
        }
示例#2
0
        public RectangleCoordinates DefineOverlapCoordinates(RectangleCoordinates rc1, RectangleCoordinates rc2)
        {
            if (rc1.X1 > rc2.X1)
            {
                var tempRect = rc1;
                rc1 = rc2;
                rc2 = tempRect;
            }
            bool areRectanglesFading = rc1.X2 > rc2.X1 && rc1.X1 <rc2.X2 && rc1.Y2> rc2.Y1 && rc1.Y1 < rc2.Y2;

            if (areRectanglesFading)
            {
                int x1 = rc1.X1 > rc2.X1 ? rc1.X1 : rc2.X1;
                int y1 = rc1.Y1 > rc2.Y1 ? rc1.Y1 : rc2.Y1;
                int x2 = rc1.X2 < rc2.X2 ? rc1.X2 : rc2.X2;
                int y2 = rc1.Y2 < rc2.Y2 ? rc1.Y2 : rc2.Y2;
                return(new RectangleCoordinates(x1, y1, x2, y2));
            }
            return(new RectangleCoordinates(0, 0, 0, 0));
        }
示例#3
0
 public int CalculateArea(RectangleCoordinates coordinates)
 {
     return(Math.Abs(coordinates.X1 - coordinates.X2) * Math.Abs(coordinates.Y1 - coordinates.Y2));
 }