BufferedImage rotate(Image src,  src_width = src.getWidth( src_height = src.getHeight(
        Rectangle rect_des = CalcRotatedSize( Rectangle(= = =     
        g2.translate((rect_des.width - src_width) / 2, (rect_des.height - src_height) / 2);

     
        g2.rotate(Math.toRadians(angel), src_width / 2, src_height / 2); 

, 
      Rectangle CalcRotatedSize(Rectangle src,  cos = sin = des_width = ()(src.width *  cos) + ()(src.height * des_height =  ()(src.height *  cos) + ()(src.width *  java.awt.Rectangle(


1.先平移再旋转

 

2.先旋转,再平移