-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathRectangle.py
More file actions
45 lines (36 loc) · 1.15 KB
/
Rectangle.py
File metadata and controls
45 lines (36 loc) · 1.15 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
class Rectangle:
def overlaps(self, rect):
left, right = self.get_left_x(), self.get_right_x()
top, bottom = self.get_top_y(), self.get_bottom_y()
rleft, rright = rect.get_left_x(), rect.get_right_x()
rtop, rbottom = rect.get_top_y(), rect.get_bottom_y()
return (
left <= rright
and right >= rleft
and top >= rbottom
and bottom <= rtop
)
# don't touch below this line
def __init__(self, x1, y1, x2, y2):
self.__x1 = x1
self.__y1 = y1
self.__x2 = x2
self.__y2 = y2
def get_left_x(self):
if self.__x1 < self.__x2:
return self.__x1
return self.__x2
def get_right_x(self):
if self.__x1 > self.__x2:
return self.__x1
return self.__x2
def get_top_y(self):
if self.__y1 > self.__y2:
return self.__y1
return self.__y2
def get_bottom_y(self):
if self.__y1 < self.__y2:
return self.__y1
return self.__y2
def __repr__(self):
return f"Rectangle({self.__x1}, {self.__y1}, {self.__x2}, {self.__y2})"