Exemplo n.º 1
0
    def mousePressEvent(self, event):

        position = self.mapToScene(QtCore.QPoint(event.x(), event.y()))
        x, y = self._convert_xy(position.x(),
                                self.figure_iter.get_y(position.x()))
        if abs(y - position.y()) < 10:
            tangent = self.figure_iter.derivative(x)
            p1x, p1y = self._convert_xy(tangent[0][0], tangent[0][1])
            p2x, p2y = self._convert_xy(tangent[1][0], tangent[1][1])
            self.scene.addLine(p1x, p1y, p2x, p2y,
                               QtGui.QPen(QtCore.Qt.blue))
            self.scene.addEllipse(x, y, 5, 5, QtGui.QPen(QtCore.Qt.red),
                                  QtGui.QBrush(QtCore.Qt.SolidPattern))


            x1, y1 = rotate(90, p1x, p1y, x, y)
            x2, y2 = rotate(90, p2x, p2y, x, y)

            self.scene.addLine(x1, y1, x2, y2,
                               QtGui.QPen(QtCore.Qt.green))

            self.setScene(self.scene)
Exemplo n.º 2
0
    def __rotate_hndlr(self):
        self.angle = float(self.rotate_angle_ledit.text() or '0')
        self.rpx = float(self.rotate_x_ledit.text() or '0')
        self.rpy = float(self.rotate_y_ledit.text() or '0')

        return lambda x, y: rotate(self.angle, x, y, self.rpx, self.rpy)