AffineTransform.setToRotation не работает :( - PullRequest
0 голосов
/ 27 марта 2020

Я пытался вращать стрелку методом setToRotation(). код был бы

AffineTransform at = AffineTransform.getTranslateInstance(x, y);

public void tick() {
    x += sx; y += sy;
    at = AffineTransform.getTranslateInstance(x, y);
    at.setToRotation(Math.toRadians(rotation));
}
public void render(Graphics g) {
    Graphics2D g2d = (Graphics2D) g;
    g2d.drawImage('BufferedImage', at, null);
}

моя проблема была бы в том, что сначала я думал, что стрелка исчезнет, ​​но это dr aws это в x = 0, y = 0; но если я попытаюсь

System.out.println("X: " + x + ", Y: " + y);

или

System.out.println("X: " + at.getTranslateX() + ", Y: " + at.getTranslateY());

, он показывает координаты x и y, он должен быть в.

о и кстати, я использую Math.atan2(target.x - x, target.y - y); чтобы вычислить угол между двумя точками, и я не знаю, есть ли лучший метод или я делаю это правильно. Заранее спасибо:)

...