-
Notifications
You must be signed in to change notification settings - Fork 26
/
Copy pathshape.py
74 lines (53 loc) · 1.61 KB
/
shape.py
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
class Shape():
def __init__(self):
self.fillColor = "White"
self.borderColor = "Black"
self.__borderWidth = 1.0
def set_fillColor(self, x):
self.fillColor = x
def set_borderColor(self, y):
self.borderColor = y
def get_borderColor(self):
return self.borderColor
def get_fillColor(self):
return self.fillColor
class Rectangle(Shape):
def __init__(self):
Shape.__init__(self)
self.length = 1.0
self.width = 2.0
def set_length(self, x):
self.length = x
def set_width(self, y):
self.width = y
def get_length(self):
return self.length
def get_width(self):
return self.width
def calculate_area(self):
return self.length * self.width
def calculate_perimeter(self):
return 2 * (self.length + self.width)
class Triangle(Shape):
def __init__(self):
Shape.__init__(self)
self.side1 = 1.0
self.side2 = 2.0
self.side3 = 3.0
def set_side1(self, x):
self.side1 = x
def set_side2(self, y):
self.side2 = y
def set_side3(self, z):
self.side3 = z
def get_side1(self):
return self.side1
def get_side2(self):
return self.side2
def get_side3(self):
return self.side3
def calculate_area(self):
s = (self.side1 + self.side2 + self.side3) / 2
return (s * (s - self.side1) * (s - self.side2) * (s - self.side3)) ** 0.5
def calculate_perimeter(self):
return self.side1 + self.side2 + self.side3