JPanel
円や長方形など、いくつかのグラフィックを描画しました。
しかし、回転した楕円のように、特定の角度だけ回転したグラフィックを描画したいと思います。私は何をすべきか?
プレーンを使用している場合は、最初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
}
}
paintComponent()
オーバーライドされたメソッドで、Graphics引数をGraphics2Dにキャストし、このGraphics2Dを呼び出してrotate()
、楕円を描画します。