/ / Prečo sa obrázok nezmenil? java, rotácia, applet, bufferedimage, graphics2d

Prečo sa obrázok nezmenil? java, rotácia, applet, bufferedimage, graphics2d

Tento kód zobrazuje logo, ale nie jerotácie. Uniká mi niečo? Pokúšam sa dlho otáčať, všetko sa zobrazuje v poriadku a výpočty sú správne, ale obrázok sa zobrazí ako bežný obrázok

    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;


}
}

odpovede:

1 pre odpoveď č. 1

Pretože nastavujete transformáciu po nakreslení obrázka, urobte to naopak!

(Skúšal som to a váš kód funguje inak.)