프로젝트

일반

사용자정보

개정판 fb3d352a

IDfb3d352abe10388438de5a59bdf9f43ea1f4fc03
상위 8bfde2f3
하위 1eb20885

함의성이(가) 5년 이상 전에 추가함

issue #538: symbol rotate fix

Change-Id: I3cb8436a175907b8012e47ac68d2ed43fc04f311

차이점 보기:

DTI_PID/DTI_PID/Shapes/SymbolSvgItem.py
67 67
        self.currentCursor = 0
68 68
        self.transfer = Transfer()
69 69

  
70
        self._angle = 0
71

  
70 72
        try:
71 73
            f = QFile(path)
72 74
            f.open(QIODevice.ReadOnly)
......
875 877
    '''
876 878

  
877 879
    def mouseReleaseEvent(self, event):
878
        if hasattr(self, '_rotating') and event.button() == Qt.RightButton and hasattr(self, '__angle'):
879
            self.angle = -self.__angle if self.__angle > -math.pi and self.__angle < 0 else 2 * math.pi - self.__angle
880
        if hasattr(self, '_rotating') and event.button() == Qt.RightButton:
881
            self.angle = -self._angle if self._angle > -math.pi and self._angle < 0 else 2 * math.pi - self._angle
880 882
            self.ungrabMouse()
881 883
            del self._rotating
882 884

  
......
893 895
            dy = (event.scenePos().y() - origin[1])
894 896
            length = math.sqrt(dx * dx + dy * dy)
895 897

  
896
            self.__angle = 0
898
            self._angle = 0
897 899
            if length > 0:
898
                self.__angle = math.acos(dx / length)
899
                cross = np.cross([1, 0], [dx, dy])
900
                self.__angle = -self.__angle if cross < 0 else self.__angle
900
                self._angle = math.acos(dx / length)
901
                cross = int(np.cross([1, 0], [dx, dy]))
902
                self._angle = -self._angle if cross < 0 else self._angle
901 903

  
902
                self.rotate(self.getCurrentPoint(), -self.__angle)
904
                self.rotate(self.getCurrentPoint(), -self._angle)
903 905

  
904 906
    def removeSelfAttr(self, attributeName):
905 907
        target = None

내보내기 Unified diff

클립보드 이미지 추가 (최대 크기: 500 MB)