如何在Java中對(duì)正方形進(jìn)行縮放操作

小樊
82
2024-08-30 07:32:02

在Java中,可以使用Graphics2D類的scale()方法來(lái)對(duì)正方形進(jìn)行縮放操作

import javax.swing.*;
import java.awt.*;

public class SquareScalingExample extends JFrame {
    public SquareScalingExample() {
        setTitle("Square Scaling Example");
        setSize(400, 400);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }

    @Override
    public void paint(Graphics g) {
        super.paint(g);

        Graphics2D g2d = (Graphics2D) g;

        // 設(shè)置縮放比例
        double scaleX = 2.0;
        double scaleY = 2.0;

        // 獲取畫布的寬度和高度
        int canvasWidth = getWidth();
        int canvasHeight = getHeight();

        // 計(jì)算正方形的大小和位置
        int squareSize = 100;
        int squareX = (canvasWidth - squareSize) / 2;
        int squareY = (canvasHeight - squareSize) / 2;

        // 繪制原始正方形
        g2d.setColor(Color.BLUE);
        g2d.fillRect(squareX, squareY, squareSize, squareSize);

        // 應(yīng)用縮放
        g2d.scale(scaleX, scaleY);

        // 計(jì)算縮放后的正方形的位置
        int scaledSquareX = (int) (squareX / scaleX);
        int scaledSquareY = (int) (squareY / scaleY);

        // 繪制縮放后的正方形
        g2d.setColor(Color.RED);
        g2d.fillRect(scaledSquareX, scaledSquareY, squareSize, squareSize);
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(() -> {
            new SquareScalingExample().setVisible(true);
        });
    }
}

這個(gè)示例將創(chuàng)建一個(gè)包含兩個(gè)正方形的窗口。第一個(gè)正方形是藍(lán)色的,表示原始大小。第二個(gè)正方形是紅色的,表示縮放后的大小。通過(guò)調(diào)整scaleX和scaleY變量的值,可以控制正方形的縮放比例。

0