Kid*_*Let 5 java graphics rotation
我在a中绘制了一些图形JPanel
,如圆形,矩形等.
但我想绘制一些特定程度旋转的图形,如旋转的椭圆.我该怎么办?
Doo*_*nob 23
如果你使用普通的Graphics
,先铸造Graphics2D
:
Graphics2D g2d = (Graphics2D)g;
Run Code Online (Sandbox Code Playgroud)
要旋转整个Graphics2D
:
g2d.rotate(Math.toRadians(degrees));
//draw shape/image (will be rotated)
Run Code Online (Sandbox Code Playgroud)
要重置旋转(所以你只旋转一件事):
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
Run Code Online (Sandbox Code Playgroud)
例:
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
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
53353 次 |
最近记录: |