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 № 1Weil Sie die Transformation einstellen, nachdem Sie das Bild gezeichnet haben. Machen Sie es andersherum!
(Ich habe es ausprobiert und Ihr Code funktioniert sonst gut.)