Từ hồi cấp 3, mình đã đọc được đoạn code này từ một quyển sách mà không cần bận tâm hiểu tại sao.
Nay mình vẽ hình giải thích rõ hơn. Tóm lại điều kiện để hình chữ nhật (x1,y1, w1, h1) giao với hình chữ nhật (x2,y2,w2,h2) là
((x1+w1 >= x2) && (x2+w2 >= x1) && (y1+w1 >= y2) && (y2+w2 >= y1)) == true
(x1,y1) và (x2,y2) là toạ độ điểm góc cao, bên trái 2 hình chữ nhật, còn (w1, h1) và (w2, h2) là chiều rộng và chiều cao tương ứng của hai hình chữ nhật.
Hình chữ nhật con nằm giao giữa 2 hình chữ nhật sẽ có 2 cạnh toạ độ như sau:
- Chiều rộng: từ Max(x1, x2) đến Min(x1+w1, x2+w2)
- Chiều cao từ Max(y1, y2) đến Min(y1+w1, y2+w2)
Bình luận