91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

如何在Java中實現正方形的旋轉

小樊
85
2024-08-30 07:25:30
欄目: 編程語言

要在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()方法將角度轉換為弧度。

0
邵阳县| 泸溪县| 吉木乃县| 江孜县| 周至县| 长兴县| 罗江县| 泽普县| 和政县| 武夷山市| 莱西市| 东城区| 南投市| 台江县| 汝南县| 兴安盟| 富蕴县| 德州市| 河津市| 章丘市| 彰化县| 平定县| 霍邱县| 靖远县| 武穴市| 措勤县| 古浪县| 镇原县| 广河县| 城口县| 禹城市| 岳西县| 黎城县| 抚顺市| 大兴区| 通化市| 多伦县| 陇川县| 淮阳县| 明溪县| 荥经县|