我在JPanel
中绘制了一些图形,如圆形,矩形等。
但我想绘制一些旋转特定度数的图形,如旋转的椭圆。我该怎么办?
答案 0 :(得分:22)
如果您使用普通Graphics
,请先转发至Graphics2D
:
Graphics2D g2d = (Graphics2D)g;
旋转整个Graphics2D
:
g2d.rotate(Math.toRadians(degrees));
//draw shape/image (will be rotated)
重置旋转(所以你只旋转一件事):
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
}
}
答案 1 :(得分:3)
在paintComponent()
重写方法中,将Graphics参数强制转换为Graphics2D,在此Graphics2D上调用rotate()
,然后绘制椭圆。