Ubuntu Suomen keskustelualueet

Ubuntun käyttö => Ohjelmointi, palvelimet ja muu edistyneempi käyttö => Aiheen aloitti: snifi - 06.06.10 - klo:20.43

Otsikko: Kuvan pyöritys Qt:lla? [Ratkaistu]
Kirjoitti: snifi - 06.06.10 - klo:20.43
Minulla on kaksi kuvaa, joista olen yrittänyt tehdä koostekuvan:
Ensimmäinen kuva:
(http://pp.kpnet.fi/jhii/galerio/pics/compass_rose_pale.png)
Toinen kuva:
(http://pp.kpnet.fi/jhii/galerio/pics/compass_rose_arrow.png)

Tarkoituksena olisi pyörittää tuulinuoli oikeaan asentoon:

Koodia: [Valitse]
# -*- coding: utf-8 -*-

from PyQt4.QtGui import *

compassrose=QImage("compass_rose_pale.png")
windarrow=QImage("compass_rose_arrow.png")
resultImage=compassrose
painter=QPainter(resultImage)
s=windarrow.size().height()/2
for rot in [10,20,30,40,50,60,70,80,90]:
  matrix=QMatrix()
  matrix.translate(s,s)
  matrix.rotate(rot)
  matrix.translate(-s,-s);
  painter.drawImage(0, 0, windarrow.transformed(matrix));
resultImage.save("compass_rose_combined.png")

Mutta tulos on tämä:
(http://pp.kpnet.fi/jhii/galerio/pics/compass_rose_combined.png)
Miten saisin kuvan pyörimään oikealla tavalla keskeltä? Näyttäisi, että se pyörii oikein, mutta neliskulmaisena kuvana se muuttaa kuvan dimensioita samalla.
Otsikko: Vs: Kuvan pyöritys Qt:lla?
Kirjoitti: snifi - 06.06.10 - klo:23.15
Ei hirveän kaunis ratkaisu, mutta:

Koodia: [Valitse]
# -*- coding: utf-8 -*-

from PyQt4.QtGui import *

compassrose=QImage("compass_rose_pale.png")
windarrow=QImage("compass_rose_arrow.png")
resultImage=compassrose
painter=QPainter(resultImage)
centerX=windarrow.size().width()/2
centerY=windarrow.size().height()/2

for rot in range(0,360,10):
  matrix=QMatrix()
  matrix.translate(centerX,centerY)
  matrix.rotate(rot)
  matrix.translate(-centerX,-centerY)

  transformed=windarrow.transformed(matrix)
  cx=transformed.size().width()/2
  cy=transformed.size().height()/2
  xShift = centerX-cx
  yShift = centerY-cy
  painter.drawImage(xShift, yShift, transformed);
resultImage.save("compass_rose_combined2.png")

 (http://pp.kpnet.fi/jhii/galerio/pics/compass_rose_combined3.png)