Поворот изображения с помощью AffineTransform

У меня есть класс под названиемAirplane, Внутри этого класса у меня есть переменнаяimg который являетсяBufferedImage тип. Более того, у меня есть классWorldMap которая переопределяет функцию:paintComponent(Graphics g)

@Override
public void paintComponent(Graphics g) {
    Graphics2D g2d = (Graphics2D) g;
    g2d.drawImage(mapa, 0, 0, getWidth(), getHeight(), null); 
    drawAirplanes(g2d);
}

функцияdrawAirplanes() выглядеть так:

private void drawAirplane(Graphics2D g){
    for(Samolot i: s){
        i.rotateAirplane();
        g.drawImage(i.getImg(),i.getX(),i.getY(),(int)i.getDim().getWidth(),(int)i.getDim().getHeight(),  null);
    }
}

Для этого просто нужно 1) повернуть самолет (BufferedImage внутри объекта Airplane) 2) нарисовать его.

Моя функция Airplane.rotateAirplane () выглядит следующим образом:

 public void rotateSamolot() {
   AffineTransform tx = new AffineTransform();

   tx.translate(10,10); //10, 10 is height and width of img divide by 2
   tx.rotate(Math.PI / 2);
   tx.translate(-10,-10); 

   AffineTransformOp op = new AffineTransformOp(tx, AffineTransformOp.TYPE_BILINEAR);

   BufferedImage newImage =new BufferedImage(20, 20, img.getType()); //20, 20 is a height and width of img ofc
   op.filter(img, newImage);

       this.img = newImage;
 }

ofc, когда я запускаю только мою программуmapa Объект нарисован. когда я удаляю эту полосу

this.img = newImage;

Я тоже получил свой самолет, но не вращался.

Ответы на вопрос(2)

Ваш ответ на вопрос