Javaは、Graphics2Dの回転ジャンプスイング

Qでのストレンジャー:

私は目的を研究するための簡単なゲームを書いています。すべてが一つの小さな事を除いて罰金を行きます...

私はこの醜いジャンプせずにどのように回転広場に把握カント

ここでは、画像の説明を入力します。

ここでの問題を説明するための私のプログラムの簡易版は、ここで私は1つのタイマーを使用しますが、元のプログラムでは、私は2つのタイマー再描画のためのハンドルのゲーム状態と第2のための1つを持っています:

public class soQuestion extends JLabel {

    double r;

    @Override
    public void paintComponent(Graphics g1) {
        Graphics2D g = (Graphics2D) g1;
        g.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING,
                RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
        g.setRenderingHint(RenderingHints.KEY_INTERPOLATION,
                RenderingHints.VALUE_INTERPOLATION_BICUBIC);
        g.setRenderingHint(RenderingHints.KEY_RENDERING,
                RenderingHints.VALUE_RENDER_QUALITY);
        g.clearRect(0,0, getWidth(), getHeight());
        g.translate(getWidth()/2, getHeight()/2);
        g.rotate(r);
        g.translate(-20, -20);
        g.fillRect(0, 0, 40, 40);
    }

    public static void main(String[] args) {
        JFrame frame = new JFrame();
        soQuestion question = new soQuestion();
        frame.add(question);
        frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        frame.setSize(200, 200);
        frame.setLocationRelativeTo(null);
        frame.setVisible(true);
        new javax.swing.Timer(10, new AbstractAction() {
            @Override
            public void actionPerformed(ActionEvent e) {
                r += 0.005;
                question.repaint();
            }
        }).start();
    }
}

回転デルタ値が小さい場合、ジャンプは、高速回転オブジェクトに対して見えにくく、より見えます..

私が使用するすべての描画ヒントは効果がありません

PS:私の英語のため申し訳ありません

PPS:必要に応じて、私はそれがフルバージョンでどのように見えるか、より詳細な情報を提供することができます:

ここでは、画像の説明を入力します。

Qでのストレンジャー:

すべての参加者をありがとう!

それは完全にある私のミスや不注意私はいくつかのソースから、このコードセクションをコピーしました。

g.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON);

そして、前にここで質問をして私は、テキストのレンダリングに関連するヒントを使用したことを見たことができませんでした。

このレンダリングヒントを使用しての示唆のためのMR @Pshemoに感謝します:

g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);

私が尋ねる前にそれを知ってましたが、私は人間だと時間の間違いとは尋ねたところを見つけ出すことができませんでした。

PS:私の英語のため申し訳ありません

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=281818&siteId=1