2

Graphics2Dのrotateメソッドで画像を回転させる際に問題が発生します。

これが私が抱えている問題の画像です:

ここに画像の説明を入力してください

ボールを動かすと、回転すると画像が完全に歪んでしまいます。

これが私の回転方法です:

public static void rotate(BufferedImage img, Rectangle rect, int degrees) { 
    Graphics2D g = (Graphics2D) img.createGraphics();
    g.rotate(degrees, rect.x + rect.width/2, rect.y + rect.height/2);
    g.drawImage(img, rect.x, rect.y, rect.width, rect.height, null);
    g.dispose();
}

品質の低下を避けるために私にできることはありますか?

4

2 に答える 2

2

それで、現在、ボールが動くときに、画像を数度回転させて、元の画像を新しい画像で上書きしますか?画像が回転するたびに、わずかな歪みが追加されます。多くの回転にわたって、歪みは複合されます。

代わりに、元の画像をメモリに保持し、画面上で回転しているように見える角度を保存します。次に、レンダリングするたびに、元の画像を現在の度数だけ回転させます。

于 2012-06-22T17:34:08.490 に答える
1

これはかなり古い質問ですが、似たようなことをしたい人は、g.drawImageの前に次のコードを入れてみてください

g.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR);

これは、画像の見栄えを良くするのに役立ちます。

于 2013-04-22T01:55:46.320 に答える