חפיפת מלבנים + ש.ב.

שיעורי בית

עמוד 149 בחלק א

תרגילים 21,22

 

פתרון שיעורי הבית של אתמול

public static boolean isOverlappint(Point ld1,Point ur1,Point ld2,Point ur2){

       if (ur1.getY() < ld2.getY() || ld1.getY() > ur2.getY())

              return false;

       if (ur1.getX() < ld2.getX() || ld1.getX() > ur2.getX())

              return false;

       return true;

}

        

public static double overlapping(Point p1,Point p2,Point p3,Point p4){

       Point ld1 = new Point(Math.min(p1.getX(), p2.getX()),Math.min(p1.getY(), p2.getY()));

       Point ur1 = new Point(Math.max(p1.getX(), p2.getX()),Math.max(p1.getY(), p2.getY()));

       Point ld2 = new Point(Math.min(p3.getX(), p4.getX()),Math.min(p3.getY(), p4.getY()));

       Point ur2 = new Point(Math.max(p3.getX(), p4.getX()),Math.max(p3.getY(), p4.getY()));

             

       if (!isOverlappint(ld1,ur1,ld2,ur2))

              return 0;

       else{

              double dx = Math.min(ur1.getX(), ur2.getX()) – Math.max(ld1.getX(), ld2.getX());

              double dy = Math.min(ur1.getY(), ur2.getY()) – Math.max(ld1.getY(), ld2.getY());

              return dx*dy;             

             

       }

}