Qtで画像を回転させる際にいくつかの問題に直面しています。QPainterで画像を回転するたびに、画像がどんどん歪んでいきます。これは最初のイメージです:
いくつかの反復の後、次のようになります。
これは私のコードです:
void Ship::Move(int x, int y)
{
QPixmap rotatePixmap(shipPixels.size());
rotatePixmap.fill(Qt::transparent);
QTransform transform;
transform.translate(
rotatePixmap.size().width() / 2,
rotatePixmap.size().height() / 2
);
transform.rotate(degree);
transform.translate(
- rotatePixmap.size().width() / 2,
- rotatePixmap.size().height() / 2
);
QPainter p(&rotatePixmap);
p.setRenderHints(
QPainter::Antialiasing | QPainter::SmoothPixmapTransform,
true
);
p.setTransform(transform);
p.drawPixmap(0, 0, shipPixels);
p.end();
shipPixels = rotatePixmap;
this->setPixmap(shipPixels);
this->move(QPoint(x, y));
degree = 0;
}
私にとって、Qt は画質を維持します。その振る舞いはまったく奇妙です。理由はありますか?