Ich habe Probleme, eine gedrehte BufferedImageAnzeige 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 img2dauf 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