Das was du da zeigst ist wahlweise sinnlos, oder falsch. Denn das transform Objekt ist ein lokales, was du dann aber setzt ist ein Objekt-Attribut, self.transform. Die haben also nix miteinander zu tun. Wenn es also funktioniert, dann ist diese lokale transform überflüssig, und der wichtige Teil woanders. Oder es kracht. Oder es ist falsch abgeschrieben.
Warum stört dich die anlage einer popeligen Matrix mit 9 Double werten? Nahezu jeder String ist teurer. Was genau ist dran jetzt so „böse“?
Wenn du immer die gleiche Matrix benutzt, dann ist natürlich der Effekt der des sukzessiven rotierens Wieder da. Das ist doch nicht verwunderlich. Das ist das, was rotate macht.
Geokartenkacheln in QGraphicsView zusammenstellen
Sorry. Mein Code hatte ein Fehler - natürlich macht das so keinen Sinn.
Gemeint habe ich:
was ich sagen/frage wollte, war das:
gestört hat mich bei jedem zyklischen Aufruf die wiederkehrende Erstellung der Matrix. Die ist ja aber in meinem Fall notwendig. (Fand das einfach nicht schick - aber eher aus Unwissenheit
)
Gemeint habe ich:
Code: Alles auswählen
def map_rotate(self, angle):
transform = QtGui.QTransform()
transform.rotate(-angle)
self.ui.graphicsView.setTransform(transform)
Code: Alles auswählen
...
def __init__ (self):
self.transform = QtGui.QTransform()
...
def map_rotate(self, angle):
self.transform.rotate(-angle)
self.ui.graphicsView.setTransform(self.transform)

Je weniger Zustand man hat, und je kürzer der lebt, desto schicker. Also genau das Gegenteil. Alles, was man Berechnen *kann*, statt es aufzuheben, ist erstmal gut. Denn alles, was man aufhebt, kann irgendwann veraltet, und im Widerspruch zur gewünschten Realität stehen. Natürlich gilt das nicht absolut, aber es gibt ganze sprachfamilien, die funktionalen Sprachen, die um dieses Prinzip gebaut sind. Und das erfolgreich.