我有一個矩形圖像(即1280 x 1024),需要圍繞其中心點旋轉,然後轉換爲給定點。旋轉+翻譯?
在一個小部件的paintEvent方法,這就是我做的:
def paintEvent(self, event):
# self._center are the coordinates where I want to set the rotated image's center.
t = QtGui.QTransform()
s = self._pm.size() # self._pm is the image to rotate.
t.translate(s.width()/2, s.height()/2)
t.rotate(self._degrees)
t.translate(-s.width()/2, -s.height()/2)
# now my image is properly rotated. Now I need to translate it to the final
# coordinates.
t.translate (self._center.x, self._center.y)
p = QtGui.QPainter(self)
p.setTransform(t)
p.drawPixmap(0, 0, self._pm)
p.end()
這很好輪換。問題是,我不能找到一種方法,用一個新的中心,以顯示我的形象,它只有self._degrees
爲0
如果我申請的另一個translate
到QTransform對象,self._degrees
不爲0的作品,形象是永遠集中在我期望的地方。
請問有人能指點我正確的方向嗎?
編輯
PS:我忘了提,新中心的座標是基於原始圖像的座標,而不是旋轉的圖像的人。
解釋:「F I應用另一種形式轉換爲QTransform對象和自我。 _degrees不是0,圖像永遠不會集中在我期望的位置。「我猜你很快就會應用這個轉換。顯示有問題的轉換代碼。 –
@MarekR謝謝你,看我最近的編輯。 – Simone