7

JPanel円や長方形など、いくつかのグラフィックを描画しました。

しかし、回転した楕円のように、特定の角度だけ回転したグラフィックを描画したいと思います。私は何をすべきか?

4

2 に答える 2

26

プレーンを使用している場合は、最初Graphicsにキャストします。Graphics2D

Graphics2D g2d = (Graphics2D)g;

全体を回転させるにはGraphics2D

g2d.rotate(Math.toRadians(degrees));
//draw shape/image (will be rotated)

回転をリセットするには(つまり、1つだけ回転します):

AffineTransform old = g2d.getTransform();
g2d.rotate(Math.toRadians(degrees));
//draw shape/image (will be rotated)
g2d.setTransform(old);
//things you draw after here will not be rotated

例:

class MyPanel extends JPanel {
    @Override
    public void paintComponent(Graphics g) {
        super.paintComponent(g);
        Graphics2D g2d = (Graphics2D)g;
        AffineTransform old = g2d.getTransform();
        g2d.rotate(Math.toRadians(degrees));
        //draw shape/image (will be rotated)
        g2d.setTransform(old);
        //things you draw after here will not be rotated
    }
}
于 2013-01-02T15:32:38.220 に答える
3

paintComponent()オーバーライドされたメソッドで、Graphics引数をGraphics2Dにキャストし、このGraphics2Dを呼び出してrotate()、楕円を描画します。

于 2013-01-02T15:32:34.610 に答える