/ / Warum dreht sich mein Bild nicht? - Java, Rotation, Applet, gepuffertes Bild, graphics2d

Warum dreht sich mein Bild nicht? - Java, Rotation, Applet, gepufferte Bild, Graphics2D

Dieser Code zeigt das Logo an, aber es gibt keineDrehung. Fehlt mir etwas? Ich habe schon lange versucht, sich zu drehen. Alles wird gut dargestellt, und die Berechnungen sind korrekt, aber das Bild wird normal angezeigt

    import javax.swing.JApplet;
import java.awt.Graphics2D;
import java.awt.Graphics;
import java.applet.Applet;
import java.awt.Font;
import java.awt.image.*;
import java.awt.Image;
import java.awt.geom.*;
import java.awt.Color;
import java.io.*;
import javax.imageio.ImageIO;


public class Display extends Applet
{
static Image logo;
static double rotation;


public void init()
{
logo = getImage( getCodeBase() , "logo.jpg" );
rotation = 90;
setBackground(Color.WHITE);

}

public void paint(Graphics g)
{
g.drawImage( rotateGear(this), 0 , 0 , this);

}

public static Image rotateGear(ImageObserver o)
{
BufferedImage bf = new BufferedImage( 400 , 400 , BufferedImage.TYPE_INT_ARGB );
Graphics2D g2d = bf.createGraphics();
g2d.drawImage(logo, 0, 0, o);
g2d.setColor(Color.red);
g2d.fillRect(390, 390, 10, 10);
AffineTransform at = new AffineTransform();
at.rotate(rotation, 178, 178);
g2d.setTransform(at);
System.out.println( Math.toRadians(rotation));
return bf;


}
}

Antworten:

1 für die Antwort № 1

Weil Sie die Transformation einstellen, nachdem Sie das Bild gezeichnet haben. Machen Sie es andersherum!

(Ich habe es ausprobiert und Ihr Code funktioniert sonst gut.)