Exemplo n.º 1
0
    def mouseDown(self, event):
        botRight = self.selected.getRect().bottomRight()
        topLeft = self.selected.getRect().topLeft()

        if getDistance(event.pos(), botRight) <= 3:
            self.editType = 'BOTTOMRIGHT'
        elif getDistance(event.pos(), topLeft) <= 3:
            self.editType = 'TOPLEFT'
        else:
            self.editType = 'NO'
Exemplo n.º 2
0
    def mouseDown(self, event):
        pos = event.pos()
        begin = self.selected.getBegin()
        end = self.selected.getEnd()

        if getDistance(begin, pos) <= 3:
            self.editType = 'BEGIN'
        elif getDistance(end, pos) <= 3:
            self.editType = 'END'
        else:
            self.editType = 'NO'
    def mouseDown(self, event):
        point = self.selected.getCenter() - QPoint(0, self.selected.getRadiusY())

        if getDistance(point, event.pos()) <= 3:
            self.editType = 'TOP'
        else:
            self.editType = 'NO'
Exemplo n.º 4
0
    def mouseDown(self, event: QMouseEvent):
        pos = event.pos()
        points: List[QPoint] = self.selected.points

        for point in points:
            if getDistance(pos, point) <= 3:
                if event.button() == Qt.RightButton:
                    self.selected.points.remove(point)
                else:
                    self.editType = point
                break
        else:
            self.editType = 'NO'
Exemplo n.º 5
0
    def draw(self, image):
        width = self.drawContext.width

        qp = QPainter(image)
        qp.setPen(QPen(self.drawContext.stroke, self.drawContext.width))

        # Draw main line
        qp.drawLine(self.getBegin(), self.getEnd())

        # set draw data
        qp.setBrush(self.drawContext.stroke)
        qp.setPen(QPen(self.drawContext.stroke, 0))

        # get vector to end relative begin
        diff = self.getEnd() - self.getBegin()

        # calculate angle between vectors
        try:
            angle = math.acos(
                diff.x() / getDistance(diff, QPoint(0, 0))) - math.pi / 2
        except ZeroDivisionError:
            angle = 0

        # set coord system center to end
        qp.translate(self.getEnd())

        # rotate system in right direction
        if diff.y() < 0:
            qp.rotate(math.degrees(-angle))
        else:
            qp.rotate(math.degrees(math.pi / 2 + (math.pi / 2 + angle)))

        # translate to draw triangle
        qp.translate(0, -width * math.sqrt(3))

        # draw triangle
        path = QPainterPath()

        path.moveTo(0, 0)
        path.lineTo(-width, width * math.sqrt(3))
        path.lineTo(width, width * math.sqrt(3))
        path.closeSubpath()

        qp.drawPath(path)