Mam pewien problem - napisałem sobie prostą funkcję, ktora ma za zadanie "przesunąc" mój obrazek o okreslone wspolrzedne. Wszystko dziala, bo kiedy dam na poczatku przesunObrazek(x,y), i potem rysuj(0,0), to rysuje mi nie w pkt (0,0), tylko od razu w pkt (x,y). Jednak jak to zrobic, abym mial te 2 obrazki jednoczesnie na jednym obrazku? Tzn. obrazek do przesuniecia i od razu obrazek przesuniety. Wkleje kod, moze ktos bedzie w stanie pomoc :)
#include <QWidget>
#include <QPainter>
#include <QPaintEvent>
#include <QApplication>
class rysownik : public QWidget
{
QImage obrazek;
protected:
void paintEvent(QPaintEvent*);
void przesunObrazek(QImage &we, QImage &wy, int tx, int ty);
public:
rysownik(QWidget* parent=0);
};
void rysownik::przesunObrazek(QImage &we, QImage &wy, int tx, int ty){
we = QImage(":/images/obrazek");
for(int y=0; y<we.height(); y++){
for(int x=0; x<we.width(); x++){
wy.setPixel(QPoint(x+tx,y+ty),we.pixel(QPoint(x,y)));
}
}
}
void rysownik::paintEvent(QPaintEvent* e)
{
//tlo
obrazek = QImage(500,500,QImage::Format_RGB32);
QPainter paint(this);
paint.drawImage(0,0,obrazek);
QImage a = QImage(500,500,QImage::Format_RGB32);
QImage b = QImage(500,500,QImage::Format_RGB32);
przesunObrazek(a,b,50,50);
paint.drawImage(0,0,b);
przesunObrazek(a,b,200,200);
paint.drawImage(0,0,b);
update();
this->setFixedSize(500,500);
}
rysownik::rysownik(QWidget* parent) : QWidget(parent)
{
}
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
rysownik iw;
iw.show();
return a.exec();
}