class Circle(Figure): def __init__(self, *args, **kwargs): self.first_point = FirstPoint() self.second_point = SecondPoint() self.control = Control() Figure.__init__(self, self.first_point) self.center = QPoint() self.ctrl = QPoint() if 'center' in kwargs: self.center = kwargs['center'] if 'ctrl' in kwargs: self.ctrl = kwargs['ctrl'] if 'figure' in kwargs: self.center = QPoint(kwargs['figure']['center']['x'], kwargs['figure']['center']['y']) self.ctrl = QPoint(kwargs['figure']['ctrl']['x'], kwargs['figure']['ctrl']['y']) self.state = self.control if len(args) == 2: self.center = args[0] self.ctrl = args[1] if len(args) == 4: self.center = QPoint(args[0], args[1]) self.ctrl = QPoint(args[2], args[3]) def draw(self, painter, scale): painter.save() if not self.center.isNull() and not self.ctrl.isNull(): radius = distance(self.center, self.ctrl) painter.setPen(QPen(QBrush(QColor(232, 109, 21) if self.state is not self.control else QColor(21, 144, 232)), self.lineWidth(scale), Qt.SolidLine)) painter.setBrush(QBrush(QColor(21, 144, 232, 150))) painter.drawEllipse(self.center, radius, radius) self.drawControlPoint(painter, self.center, QColor(31, 174, 222), scale) self.drawControlPoint(painter, self.ctrl, QColor(222, 79, 31), scale) Figure.draw(self, painter, scale) painter.restore() def getDict(self): return { 'circle': { 'center': { 'x': self.center.x(), 'y': self.center.y(), }, 'ctrl': { 'x': self.ctrl.x(), 'y': self.ctrl.y(), } } } def __str__(self): return self.__repr__() def __repr__(self): return 'Circle(({x}, {y}), {radius})'.format(x=self.center.x(), y=self.center.y(), radius=distance(self.center, self.ctrl))
class Rectangle(Figure): def __init__(self, *args, **kwargs): self.first_point = FirstPoint() self.second_point = SecondPoint() self.control = Control() self.p1 = QPoint() self.p2 = QPoint() Figure.__init__(self, self.first_point) if 'x1' in kwargs and 'y1' in kwargs: self.p1 = QPoint(kwargs['x1'], kwargs['y1']) if 'x2' in kwargs and 'y2' in kwargs: self.p2 = QPoint(kwargs['x2'], kwargs['y2']) if 'p1' in kwargs: self.p1 = kwargs['p1'] if 'p2' in kwargs: self.p2 = kwargs['p2'] if len(args) == 2: self.p1 = args[0] self.p2 = args[1] if len(args) == 4: self.p1 = QPoint(args[0], args[1]) self.p2 = QPoint(args[2], args[3]) if 'figure' in kwargs: self.p1 = QPoint(kwargs['figure']['x1'], kwargs['figure']['y1']) self.p2 = QPoint(kwargs['figure']['x2'], kwargs['figure']['y2']) self.state = self.control def draw(self, painter, scale): painter.save() if not self.p1.isNull() and not self.p2.isNull(): painter.setPen(QPen(QBrush(QColor(232, 109, 21) if self.state is not self.control else QColor(21, 144, 232)), self.lineWidth(scale), Qt.SolidLine)) painter.setBrush(QBrush(QColor(21, 144, 232, 150))) painter.drawRect(QRect(self.p1, self.p2)) self.drawControlPoint(painter, self.p1, QColor(31, 174, 222), scale) self.drawControlPoint(painter, self.p2, QColor(222, 79, 31), scale) Figure.draw(self, painter, scale) painter.restore() def getDict(self): return { 'rect': { 'x1': self.p1.x(), 'y1': self.p1.y(), 'x2': self.p2.x(), 'y2': self.p2.y() } } def __str__(self): return self.__repr__() def __repr__(self): return 'Rectangle(({x1}, {y1}), ({x2}, {y2}))'.format(x1=self.p1.x(), y1=self.p1.y(), x2=self.p2.x(), y2=self.p2.y())
class Rectangle(Figure): def __init__(self, *args, **kwargs): self.first_point = FirstPoint() self.second_point = SecondPoint() self.control = Control() self.p1 = QPoint() self.p2 = QPoint() Figure.__init__(self, self.first_point) if 'x1' in kwargs and 'y1' in kwargs: self.p1 = QPoint(kwargs['x1'], kwargs['y1']) if 'x2' in kwargs and 'y2' in kwargs: self.p2 = QPoint(kwargs['x2'], kwargs['y2']) if 'p1' in kwargs: self.p1 = kwargs['p1'] if 'p2' in kwargs: self.p2 = kwargs['p2'] if len(args) == 2: self.p1 = args[0] self.p2 = args[1] if len(args) == 4: self.p1 = QPoint(args[0], args[1]) self.p2 = QPoint(args[2], args[3]) if 'figure' in kwargs: self.p1 = QPoint(kwargs['figure']['x1'], kwargs['figure']['y1']) self.p2 = QPoint(kwargs['figure']['x2'], kwargs['figure']['y2']) self.state = self.control def draw(self, painter, scale): painter.save() if not self.p1.isNull() and not self.p2.isNull(): painter.setPen( QPen( QBrush( QColor(232, 109, 21) if self.state is not self. control else QColor(21, 144, 232)), self.lineWidth(scale), Qt.SolidLine)) painter.setBrush(QBrush(QColor(21, 144, 232, 150))) painter.drawRect(QRect(self.p1, self.p2)) self.drawControlPoint(painter, self.p1, QColor(31, 174, 222), scale) self.drawControlPoint(painter, self.p2, QColor(222, 79, 31), scale) Figure.draw(self, painter, scale) painter.restore() def getDict(self): return { 'rect': { 'x1': self.p1.x(), 'y1': self.p1.y(), 'x2': self.p2.x(), 'y2': self.p2.y() } } def __str__(self): return self.__repr__() def __repr__(self): return 'Rectangle(({x1}, {y1}), ({x2}, {y2}))'.format(x1=self.p1.x(), y1=self.p1.y(), x2=self.p2.x(), y2=self.p2.y())
class Circle(Figure): def __init__(self, *args, **kwargs): self.first_point = FirstPoint() self.second_point = SecondPoint() self.control = Control() Figure.__init__(self, self.first_point) self.center = QPoint() self.ctrl = QPoint() if 'center' in kwargs: self.center = kwargs['center'] if 'ctrl' in kwargs: self.ctrl = kwargs['ctrl'] if 'figure' in kwargs: self.center = QPoint(kwargs['figure']['center']['x'], kwargs['figure']['center']['y']) self.ctrl = QPoint(kwargs['figure']['ctrl']['x'], kwargs['figure']['ctrl']['y']) self.state = self.control if len(args) == 2: self.center = args[0] self.ctrl = args[1] if len(args) == 4: self.center = QPoint(args[0], args[1]) self.ctrl = QPoint(args[2], args[3]) def draw(self, painter, scale): painter.save() if not self.center.isNull() and not self.ctrl.isNull(): radius = distance(self.center, self.ctrl) painter.setPen( QPen( QBrush( QColor(232, 109, 21) if self.state is not self. control else QColor(21, 144, 232)), self.lineWidth(scale), Qt.SolidLine)) painter.setBrush(QBrush(QColor(21, 144, 232, 150))) painter.drawEllipse(self.center, radius, radius) self.drawControlPoint(painter, self.center, QColor(31, 174, 222), scale) self.drawControlPoint(painter, self.ctrl, QColor(222, 79, 31), scale) Figure.draw(self, painter, scale) painter.restore() def getDict(self): return { 'circle': { 'center': { 'x': self.center.x(), 'y': self.center.y(), }, 'ctrl': { 'x': self.ctrl.x(), 'y': self.ctrl.y(), } } } def __str__(self): return self.__repr__() def __repr__(self): return 'Circle(({x}, {y}), {radius})'.format(x=self.center.x(), y=self.center.y(), radius=distance( self.center, self.ctrl))