Ich habe Probleme, eine gedrehte BufferedImage
Anzeige anzuzeigen. Ich denke, die Drehung funktioniert gut, aber ich kann sie nicht wirklich auf den Bildschirm zeichnen. Mein Code:
Class extends JPanel {
BufferedImage img;
int rotation = 0;
public void paintComponent(Graphics g) {
g.clearRect(0, 0, getWidth(), getHeight());
img2d = img.createGraphics();
img2d.rotate(Math.toRadians(rotation), img.getWidth() / 2, img.getHeight() / 2);
g.drawImage(img, imgx, imgy, null);
this.repaint();
}
}
Das funktioniert bei mir nicht. Ich konnte keine Möglichkeit finden, die gedrehte img2d
auf zu zeichnen g
.
BEARBEITEN: Ich habe mehrere Objekte, auf die gezeichnet wird g
, also kann ich das nicht drehen. Ich muss in der Lage sein, die Dinge einzeln zu drehen.
Lösung des Problems
Vielleicht sollten Sie versuchen, Folgendes zu verwenden AffineTransform
:
AffineTransform transform = new AffineTransform();
transform.rotate(radians, bufferedImage.getWidth() / 2, bufferedImage.getHeight() / 2);
AffineTransformOp op = new AffineTransformOp(transform, AffineTransformOp.TYPE_BILINEAR);
bufferedImage = op.filter(bufferedImage, null);
Hoffe das hilft.
Keine Kommentare:
Kommentar veröffentlichen