1

我对java图形有些陌生,正在尝试学习如何使用旋转。从我读过的内容来看,'affineTransform' 几乎是所有这些的关键。在这里,我似乎无法弄清楚如何创建这个矩形并对其应用旋转。有任何想法吗?

package games;

import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Rectangle;
import java.awt.geom.AffineTransform;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class Rotation extends JPanel {

    public static void main(String[] args) {
        JFrame f = new JFrame();
        f.add(new Rotation());
        f.setSize(600, 600);
        f.setVisible(true);
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }

    int i = 0;

    public void paint(Graphics g) {
        Rectangle ship = new Rectangle(50, 50, 200, 100); //  <------

        AffineTransform at = new AffineTransform();
        at.rotate(Math.toRadians(i++), ship.getWidth() / 2, ship.getHeight() / 2);

        Graphics2D g2d = (Graphics2D) g;
        g2d.drawImage(ship, at, null); //   <----------------

        repaint();
    }
}
4

0 回答 0