Java, неприменимо для аргументов, аффинное преобразование? - PullRequest
1 голос
/ 20 июня 2020
public void paint(Graphics g) {
        Rectangle rectangle = new Rectangle(100,100,100,100);
        Graphics2D g2d = (Graphics2D) g;
        AffineTransform transform = new AffineTransform();
        transform.rotate(
                Math.toRadians(45), rectangle.getX() + rectangle.width/2,
                rectangle.getY() + rectangle.height/2
        );
        g2d.draw(transform); 
}

Я пытаюсь повернуть прямоугольник вокруг центра, но не работает. Я получаю эту ошибку:

Метод draw (Shape) в типе Graphics2D не применим для аргументов (AffineTransform)

1 Ответ

1 голос
/ 20 июня 2020

Ошибка указывает на то, что вы не можете вызвать этот метод с помощью преобразования.

Вы должны сначала попытаться вызвать setTransform, а затем draw прямоугольник.

public void paint(Graphics g) {
        Rectangle rectangle = new Rectangle(100,100,100,100);
        Graphics2D g2d = (Graphics2D) g;
        AffineTransform transform = new AffineTransform();
        transform.rotate(
                Math.toRadians(45), rectangle.getX() + rectangle.width/2,
                rectangle.getY() + rectangle.height/2
        );
        g2d.setTransform(transform);
        g2d.draw(rectangle); 
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...