Ответсообщение недоступно
Я устал, я мухожук(( . Задача G. Идеи? На сколько я понял задача для сисадминов, но у меня бубна нет. Хлеп.
class Rectangle:
def __init__(self, p1, p2):
self.p1 = p1
self.p2 = p2
self.move(0, 0)
def perimeter(self):
return round((abs(self.p1[0] - self.p2[0]) + abs(self.p1[1] - self.p2[1])) * 2, 2)
def area(self):
return round(abs(self.p1[0] - self.p2[0]) * abs(self.p1[1] - self.p2[1]), 2)
def get_pos(self):
return tuple([round(min(self.p1[0], self.p2[0]), 2), round(max(self.p1[1], self.p2[1]), 2)])
def get_size(self):
return tuple([round(abs(self.p1[0] - self.p2[0]), 2), round(abs(self.p1[1] - self.p2[1]), 2)])
def move(self, x, y):
self.p1, self.p2 = (tuple([round(min(self.p1[0], self.p2[0]) + x, 2),
round(max(self.p1[1], self.p2[1]) + y, 2)]),
tuple([round(max(self.p1[0], self.p2[0]) + x, 2),
round(min(self.p1[1], self.p2[1]) + y, 2)]))
def resize(self, x, y):
self.p1, self.p2 = (tuple([round(min(self.p1[0], self.p2[0]), 2), round(max(self.p1[1], self.p2[1]), 2)]),
tuple([round(min(self.p1[0], self.p2[0]) + x, 2),
round(max(self.p1[1], self.p2[1]) - y, 2)]))
def turn(self):
center = [round((self.p1[0] + self.p2[0]) / 2.0, 2), round((self.p1[1] + self.p2[1]) / 2.0, 2)]
self.p1, self.p2 = (tuple([round(center[0] + (self.p1[1] - center[1]), 2),
round(center[1] + (self.p1[0] - center[0]), 2)]),
tuple([round(center[0] - (self.p1[1] - center[1]), 2),
round(center[1] - (self.p1[0] - center[0]), 2)]))
self.move(0, 0)
def scale(self, factor):
center = [round((self.p1[0] + self.p2[0]) / 2.0, 2), round((self.p1[1] + self.p2[1]) / 2.0, 2)]
self.p1, self.p2 = (tuple([round(center[0] - (center[0] - self.p1[0]) * factor, 2),
round(center[1] + (self.p1[1] - center[1]) * factor, 2)]),
tuple([round(center[0] + (center[0] - self.p1[0]) * factor, 2),
round(center[1] - (self.p1[1] - center[1]) * factor, 2)]))
self.move(0, 0)