要在Java中實現正方形的旋轉,你可以使用Java2D圖形庫
import javax.swing.*;
import java.awt.*;
import java.awt.geom.AffineTransform;
public class SquareRotationExample extends JFrame {
public SquareRotationExample() {
setTitle("Square Rotation Example");
setSize(400, 400);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
@Override
public void paint(Graphics g) {
super.paint(g);
Graphics2D g2d = (Graphics2D) g;
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
// 設置正方形的位置和大小
int squareX = 100;
int squareY = 100;
int squareWidth = 100;
int squareHeight = 100;
// 創建一個新的AffineTransform對象,用于存儲旋轉信息
AffineTransform transform = new AffineTransform();
// 設置旋轉的角度(以弧度為單位)
double rotationAngle = Math.toRadians(45);
// 將原點移動到正方形的中心,以便圍繞中心旋轉
transform.translate(squareX + squareWidth / 2, squareY + squareHeight / 2);
// 應用旋轉
transform.rotate(rotationAngle);
// 將原點移回到正方形的左上角
transform.translate(-squareX - squareWidth / 2, -squareY - squareHeight / 2);
// 將變換應用于Graphics2D對象
g2d.setTransform(transform);
// 繪制正方形
g2d.setColor(Color.BLUE);
g2d.fillRect(squareX, squareY, squareWidth, squareHeight);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(() -> {
SquareRotationExample frame = new SquareRotationExample();
frame.setVisible(true);
});
}
}
這個示例創建了一個窗口,并在其中繪制了一個旋轉的正方形。通過修改rotationAngle
變量,你可以改變正方形的旋轉角度。請注意,這個示例使用了弧度作為角度單位,因此我們使用Math.toRadians()
方法將角度轉換為弧度。