Ubuntu Suomen keskustelualueet
Ubuntun käyttö => Ohjelmointi, palvelimet ja muu edistyneempi käyttö => Aiheen aloitti: 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:
# -*- 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.
-
Ei hirveän kaunis ratkaisu, mutta:
# -*- 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)